Please wait. This can take some minutes ...
                    
                 
             
         
        
            
                
                    
                    
                        Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. 
                        
                        Project price only 1 $ 
                        
                            You can buy this project and download/modify it how often you want.
                        
                        
                        
                     
                 
             
         
                    
                 
    
    
    yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass Maven / Gradle / Ivy 
    
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: yandex/cloud/mdb/redis/v1/cluster_service.proto
package yandex.cloud.api.mdb.redis.v1;
public final class ClusterServiceOuterClass {
  private ClusterServiceOuterClass() {}
  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 GetClusterRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.GetClusterRequest)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster to return.
     * To get the cluster ID use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster to return.
     * To get the cluster ID use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.GetClusterRequest}
   */
  public static final class GetClusterRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.GetClusterRequest)
      GetClusterRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetClusterRequest.newBuilder() to construct.
    private GetClusterRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private GetClusterRequest() {
      clusterId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GetClusterRequest();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GetClusterRequest(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_GetClusterRequest_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_GetClusterRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster to return.
     * To get the cluster ID use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster to return.
     * To get the cluster ID use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      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.ClusterServiceOuterClass.GetClusterRequest)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest 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.ClusterServiceOuterClass.GetClusterRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest 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.ClusterServiceOuterClass.GetClusterRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest 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.ClusterServiceOuterClass.GetClusterRequest 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.ClusterServiceOuterClass.GetClusterRequest 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.ClusterServiceOuterClass.GetClusterRequest 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.ClusterServiceOuterClass.GetClusterRequest 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.ClusterServiceOuterClass.GetClusterRequest 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.ClusterServiceOuterClass.GetClusterRequest 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.ClusterServiceOuterClass.GetClusterRequest 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.GetClusterRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.GetClusterRequest)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_GetClusterRequest_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_GetClusterRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest.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();
        clusterId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_GetClusterRequest_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest(this);
        result.clusterId_ = clusterId_;
        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.ClusterServiceOuterClass.GetClusterRequest) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        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.ClusterServiceOuterClass.GetClusterRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster to return.
       * To get the cluster ID use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to return.
       * To get the cluster ID use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to return.
       * To get the cluster ID use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to return.
       * To get the cluster ID use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to return.
       * To get the cluster ID use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      @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.GetClusterRequest)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.GetClusterRequest)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.GetClusterRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public GetClusterRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GetClusterRequest(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.ClusterServiceOuterClass.GetClusterRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface ListClustersRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.ListClustersRequest)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the folder to list Redis clusters in.
     * To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
     *  
     *
     * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The folderId.
     */
    java.lang.String getFolderId();
    /**
     * 
     * ID of the folder to list Redis clusters in.
     * To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
     *  
     *
     * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for folderId.
     */
    com.google.protobuf.ByteString
        getFolderIdBytes();
    /**
     * 
     * The maximum number of results per page to return. If the number of available
     * results is larger than [page_size], the service returns a [ListClustersResponse.next_page_token]
     * that can be used to get the next page of results in subsequent list requests.
     *  
     *
     * int64 page_size = 2 [(.yandex.cloud.value) = "0-1000"];
     * @return The pageSize.
     */
    long getPageSize();
    /**
     * 
     * Page token. To get the next page of results, set [page_token] to the [ListClustersResponse.next_page_token]
     * returned by the previous list request.
     *  
     *
     * string page_token = 3 [(.yandex.cloud.length) = "<=100"];
     * @return The pageToken.
     */
    java.lang.String getPageToken();
    /**
     * 
     * Page token. To get the next page of results, set [page_token] to the [ListClustersResponse.next_page_token]
     * returned by the previous list request.
     *  
     *
     * string page_token = 3 [(.yandex.cloud.length) = "<=100"];
     * @return The bytes for pageToken.
     */
    com.google.protobuf.ByteString
        getPageTokenBytes();
    /**
     * 
     * A filter expression that filters clusters listed in the response.
     * The expression must specify:
     * 1. The field name. Currently you can only use filtering with the [Cluster.name] field.
     * 2. An `=` operator.
     * 3. The value in double quotes (`"`). Must be 3-63 characters long and match the regular expression `[a-z]([-a-z0-9]{,61}[a-z0-9])?`.
     *  
     *
     * string filter = 4 [(.yandex.cloud.length) = "<=1000"];
     * @return The filter.
     */
    java.lang.String getFilter();
    /**
     * 
     * A filter expression that filters clusters listed in the response.
     * The expression must specify:
     * 1. The field name. Currently you can only use filtering with the [Cluster.name] field.
     * 2. An `=` operator.
     * 3. The value in double quotes (`"`). Must be 3-63 characters long and match the regular expression `[a-z]([-a-z0-9]{,61}[a-z0-9])?`.
     *  
     *
     * string filter = 4 [(.yandex.cloud.length) = "<=1000"];
     * @return The bytes for filter.
     */
    com.google.protobuf.ByteString
        getFilterBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.ListClustersRequest}
   */
  public static final class ListClustersRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.ListClustersRequest)
      ListClustersRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListClustersRequest.newBuilder() to construct.
    private ListClustersRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private ListClustersRequest() {
      folderId_ = "";
      pageToken_ = "";
      filter_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ListClustersRequest();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListClustersRequest(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              folderId_ = s;
              break;
            }
            case 16: {
              pageSize_ = input.readInt64();
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              pageToken_ = s;
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();
              filter_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_ListClustersRequest_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_ListClustersRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest.Builder.class);
    }
    public static final int FOLDER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object folderId_;
    /**
     * 
     * ID of the folder to list Redis clusters in.
     * To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
     *  
     *
     * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The folderId.
     */
    @java.lang.Override
    public java.lang.String getFolderId() {
      java.lang.Object ref = folderId_;
      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();
        folderId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the folder to list Redis clusters in.
     * To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
     *  
     *
     * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for folderId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFolderIdBytes() {
      java.lang.Object ref = folderId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        folderId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int PAGE_SIZE_FIELD_NUMBER = 2;
    private long pageSize_;
    /**
     * 
     * The maximum number of results per page to return. If the number of available
     * results is larger than [page_size], the service returns a [ListClustersResponse.next_page_token]
     * that can be used to get the next page of results in subsequent list requests.
     *  
     *
     * int64 page_size = 2 [(.yandex.cloud.value) = "0-1000"];
     * @return The pageSize.
     */
    @java.lang.Override
    public long getPageSize() {
      return pageSize_;
    }
    public static final int PAGE_TOKEN_FIELD_NUMBER = 3;
    private volatile java.lang.Object pageToken_;
    /**
     * 
     * Page token. To get the next page of results, set [page_token] to the [ListClustersResponse.next_page_token]
     * returned by the previous list request.
     *  
     *
     * string page_token = 3 [(.yandex.cloud.length) = "<=100"];
     * @return The pageToken.
     */
    @java.lang.Override
    public java.lang.String getPageToken() {
      java.lang.Object ref = pageToken_;
      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();
        pageToken_ = s;
        return s;
      }
    }
    /**
     * 
     * Page token. To get the next page of results, set [page_token] to the [ListClustersResponse.next_page_token]
     * returned by the previous list request.
     *  
     *
     * string page_token = 3 [(.yandex.cloud.length) = "<=100"];
     * @return The bytes for pageToken.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPageTokenBytes() {
      java.lang.Object ref = pageToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        pageToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int FILTER_FIELD_NUMBER = 4;
    private volatile java.lang.Object filter_;
    /**
     * 
     * A filter expression that filters clusters listed in the response.
     * The expression must specify:
     * 1. The field name. Currently you can only use filtering with the [Cluster.name] field.
     * 2. An `=` operator.
     * 3. The value in double quotes (`"`). Must be 3-63 characters long and match the regular expression `[a-z]([-a-z0-9]{,61}[a-z0-9])?`.
     *  
     *
     * string filter = 4 [(.yandex.cloud.length) = "<=1000"];
     * @return The filter.
     */
    @java.lang.Override
    public java.lang.String getFilter() {
      java.lang.Object ref = filter_;
      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();
        filter_ = s;
        return s;
      }
    }
    /**
     * 
     * A filter expression that filters clusters listed in the response.
     * The expression must specify:
     * 1. The field name. Currently you can only use filtering with the [Cluster.name] field.
     * 2. An `=` operator.
     * 3. The value in double quotes (`"`). Must be 3-63 characters long and match the regular expression `[a-z]([-a-z0-9]{,61}[a-z0-9])?`.
     *  
     *
     * string filter = 4 [(.yandex.cloud.length) = "<=1000"];
     * @return The bytes for filter.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFilterBytes() {
      java.lang.Object ref = filter_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        filter_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(folderId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, folderId_);
      }
      if (pageSize_ != 0L) {
        output.writeInt64(2, pageSize_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, pageToken_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(filter_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, filter_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(folderId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, folderId_);
      }
      if (pageSize_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, pageSize_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, pageToken_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(filter_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, filter_);
      }
      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.ClusterServiceOuterClass.ListClustersRequest)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest) obj;
      if (!getFolderId()
          .equals(other.getFolderId())) return false;
      if (getPageSize()
          != other.getPageSize()) return false;
      if (!getPageToken()
          .equals(other.getPageToken())) return false;
      if (!getFilter()
          .equals(other.getFilter())) 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) + FOLDER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getFolderId().hashCode();
      hash = (37 * hash) + PAGE_SIZE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getPageSize());
      hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getPageToken().hashCode();
      hash = (37 * hash) + FILTER_FIELD_NUMBER;
      hash = (53 * hash) + getFilter().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest 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.ClusterServiceOuterClass.ListClustersRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest 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.ClusterServiceOuterClass.ListClustersRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest 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.ClusterServiceOuterClass.ListClustersRequest 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.ClusterServiceOuterClass.ListClustersRequest 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.ClusterServiceOuterClass.ListClustersRequest 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.ClusterServiceOuterClass.ListClustersRequest 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.ClusterServiceOuterClass.ListClustersRequest 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.ClusterServiceOuterClass.ListClustersRequest 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.ClusterServiceOuterClass.ListClustersRequest 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.ListClustersRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.ListClustersRequest)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_ListClustersRequest_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_ListClustersRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest.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();
        folderId_ = "";
        pageSize_ = 0L;
        pageToken_ = "";
        filter_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_ListClustersRequest_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest(this);
        result.folderId_ = folderId_;
        result.pageSize_ = pageSize_;
        result.pageToken_ = pageToken_;
        result.filter_ = filter_;
        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.ClusterServiceOuterClass.ListClustersRequest) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest.getDefaultInstance()) return this;
        if (!other.getFolderId().isEmpty()) {
          folderId_ = other.folderId_;
          onChanged();
        }
        if (other.getPageSize() != 0L) {
          setPageSize(other.getPageSize());
        }
        if (!other.getPageToken().isEmpty()) {
          pageToken_ = other.pageToken_;
          onChanged();
        }
        if (!other.getFilter().isEmpty()) {
          filter_ = other.filter_;
          onChanged();
        }
        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.ClusterServiceOuterClass.ListClustersRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object folderId_ = "";
      /**
       * 
       * ID of the folder to list Redis clusters in.
       * To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
       *  
       *
       * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The folderId.
       */
      public java.lang.String getFolderId() {
        java.lang.Object ref = folderId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          folderId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the folder to list Redis clusters in.
       * To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
       *  
       *
       * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for folderId.
       */
      public com.google.protobuf.ByteString
          getFolderIdBytes() {
        java.lang.Object ref = folderId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          folderId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the folder to list Redis clusters in.
       * To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
       *  
       *
       * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The folderId to set.
       * @return This builder for chaining.
       */
      public Builder setFolderId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        folderId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the folder to list Redis clusters in.
       * To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
       *  
       *
       * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearFolderId() {
        
        folderId_ = getDefaultInstance().getFolderId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the folder to list Redis clusters in.
       * To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
       *  
       *
       * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for folderId to set.
       * @return This builder for chaining.
       */
      public Builder setFolderIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        folderId_ = value;
        onChanged();
        return this;
      }
      private long pageSize_ ;
      /**
       * 
       * The maximum number of results per page to return. If the number of available
       * results is larger than [page_size], the service returns a [ListClustersResponse.next_page_token]
       * that can be used to get the next page of results in subsequent list requests.
       *  
       *
       * int64 page_size = 2 [(.yandex.cloud.value) = "0-1000"];
       * @return The pageSize.
       */
      @java.lang.Override
      public long getPageSize() {
        return pageSize_;
      }
      /**
       * 
       * The maximum number of results per page to return. If the number of available
       * results is larger than [page_size], the service returns a [ListClustersResponse.next_page_token]
       * that can be used to get the next page of results in subsequent list requests.
       *  
       *
       * int64 page_size = 2 [(.yandex.cloud.value) = "0-1000"];
       * @param value The pageSize to set.
       * @return This builder for chaining.
       */
      public Builder setPageSize(long value) {
        
        pageSize_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * The maximum number of results per page to return. If the number of available
       * results is larger than [page_size], the service returns a [ListClustersResponse.next_page_token]
       * that can be used to get the next page of results in subsequent list requests.
       *  
       *
       * int64 page_size = 2 [(.yandex.cloud.value) = "0-1000"];
       * @return This builder for chaining.
       */
      public Builder clearPageSize() {
        
        pageSize_ = 0L;
        onChanged();
        return this;
      }
      private java.lang.Object pageToken_ = "";
      /**
       * 
       * Page token. To get the next page of results, set [page_token] to the [ListClustersResponse.next_page_token]
       * returned by the previous list request.
       *  
       *
       * string page_token = 3 [(.yandex.cloud.length) = "<=100"];
       * @return The pageToken.
       */
      public java.lang.String getPageToken() {
        java.lang.Object ref = pageToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          pageToken_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * Page token. To get the next page of results, set [page_token] to the [ListClustersResponse.next_page_token]
       * returned by the previous list request.
       *  
       *
       * string page_token = 3 [(.yandex.cloud.length) = "<=100"];
       * @return The bytes for pageToken.
       */
      public com.google.protobuf.ByteString
          getPageTokenBytes() {
        java.lang.Object ref = pageToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          pageToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * Page token. To get the next page of results, set [page_token] to the [ListClustersResponse.next_page_token]
       * returned by the previous list request.
       *  
       *
       * string page_token = 3 [(.yandex.cloud.length) = "<=100"];
       * @param value The pageToken to set.
       * @return This builder for chaining.
       */
      public Builder setPageToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        pageToken_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Page token. To get the next page of results, set [page_token] to the [ListClustersResponse.next_page_token]
       * returned by the previous list request.
       *  
       *
       * string page_token = 3 [(.yandex.cloud.length) = "<=100"];
       * @return This builder for chaining.
       */
      public Builder clearPageToken() {
        
        pageToken_ = getDefaultInstance().getPageToken();
        onChanged();
        return this;
      }
      /**
       * 
       * Page token. To get the next page of results, set [page_token] to the [ListClustersResponse.next_page_token]
       * returned by the previous list request.
       *  
       *
       * string page_token = 3 [(.yandex.cloud.length) = "<=100"];
       * @param value The bytes for pageToken to set.
       * @return This builder for chaining.
       */
      public Builder setPageTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        pageToken_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object filter_ = "";
      /**
       * 
       * A filter expression that filters clusters listed in the response.
       * The expression must specify:
       * 1. The field name. Currently you can only use filtering with the [Cluster.name] field.
       * 2. An `=` operator.
       * 3. The value in double quotes (`"`). Must be 3-63 characters long and match the regular expression `[a-z]([-a-z0-9]{,61}[a-z0-9])?`.
       *  
       *
       * string filter = 4 [(.yandex.cloud.length) = "<=1000"];
       * @return The filter.
       */
      public java.lang.String getFilter() {
        java.lang.Object ref = filter_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          filter_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * A filter expression that filters clusters listed in the response.
       * The expression must specify:
       * 1. The field name. Currently you can only use filtering with the [Cluster.name] field.
       * 2. An `=` operator.
       * 3. The value in double quotes (`"`). Must be 3-63 characters long and match the regular expression `[a-z]([-a-z0-9]{,61}[a-z0-9])?`.
       *  
       *
       * string filter = 4 [(.yandex.cloud.length) = "<=1000"];
       * @return The bytes for filter.
       */
      public com.google.protobuf.ByteString
          getFilterBytes() {
        java.lang.Object ref = filter_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          filter_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * A filter expression that filters clusters listed in the response.
       * The expression must specify:
       * 1. The field name. Currently you can only use filtering with the [Cluster.name] field.
       * 2. An `=` operator.
       * 3. The value in double quotes (`"`). Must be 3-63 characters long and match the regular expression `[a-z]([-a-z0-9]{,61}[a-z0-9])?`.
       *  
       *
       * string filter = 4 [(.yandex.cloud.length) = "<=1000"];
       * @param value The filter to set.
       * @return This builder for chaining.
       */
      public Builder setFilter(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        filter_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * A filter expression that filters clusters listed in the response.
       * The expression must specify:
       * 1. The field name. Currently you can only use filtering with the [Cluster.name] field.
       * 2. An `=` operator.
       * 3. The value in double quotes (`"`). Must be 3-63 characters long and match the regular expression `[a-z]([-a-z0-9]{,61}[a-z0-9])?`.
       *  
       *
       * string filter = 4 [(.yandex.cloud.length) = "<=1000"];
       * @return This builder for chaining.
       */
      public Builder clearFilter() {
        
        filter_ = getDefaultInstance().getFilter();
        onChanged();
        return this;
      }
      /**
       * 
       * A filter expression that filters clusters listed in the response.
       * The expression must specify:
       * 1. The field name. Currently you can only use filtering with the [Cluster.name] field.
       * 2. An `=` operator.
       * 3. The value in double quotes (`"`). Must be 3-63 characters long and match the regular expression `[a-z]([-a-z0-9]{,61}[a-z0-9])?`.
       *  
       *
       * string filter = 4 [(.yandex.cloud.length) = "<=1000"];
       * @param value The bytes for filter to set.
       * @return This builder for chaining.
       */
      public Builder setFilterBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        filter_ = value;
        onChanged();
        return this;
      }
      @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.ListClustersRequest)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.ListClustersRequest)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public ListClustersRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ListClustersRequest(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.ClusterServiceOuterClass.ListClustersRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface ListClustersResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.ListClustersResponse)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * List of Redis clusters.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
     */
    java.util.List 
        getClustersList();
    /**
     * 
     * List of Redis clusters.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
     */
    yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster getClusters(int index);
    /**
     * 
     * List of Redis clusters.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
     */
    int getClustersCount();
    /**
     * 
     * List of Redis clusters.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
     */
    java.util.List extends yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.ClusterOrBuilder> 
        getClustersOrBuilderList();
    /**
     * 
     * List of Redis clusters.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
     */
    yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.ClusterOrBuilder getClustersOrBuilder(
        int index);
    /**
     * 
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListClustersRequest.page_size], use the [next_page_token] as the value
     * for the [ListClustersRequest.page_token] parameter in the next list request. Each subsequent
     * list request will have its own [next_page_token] to continue paging through the results.
     *  
     *
     * string next_page_token = 2;
     * @return The nextPageToken.
     */
    java.lang.String getNextPageToken();
    /**
     * 
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListClustersRequest.page_size], use the [next_page_token] as the value
     * for the [ListClustersRequest.page_token] parameter in the next list request. Each subsequent
     * list request will have its own [next_page_token] to continue paging through the results.
     *  
     *
     * string next_page_token = 2;
     * @return The bytes for nextPageToken.
     */
    com.google.protobuf.ByteString
        getNextPageTokenBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.ListClustersResponse}
   */
  public static final class ListClustersResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.ListClustersResponse)
      ListClustersResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListClustersResponse.newBuilder() to construct.
    private ListClustersResponse(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private ListClustersResponse() {
      clusters_ = java.util.Collections.emptyList();
      nextPageToken_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ListClustersResponse();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListClustersResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      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: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                clusters_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              clusters_.add(
                  input.readMessage(yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.parser(), extensionRegistry));
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              nextPageToken_ = s;
              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 {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          clusters_ = java.util.Collections.unmodifiableList(clusters_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_ListClustersResponse_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_ListClustersResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse.Builder.class);
    }
    public static final int CLUSTERS_FIELD_NUMBER = 1;
    private java.util.List clusters_;
    /**
     * 
     * List of Redis clusters.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
     */
    @java.lang.Override
    public java.util.List getClustersList() {
      return clusters_;
    }
    /**
     * 
     * List of Redis clusters.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
     */
    @java.lang.Override
    public java.util.List extends yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.ClusterOrBuilder> 
        getClustersOrBuilderList() {
      return clusters_;
    }
    /**
     * 
     * List of Redis clusters.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
     */
    @java.lang.Override
    public int getClustersCount() {
      return clusters_.size();
    }
    /**
     * 
     * List of Redis clusters.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster getClusters(int index) {
      return clusters_.get(index);
    }
    /**
     * 
     * List of Redis clusters.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.ClusterOrBuilder getClustersOrBuilder(
        int index) {
      return clusters_.get(index);
    }
    public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
    private volatile java.lang.Object nextPageToken_;
    /**
     * 
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListClustersRequest.page_size], use the [next_page_token] as the value
     * for the [ListClustersRequest.page_token] parameter in the next list request. Each subsequent
     * list request will have its own [next_page_token] to continue paging through the results.
     *  
     *
     * string next_page_token = 2;
     * @return The nextPageToken.
     */
    @java.lang.Override
    public java.lang.String getNextPageToken() {
      java.lang.Object ref = nextPageToken_;
      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();
        nextPageToken_ = s;
        return s;
      }
    }
    /**
     * 
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListClustersRequest.page_size], use the [next_page_token] as the value
     * for the [ListClustersRequest.page_token] parameter in the next list request. Each subsequent
     * list request will have its own [next_page_token] to continue paging through the results.
     *  
     *
     * string next_page_token = 2;
     * @return The bytes for nextPageToken.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNextPageTokenBytes() {
      java.lang.Object ref = nextPageToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        nextPageToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 {
      for (int i = 0; i < clusters_.size(); i++) {
        output.writeMessage(1, clusters_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      for (int i = 0; i < clusters_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, clusters_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_);
      }
      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.ClusterServiceOuterClass.ListClustersResponse)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse) obj;
      if (!getClustersList()
          .equals(other.getClustersList())) return false;
      if (!getNextPageToken()
          .equals(other.getNextPageToken())) 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 (getClustersCount() > 0) {
        hash = (37 * hash) + CLUSTERS_FIELD_NUMBER;
        hash = (53 * hash) + getClustersList().hashCode();
      }
      hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getNextPageToken().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse 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.ClusterServiceOuterClass.ListClustersResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse 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.ClusterServiceOuterClass.ListClustersResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse 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.ClusterServiceOuterClass.ListClustersResponse 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.ClusterServiceOuterClass.ListClustersResponse 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.ClusterServiceOuterClass.ListClustersResponse 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.ClusterServiceOuterClass.ListClustersResponse 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.ClusterServiceOuterClass.ListClustersResponse 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.ClusterServiceOuterClass.ListClustersResponse 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.ClusterServiceOuterClass.ListClustersResponse 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.ListClustersResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.ListClustersResponse)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_ListClustersResponse_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_ListClustersResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getClustersFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (clustersBuilder_ == null) {
          clusters_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          clustersBuilder_.clear();
        }
        nextPageToken_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_ListClustersResponse_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse(this);
        int from_bitField0_ = bitField0_;
        if (clustersBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            clusters_ = java.util.Collections.unmodifiableList(clusters_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.clusters_ = clusters_;
        } else {
          result.clusters_ = clustersBuilder_.build();
        }
        result.nextPageToken_ = nextPageToken_;
        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.ClusterServiceOuterClass.ListClustersResponse) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse.getDefaultInstance()) return this;
        if (clustersBuilder_ == null) {
          if (!other.clusters_.isEmpty()) {
            if (clusters_.isEmpty()) {
              clusters_ = other.clusters_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureClustersIsMutable();
              clusters_.addAll(other.clusters_);
            }
            onChanged();
          }
        } else {
          if (!other.clusters_.isEmpty()) {
            if (clustersBuilder_.isEmpty()) {
              clustersBuilder_.dispose();
              clustersBuilder_ = null;
              clusters_ = other.clusters_;
              bitField0_ = (bitField0_ & ~0x00000001);
              clustersBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getClustersFieldBuilder() : null;
            } else {
              clustersBuilder_.addAllMessages(other.clusters_);
            }
          }
        }
        if (!other.getNextPageToken().isEmpty()) {
          nextPageToken_ = other.nextPageToken_;
          onChanged();
        }
        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.ClusterServiceOuterClass.ListClustersResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private java.util.List clusters_ =
        java.util.Collections.emptyList();
      private void ensureClustersIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          clusters_ = new java.util.ArrayList(clusters_);
          bitField0_ |= 0x00000001;
         }
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster, yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Builder, yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.ClusterOrBuilder> clustersBuilder_;
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public java.util.List getClustersList() {
        if (clustersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(clusters_);
        } else {
          return clustersBuilder_.getMessageList();
        }
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public int getClustersCount() {
        if (clustersBuilder_ == null) {
          return clusters_.size();
        } else {
          return clustersBuilder_.getCount();
        }
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster getClusters(int index) {
        if (clustersBuilder_ == null) {
          return clusters_.get(index);
        } else {
          return clustersBuilder_.getMessage(index);
        }
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public Builder setClusters(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster value) {
        if (clustersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureClustersIsMutable();
          clusters_.set(index, value);
          onChanged();
        } else {
          clustersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public Builder setClusters(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Builder builderForValue) {
        if (clustersBuilder_ == null) {
          ensureClustersIsMutable();
          clusters_.set(index, builderForValue.build());
          onChanged();
        } else {
          clustersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public Builder addClusters(yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster value) {
        if (clustersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureClustersIsMutable();
          clusters_.add(value);
          onChanged();
        } else {
          clustersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public Builder addClusters(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster value) {
        if (clustersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureClustersIsMutable();
          clusters_.add(index, value);
          onChanged();
        } else {
          clustersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public Builder addClusters(
          yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Builder builderForValue) {
        if (clustersBuilder_ == null) {
          ensureClustersIsMutable();
          clusters_.add(builderForValue.build());
          onChanged();
        } else {
          clustersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public Builder addClusters(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Builder builderForValue) {
        if (clustersBuilder_ == null) {
          ensureClustersIsMutable();
          clusters_.add(index, builderForValue.build());
          onChanged();
        } else {
          clustersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public Builder addAllClusters(
          java.lang.Iterable extends yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster> values) {
        if (clustersBuilder_ == null) {
          ensureClustersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, clusters_);
          onChanged();
        } else {
          clustersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public Builder clearClusters() {
        if (clustersBuilder_ == null) {
          clusters_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          clustersBuilder_.clear();
        }
        return this;
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public Builder removeClusters(int index) {
        if (clustersBuilder_ == null) {
          ensureClustersIsMutable();
          clusters_.remove(index);
          onChanged();
        } else {
          clustersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Builder getClustersBuilder(
          int index) {
        return getClustersFieldBuilder().getBuilder(index);
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.ClusterOrBuilder getClustersOrBuilder(
          int index) {
        if (clustersBuilder_ == null) {
          return clusters_.get(index);  } else {
          return clustersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public java.util.List extends yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.ClusterOrBuilder> 
           getClustersOrBuilderList() {
        if (clustersBuilder_ != null) {
          return clustersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(clusters_);
        }
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Builder addClustersBuilder() {
        return getClustersFieldBuilder().addBuilder(
            yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.getDefaultInstance());
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Builder addClustersBuilder(
          int index) {
        return getClustersFieldBuilder().addBuilder(
            index, yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.getDefaultInstance());
      }
      /**
       * 
       * List of Redis clusters.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.Cluster clusters = 1;
       */
      public java.util.List 
           getClustersBuilderList() {
        return getClustersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster, yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Builder, yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.ClusterOrBuilder> 
          getClustersFieldBuilder() {
        if (clustersBuilder_ == null) {
          clustersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster, yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Builder, yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.ClusterOrBuilder>(
                  clusters_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          clusters_ = null;
        }
        return clustersBuilder_;
      }
      private java.lang.Object nextPageToken_ = "";
      /**
       * 
       * This token allows you to get the next page of results for list requests. If the number of results
       * is larger than [ListClustersRequest.page_size], use the [next_page_token] as the value
       * for the [ListClustersRequest.page_token] parameter in the next list request. Each subsequent
       * list request will have its own [next_page_token] to continue paging through the results.
       *  
       *
       * string next_page_token = 2;
       * @return The nextPageToken.
       */
      public java.lang.String getNextPageToken() {
        java.lang.Object ref = nextPageToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          nextPageToken_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * This token allows you to get the next page of results for list requests. If the number of results
       * is larger than [ListClustersRequest.page_size], use the [next_page_token] as the value
       * for the [ListClustersRequest.page_token] parameter in the next list request. Each subsequent
       * list request will have its own [next_page_token] to continue paging through the results.
       *  
       *
       * string next_page_token = 2;
       * @return The bytes for nextPageToken.
       */
      public com.google.protobuf.ByteString
          getNextPageTokenBytes() {
        java.lang.Object ref = nextPageToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          nextPageToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * This token allows you to get the next page of results for list requests. If the number of results
       * is larger than [ListClustersRequest.page_size], use the [next_page_token] as the value
       * for the [ListClustersRequest.page_token] parameter in the next list request. Each subsequent
       * list request will have its own [next_page_token] to continue paging through the results.
       *  
       *
       * string next_page_token = 2;
       * @param value The nextPageToken to set.
       * @return This builder for chaining.
       */
      public Builder setNextPageToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        nextPageToken_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * This token allows you to get the next page of results for list requests. If the number of results
       * is larger than [ListClustersRequest.page_size], use the [next_page_token] as the value
       * for the [ListClustersRequest.page_token] parameter in the next list request. Each subsequent
       * list request will have its own [next_page_token] to continue paging through the results.
       *  
       *
       * string next_page_token = 2;
       * @return This builder for chaining.
       */
      public Builder clearNextPageToken() {
        
        nextPageToken_ = getDefaultInstance().getNextPageToken();
        onChanged();
        return this;
      }
      /**
       * 
       * This token allows you to get the next page of results for list requests. If the number of results
       * is larger than [ListClustersRequest.page_size], use the [next_page_token] as the value
       * for the [ListClustersRequest.page_token] parameter in the next list request. Each subsequent
       * list request will have its own [next_page_token] to continue paging through the results.
       *  
       *
       * string next_page_token = 2;
       * @param value The bytes for nextPageToken to set.
       * @return This builder for chaining.
       */
      public Builder setNextPageTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        nextPageToken_ = value;
        onChanged();
        return this;
      }
      @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.ListClustersResponse)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.ListClustersResponse)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ListClustersResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public ListClustersResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ListClustersResponse(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.ClusterServiceOuterClass.ListClustersResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface CreateClusterRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.CreateClusterRequest)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the folder to create the Redis cluster in.
     *  
     *
     * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The folderId.
     */
    java.lang.String getFolderId();
    /**
     * 
     * ID of the folder to create the Redis cluster in.
     *  
     *
     * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for folderId.
     */
    com.google.protobuf.ByteString
        getFolderIdBytes();
    /**
     * 
     * Name of the Redis cluster. The name must be unique within the folder.
     *  
     *
     * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
     * @return The name.
     */
    java.lang.String getName();
    /**
     * 
     * Name of the Redis cluster. The name must be unique within the folder.
     *  
     *
     * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();
    /**
     * 
     * Description of the Redis cluster.
     *  
     *
     * string description = 3 [(.yandex.cloud.length) = "<=256"];
     * @return The description.
     */
    java.lang.String getDescription();
    /**
     * 
     * Description of the Redis cluster.
     *  
     *
     * string description = 3 [(.yandex.cloud.length) = "<=256"];
     * @return The bytes for description.
     */
    com.google.protobuf.ByteString
        getDescriptionBytes();
    /**
     * 
     * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    int getLabelsCount();
    /**
     * 
     * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    boolean containsLabels(
        java.lang.String key);
    /**
     * Use {@link #getLabelsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map
    getLabels();
    /**
     * 
     * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    java.util.Map
    getLabelsMap();
    /**
     * 
     * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    java.lang.String getLabelsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * 
     * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    java.lang.String getLabelsOrThrow(
        java.lang.String key);
    /**
     * 
     * Deployment environment of the Redis cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
     * @return The enum numeric value on the wire for environment.
     */
    int getEnvironmentValue();
    /**
     * 
     * Deployment environment of the Redis cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
     * @return The environment.
     */
    yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment getEnvironment();
    /**
     * 
     * Configuration and resources for hosts that should be created for the Redis cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
     * @return Whether the configSpec field is set.
     */
    boolean hasConfigSpec();
    /**
     * 
     * Configuration and resources for hosts that should be created for the Redis cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
     * @return The configSpec.
     */
    yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec getConfigSpec();
    /**
     * 
     * Configuration and resources for hosts that should be created for the Redis cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
     */
    yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder getConfigSpecOrBuilder();
    /**
     * 
     * Individual configurations for hosts that should be created for the Redis cluster.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    java.util.List 
        getHostSpecsList();
    /**
     * 
     * Individual configurations for hosts that should be created for the Redis cluster.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec getHostSpecs(int index);
    /**
     * 
     * Individual configurations for hosts that should be created for the Redis cluster.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    int getHostSpecsCount();
    /**
     * 
     * Individual configurations for hosts that should be created for the Redis cluster.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    java.util.List extends yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder> 
        getHostSpecsOrBuilderList();
    /**
     * 
     * Individual configurations for hosts that should be created for the Redis cluster.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder getHostSpecsOrBuilder(
        int index);
    /**
     * 
     * ID of the network to create the cluster in.
     *  
     *
     * string network_id = 10 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The networkId.
     */
    java.lang.String getNetworkId();
    /**
     * 
     * ID of the network to create the cluster in.
     *  
     *
     * string network_id = 10 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for networkId.
     */
    com.google.protobuf.ByteString
        getNetworkIdBytes();
    /**
     * 
     * Redis cluster mode on/off.
     *  
     *
     * bool sharded = 11;
     * @return The sharded.
     */
    boolean getSharded();
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 12;
     * @return A list containing the securityGroupIds.
     */
    java.util.List
        getSecurityGroupIdsList();
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 12;
     * @return The count of securityGroupIds.
     */
    int getSecurityGroupIdsCount();
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 12;
     * @param index The index of the element to return.
     * @return The securityGroupIds at the given index.
     */
    java.lang.String getSecurityGroupIds(int index);
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 12;
     * @param index The index of the value to return.
     * @return The bytes of the securityGroupIds at the given index.
     */
    com.google.protobuf.ByteString
        getSecurityGroupIdsBytes(int index);
    /**
     * 
     * TLS port and functionality on\off
     *  
     *
     * .google.protobuf.BoolValue tls_enabled = 13;
     * @return Whether the tlsEnabled field is set.
     */
    boolean hasTlsEnabled();
    /**
     * 
     * TLS port and functionality on\off
     *  
     *
     * .google.protobuf.BoolValue tls_enabled = 13;
     * @return The tlsEnabled.
     */
    com.google.protobuf.BoolValue getTlsEnabled();
    /**
     * 
     * TLS port and functionality on\off
     *  
     *
     * .google.protobuf.BoolValue tls_enabled = 13;
     */
    com.google.protobuf.BoolValueOrBuilder getTlsEnabledOrBuilder();
    /**
     * 
     * Deletion Protection inhibits deletion of the cluster
     *  
     *
     * bool deletion_protection = 14;
     * @return The deletionProtection.
     */
    boolean getDeletionProtection();
    /**
     * 
     * Persistence mode
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 15;
     * @return The enum numeric value on the wire for persistenceMode.
     */
    int getPersistenceModeValue();
    /**
     * 
     * Persistence mode
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 15;
     * @return The persistenceMode.
     */
    yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode getPersistenceMode();
    /**
     * 
     * Enable FQDN instead of ip
     *  
     *
     * bool announce_hostnames = 16;
     * @return The announceHostnames.
     */
    boolean getAnnounceHostnames();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.CreateClusterRequest}
   */
  public static final class CreateClusterRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.CreateClusterRequest)
      CreateClusterRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CreateClusterRequest.newBuilder() to construct.
    private CreateClusterRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private CreateClusterRequest() {
      folderId_ = "";
      name_ = "";
      description_ = "";
      environment_ = 0;
      hostSpecs_ = java.util.Collections.emptyList();
      networkId_ = "";
      securityGroupIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      persistenceMode_ = 0;
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CreateClusterRequest();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private CreateClusterRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      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: {
              java.lang.String s = input.readStringRequireUtf8();
              folderId_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              name_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              description_ = s;
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                labels_ = com.google.protobuf.MapField.newMapField(
                    LabelsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry
              labels__ = input.readMessage(
                  LabelsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              labels_.getMutableMap().put(
                  labels__.getKey(), labels__.getValue());
              break;
            }
            case 40: {
              int rawValue = input.readEnum();
              environment_ = rawValue;
              break;
            }
            case 50: {
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder subBuilder = null;
              if (configSpec_ != null) {
                subBuilder = configSpec_.toBuilder();
              }
              configSpec_ = input.readMessage(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(configSpec_);
                configSpec_ = subBuilder.buildPartial();
              }
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                hostSpecs_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              hostSpecs_.add(
                  input.readMessage(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.parser(), extensionRegistry));
              break;
            }
            case 82: {
              java.lang.String s = input.readStringRequireUtf8();
              networkId_ = s;
              break;
            }
            case 88: {
              sharded_ = input.readBool();
              break;
            }
            case 98: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                securityGroupIds_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              securityGroupIds_.add(s);
              break;
            }
            case 106: {
              com.google.protobuf.BoolValue.Builder subBuilder = null;
              if (tlsEnabled_ != null) {
                subBuilder = tlsEnabled_.toBuilder();
              }
              tlsEnabled_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(tlsEnabled_);
                tlsEnabled_ = subBuilder.buildPartial();
              }
              break;
            }
            case 112: {
              deletionProtection_ = input.readBool();
              break;
            }
            case 120: {
              int rawValue = input.readEnum();
              persistenceMode_ = rawValue;
              break;
            }
            case 128: {
              announceHostnames_ = input.readBool();
              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 {
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          hostSpecs_ = java.util.Collections.unmodifiableList(hostSpecs_);
        }
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          securityGroupIds_ = securityGroupIds_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_CreateClusterRequest_descriptor;
    }
    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 4:
          return internalGetLabels();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_CreateClusterRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest.Builder.class);
    }
    public static final int FOLDER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object folderId_;
    /**
     * 
     * ID of the folder to create the Redis cluster in.
     *  
     *
     * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The folderId.
     */
    @java.lang.Override
    public java.lang.String getFolderId() {
      java.lang.Object ref = folderId_;
      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();
        folderId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the folder to create the Redis cluster in.
     *  
     *
     * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for folderId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFolderIdBytes() {
      java.lang.Object ref = folderId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        folderId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object name_;
    /**
     * 
     * Name of the Redis cluster. The name must be unique within the folder.
     *  
     *
     * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      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();
        name_ = s;
        return s;
      }
    }
    /**
     * 
     * Name of the Redis cluster. The name must be unique within the folder.
     *  
     *
     * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int DESCRIPTION_FIELD_NUMBER = 3;
    private volatile java.lang.Object description_;
    /**
     * 
     * Description of the Redis cluster.
     *  
     *
     * string description = 3 [(.yandex.cloud.length) = "<=256"];
     * @return The description.
     */
    @java.lang.Override
    public java.lang.String getDescription() {
      java.lang.Object ref = description_;
      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();
        description_ = s;
        return s;
      }
    }
    /**
     * 
     * Description of the Redis cluster.
     *  
     *
     * string description = 3 [(.yandex.cloud.length) = "<=256"];
     * @return The bytes for description.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDescriptionBytes() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        description_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int LABELS_FIELD_NUMBER = 4;
    private static final class LabelsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .newDefaultInstance(
                  yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_CreateClusterRequest_LabelsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> labels_;
    private com.google.protobuf.MapField
    internalGetLabels() {
      if (labels_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            LabelsDefaultEntryHolder.defaultEntry);
      }
      return labels_;
    }
    public int getLabelsCount() {
      return internalGetLabels().getMap().size();
    }
    /**
     * 
     * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    @java.lang.Override
    public boolean containsLabels(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetLabels().getMap().containsKey(key);
    }
    /**
     * Use {@link #getLabelsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map getLabels() {
      return getLabelsMap();
    }
    /**
     * 
     * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    @java.lang.Override
    public java.util.Map getLabelsMap() {
      return internalGetLabels().getMap();
    }
    /**
     * 
     * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    @java.lang.Override
    public java.lang.String getLabelsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetLabels().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * 
     * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    @java.lang.Override
    public java.lang.String getLabelsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetLabels().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }
    public static final int ENVIRONMENT_FIELD_NUMBER = 5;
    private int environment_;
    /**
     * 
     * Deployment environment of the Redis cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
     * @return The enum numeric value on the wire for environment.
     */
    @java.lang.Override public int getEnvironmentValue() {
      return environment_;
    }
    /**
     * 
     * Deployment environment of the Redis cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
     * @return The environment.
     */
    @java.lang.Override public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment getEnvironment() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment result = yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment.valueOf(environment_);
      return result == null ? yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment.UNRECOGNIZED : result;
    }
    public static final int CONFIG_SPEC_FIELD_NUMBER = 6;
    private yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec configSpec_;
    /**
     * 
     * Configuration and resources for hosts that should be created for the Redis cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
     * @return Whether the configSpec field is set.
     */
    @java.lang.Override
    public boolean hasConfigSpec() {
      return configSpec_ != null;
    }
    /**
     * 
     * Configuration and resources for hosts that should be created for the Redis cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
     * @return The configSpec.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec getConfigSpec() {
      return configSpec_ == null ? yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.getDefaultInstance() : configSpec_;
    }
    /**
     * 
     * Configuration and resources for hosts that should be created for the Redis cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder getConfigSpecOrBuilder() {
      return getConfigSpec();
    }
    public static final int HOST_SPECS_FIELD_NUMBER = 7;
    private java.util.List hostSpecs_;
    /**
     * 
     * Individual configurations for hosts that should be created for the Redis cluster.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public java.util.List getHostSpecsList() {
      return hostSpecs_;
    }
    /**
     * 
     * Individual configurations for hosts that should be created for the Redis cluster.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public java.util.List extends yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder> 
        getHostSpecsOrBuilderList() {
      return hostSpecs_;
    }
    /**
     * 
     * Individual configurations for hosts that should be created for the Redis cluster.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public int getHostSpecsCount() {
      return hostSpecs_.size();
    }
    /**
     * 
     * Individual configurations for hosts that should be created for the Redis cluster.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec getHostSpecs(int index) {
      return hostSpecs_.get(index);
    }
    /**
     * 
     * Individual configurations for hosts that should be created for the Redis cluster.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder getHostSpecsOrBuilder(
        int index) {
      return hostSpecs_.get(index);
    }
    public static final int NETWORK_ID_FIELD_NUMBER = 10;
    private volatile java.lang.Object networkId_;
    /**
     * 
     * ID of the network to create the cluster in.
     *  
     *
     * string network_id = 10 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The networkId.
     */
    @java.lang.Override
    public java.lang.String getNetworkId() {
      java.lang.Object ref = networkId_;
      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();
        networkId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the network to create the cluster in.
     *  
     *
     * string network_id = 10 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for networkId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNetworkIdBytes() {
      java.lang.Object ref = networkId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        networkId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int SHARDED_FIELD_NUMBER = 11;
    private boolean sharded_;
    /**
     * 
     * Redis cluster mode on/off.
     *  
     *
     * bool sharded = 11;
     * @return The sharded.
     */
    @java.lang.Override
    public boolean getSharded() {
      return sharded_;
    }
    public static final int SECURITY_GROUP_IDS_FIELD_NUMBER = 12;
    private com.google.protobuf.LazyStringList securityGroupIds_;
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 12;
     * @return A list containing the securityGroupIds.
     */
    public com.google.protobuf.ProtocolStringList
        getSecurityGroupIdsList() {
      return securityGroupIds_;
    }
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 12;
     * @return The count of securityGroupIds.
     */
    public int getSecurityGroupIdsCount() {
      return securityGroupIds_.size();
    }
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 12;
     * @param index The index of the element to return.
     * @return The securityGroupIds at the given index.
     */
    public java.lang.String getSecurityGroupIds(int index) {
      return securityGroupIds_.get(index);
    }
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 12;
     * @param index The index of the value to return.
     * @return The bytes of the securityGroupIds at the given index.
     */
    public com.google.protobuf.ByteString
        getSecurityGroupIdsBytes(int index) {
      return securityGroupIds_.getByteString(index);
    }
    public static final int TLS_ENABLED_FIELD_NUMBER = 13;
    private com.google.protobuf.BoolValue tlsEnabled_;
    /**
     * 
     * TLS port and functionality on\off
     *  
     *
     * .google.protobuf.BoolValue tls_enabled = 13;
     * @return Whether the tlsEnabled field is set.
     */
    @java.lang.Override
    public boolean hasTlsEnabled() {
      return tlsEnabled_ != null;
    }
    /**
     * 
     * TLS port and functionality on\off
     *  
     *
     * .google.protobuf.BoolValue tls_enabled = 13;
     * @return The tlsEnabled.
     */
    @java.lang.Override
    public com.google.protobuf.BoolValue getTlsEnabled() {
      return tlsEnabled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : tlsEnabled_;
    }
    /**
     * 
     * TLS port and functionality on\off
     *  
     *
     * .google.protobuf.BoolValue tls_enabled = 13;
     */
    @java.lang.Override
    public com.google.protobuf.BoolValueOrBuilder getTlsEnabledOrBuilder() {
      return getTlsEnabled();
    }
    public static final int DELETION_PROTECTION_FIELD_NUMBER = 14;
    private boolean deletionProtection_;
    /**
     * 
     * Deletion Protection inhibits deletion of the cluster
     *  
     *
     * bool deletion_protection = 14;
     * @return The deletionProtection.
     */
    @java.lang.Override
    public boolean getDeletionProtection() {
      return deletionProtection_;
    }
    public static final int PERSISTENCE_MODE_FIELD_NUMBER = 15;
    private int persistenceMode_;
    /**
     * 
     * Persistence mode
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 15;
     * @return The enum numeric value on the wire for persistenceMode.
     */
    @java.lang.Override public int getPersistenceModeValue() {
      return persistenceMode_;
    }
    /**
     * 
     * Persistence mode
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 15;
     * @return The persistenceMode.
     */
    @java.lang.Override public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode getPersistenceMode() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode result = yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.valueOf(persistenceMode_);
      return result == null ? yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.UNRECOGNIZED : result;
    }
    public static final int ANNOUNCE_HOSTNAMES_FIELD_NUMBER = 16;
    private boolean announceHostnames_;
    /**
     * 
     * Enable FQDN instead of ip
     *  
     *
     * bool announce_hostnames = 16;
     * @return The announceHostnames.
     */
    @java.lang.Override
    public boolean getAnnounceHostnames() {
      return announceHostnames_;
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(folderId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, folderId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, description_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetLabels(),
          LabelsDefaultEntryHolder.defaultEntry,
          4);
      if (environment_ != yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment.ENVIRONMENT_UNSPECIFIED.getNumber()) {
        output.writeEnum(5, environment_);
      }
      if (configSpec_ != null) {
        output.writeMessage(6, getConfigSpec());
      }
      for (int i = 0; i < hostSpecs_.size(); i++) {
        output.writeMessage(7, hostSpecs_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(networkId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, networkId_);
      }
      if (sharded_ != false) {
        output.writeBool(11, sharded_);
      }
      for (int i = 0; i < securityGroupIds_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, securityGroupIds_.getRaw(i));
      }
      if (tlsEnabled_ != null) {
        output.writeMessage(13, getTlsEnabled());
      }
      if (deletionProtection_ != false) {
        output.writeBool(14, deletionProtection_);
      }
      if (persistenceMode_ != yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.ON.getNumber()) {
        output.writeEnum(15, persistenceMode_);
      }
      if (announceHostnames_ != false) {
        output.writeBool(16, announceHostnames_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(folderId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, folderId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, description_);
      }
      for (java.util.Map.Entry entry
           : internalGetLabels().getMap().entrySet()) {
        com.google.protobuf.MapEntry
        labels__ = LabelsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, labels__);
      }
      if (environment_ != yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment.ENVIRONMENT_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, environment_);
      }
      if (configSpec_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getConfigSpec());
      }
      for (int i = 0; i < hostSpecs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, hostSpecs_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(networkId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, networkId_);
      }
      if (sharded_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(11, sharded_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < securityGroupIds_.size(); i++) {
          dataSize += computeStringSizeNoTag(securityGroupIds_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getSecurityGroupIdsList().size();
      }
      if (tlsEnabled_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, getTlsEnabled());
      }
      if (deletionProtection_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(14, deletionProtection_);
      }
      if (persistenceMode_ != yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.ON.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(15, persistenceMode_);
      }
      if (announceHostnames_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(16, announceHostnames_);
      }
      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.ClusterServiceOuterClass.CreateClusterRequest)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest) obj;
      if (!getFolderId()
          .equals(other.getFolderId())) return false;
      if (!getName()
          .equals(other.getName())) return false;
      if (!getDescription()
          .equals(other.getDescription())) return false;
      if (!internalGetLabels().equals(
          other.internalGetLabels())) return false;
      if (environment_ != other.environment_) return false;
      if (hasConfigSpec() != other.hasConfigSpec()) return false;
      if (hasConfigSpec()) {
        if (!getConfigSpec()
            .equals(other.getConfigSpec())) return false;
      }
      if (!getHostSpecsList()
          .equals(other.getHostSpecsList())) return false;
      if (!getNetworkId()
          .equals(other.getNetworkId())) return false;
      if (getSharded()
          != other.getSharded()) return false;
      if (!getSecurityGroupIdsList()
          .equals(other.getSecurityGroupIdsList())) return false;
      if (hasTlsEnabled() != other.hasTlsEnabled()) return false;
      if (hasTlsEnabled()) {
        if (!getTlsEnabled()
            .equals(other.getTlsEnabled())) return false;
      }
      if (getDeletionProtection()
          != other.getDeletionProtection()) return false;
      if (persistenceMode_ != other.persistenceMode_) return false;
      if (getAnnounceHostnames()
          != other.getAnnounceHostnames()) 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) + FOLDER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getFolderId().hashCode();
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
      hash = (53 * hash) + getDescription().hashCode();
      if (!internalGetLabels().getMap().isEmpty()) {
        hash = (37 * hash) + LABELS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetLabels().hashCode();
      }
      hash = (37 * hash) + ENVIRONMENT_FIELD_NUMBER;
      hash = (53 * hash) + environment_;
      if (hasConfigSpec()) {
        hash = (37 * hash) + CONFIG_SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getConfigSpec().hashCode();
      }
      if (getHostSpecsCount() > 0) {
        hash = (37 * hash) + HOST_SPECS_FIELD_NUMBER;
        hash = (53 * hash) + getHostSpecsList().hashCode();
      }
      hash = (37 * hash) + NETWORK_ID_FIELD_NUMBER;
      hash = (53 * hash) + getNetworkId().hashCode();
      hash = (37 * hash) + SHARDED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getSharded());
      if (getSecurityGroupIdsCount() > 0) {
        hash = (37 * hash) + SECURITY_GROUP_IDS_FIELD_NUMBER;
        hash = (53 * hash) + getSecurityGroupIdsList().hashCode();
      }
      if (hasTlsEnabled()) {
        hash = (37 * hash) + TLS_ENABLED_FIELD_NUMBER;
        hash = (53 * hash) + getTlsEnabled().hashCode();
      }
      hash = (37 * hash) + DELETION_PROTECTION_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDeletionProtection());
      hash = (37 * hash) + PERSISTENCE_MODE_FIELD_NUMBER;
      hash = (53 * hash) + persistenceMode_;
      hash = (37 * hash) + ANNOUNCE_HOSTNAMES_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getAnnounceHostnames());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest 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.ClusterServiceOuterClass.CreateClusterRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest 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.ClusterServiceOuterClass.CreateClusterRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest 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.ClusterServiceOuterClass.CreateClusterRequest 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.ClusterServiceOuterClass.CreateClusterRequest 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.ClusterServiceOuterClass.CreateClusterRequest 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.ClusterServiceOuterClass.CreateClusterRequest 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.ClusterServiceOuterClass.CreateClusterRequest 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.ClusterServiceOuterClass.CreateClusterRequest 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.ClusterServiceOuterClass.CreateClusterRequest 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.CreateClusterRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.CreateClusterRequest)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_CreateClusterRequest_descriptor;
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 4:
            return internalGetLabels();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 4:
            return internalGetMutableLabels();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_CreateClusterRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHostSpecsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        folderId_ = "";
        name_ = "";
        description_ = "";
        internalGetMutableLabels().clear();
        environment_ = 0;
        if (configSpecBuilder_ == null) {
          configSpec_ = null;
        } else {
          configSpec_ = null;
          configSpecBuilder_ = null;
        }
        if (hostSpecsBuilder_ == null) {
          hostSpecs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          hostSpecsBuilder_.clear();
        }
        networkId_ = "";
        sharded_ = false;
        securityGroupIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (tlsEnabledBuilder_ == null) {
          tlsEnabled_ = null;
        } else {
          tlsEnabled_ = null;
          tlsEnabledBuilder_ = null;
        }
        deletionProtection_ = false;
        persistenceMode_ = 0;
        announceHostnames_ = false;
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_CreateClusterRequest_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest(this);
        int from_bitField0_ = bitField0_;
        result.folderId_ = folderId_;
        result.name_ = name_;
        result.description_ = description_;
        result.labels_ = internalGetLabels();
        result.labels_.makeImmutable();
        result.environment_ = environment_;
        if (configSpecBuilder_ == null) {
          result.configSpec_ = configSpec_;
        } else {
          result.configSpec_ = configSpecBuilder_.build();
        }
        if (hostSpecsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            hostSpecs_ = java.util.Collections.unmodifiableList(hostSpecs_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.hostSpecs_ = hostSpecs_;
        } else {
          result.hostSpecs_ = hostSpecsBuilder_.build();
        }
        result.networkId_ = networkId_;
        result.sharded_ = sharded_;
        if (((bitField0_ & 0x00000004) != 0)) {
          securityGroupIds_ = securityGroupIds_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.securityGroupIds_ = securityGroupIds_;
        if (tlsEnabledBuilder_ == null) {
          result.tlsEnabled_ = tlsEnabled_;
        } else {
          result.tlsEnabled_ = tlsEnabledBuilder_.build();
        }
        result.deletionProtection_ = deletionProtection_;
        result.persistenceMode_ = persistenceMode_;
        result.announceHostnames_ = announceHostnames_;
        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.ClusterServiceOuterClass.CreateClusterRequest) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest.getDefaultInstance()) return this;
        if (!other.getFolderId().isEmpty()) {
          folderId_ = other.folderId_;
          onChanged();
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (!other.getDescription().isEmpty()) {
          description_ = other.description_;
          onChanged();
        }
        internalGetMutableLabels().mergeFrom(
            other.internalGetLabels());
        if (other.environment_ != 0) {
          setEnvironmentValue(other.getEnvironmentValue());
        }
        if (other.hasConfigSpec()) {
          mergeConfigSpec(other.getConfigSpec());
        }
        if (hostSpecsBuilder_ == null) {
          if (!other.hostSpecs_.isEmpty()) {
            if (hostSpecs_.isEmpty()) {
              hostSpecs_ = other.hostSpecs_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureHostSpecsIsMutable();
              hostSpecs_.addAll(other.hostSpecs_);
            }
            onChanged();
          }
        } else {
          if (!other.hostSpecs_.isEmpty()) {
            if (hostSpecsBuilder_.isEmpty()) {
              hostSpecsBuilder_.dispose();
              hostSpecsBuilder_ = null;
              hostSpecs_ = other.hostSpecs_;
              bitField0_ = (bitField0_ & ~0x00000002);
              hostSpecsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getHostSpecsFieldBuilder() : null;
            } else {
              hostSpecsBuilder_.addAllMessages(other.hostSpecs_);
            }
          }
        }
        if (!other.getNetworkId().isEmpty()) {
          networkId_ = other.networkId_;
          onChanged();
        }
        if (other.getSharded() != false) {
          setSharded(other.getSharded());
        }
        if (!other.securityGroupIds_.isEmpty()) {
          if (securityGroupIds_.isEmpty()) {
            securityGroupIds_ = other.securityGroupIds_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureSecurityGroupIdsIsMutable();
            securityGroupIds_.addAll(other.securityGroupIds_);
          }
          onChanged();
        }
        if (other.hasTlsEnabled()) {
          mergeTlsEnabled(other.getTlsEnabled());
        }
        if (other.getDeletionProtection() != false) {
          setDeletionProtection(other.getDeletionProtection());
        }
        if (other.persistenceMode_ != 0) {
          setPersistenceModeValue(other.getPersistenceModeValue());
        }
        if (other.getAnnounceHostnames() != false) {
          setAnnounceHostnames(other.getAnnounceHostnames());
        }
        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.ClusterServiceOuterClass.CreateClusterRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private java.lang.Object folderId_ = "";
      /**
       * 
       * ID of the folder to create the Redis cluster in.
       *  
       *
       * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The folderId.
       */
      public java.lang.String getFolderId() {
        java.lang.Object ref = folderId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          folderId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the folder to create the Redis cluster in.
       *  
       *
       * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for folderId.
       */
      public com.google.protobuf.ByteString
          getFolderIdBytes() {
        java.lang.Object ref = folderId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          folderId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the folder to create the Redis cluster in.
       *  
       *
       * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The folderId to set.
       * @return This builder for chaining.
       */
      public Builder setFolderId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        folderId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the folder to create the Redis cluster in.
       *  
       *
       * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearFolderId() {
        
        folderId_ = getDefaultInstance().getFolderId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the folder to create the Redis cluster in.
       *  
       *
       * string folder_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for folderId to set.
       * @return This builder for chaining.
       */
      public Builder setFolderIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        folderId_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object name_ = "";
      /**
       * 
       * Name of the Redis cluster. The name must be unique within the folder.
       *  
       *
       * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * Name of the Redis cluster. The name must be unique within the folder.
       *  
       *
       * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * Name of the Redis cluster. The name must be unique within the folder.
       *  
       *
       * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Name of the Redis cluster. The name must be unique within the folder.
       *  
       *
       * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * 
       * Name of the Redis cluster. The name must be unique within the folder.
       *  
       *
       * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        name_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object description_ = "";
      /**
       * 
       * Description of the Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @return The description.
       */
      public java.lang.String getDescription() {
        java.lang.Object ref = description_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          description_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * Description of the Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @return The bytes for description.
       */
      public com.google.protobuf.ByteString
          getDescriptionBytes() {
        java.lang.Object ref = description_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          description_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * Description of the Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @param value The description to set.
       * @return This builder for chaining.
       */
      public Builder setDescription(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        description_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Description of the Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @return This builder for chaining.
       */
      public Builder clearDescription() {
        
        description_ = getDefaultInstance().getDescription();
        onChanged();
        return this;
      }
      /**
       * 
       * Description of the Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @param value The bytes for description to set.
       * @return This builder for chaining.
       */
      public Builder setDescriptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        description_ = value;
        onChanged();
        return this;
      }
      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> labels_;
      private com.google.protobuf.MapField
      internalGetLabels() {
        if (labels_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              LabelsDefaultEntryHolder.defaultEntry);
        }
        return labels_;
      }
      private com.google.protobuf.MapField
      internalGetMutableLabels() {
        onChanged();;
        if (labels_ == null) {
          labels_ = com.google.protobuf.MapField.newMapField(
              LabelsDefaultEntryHolder.defaultEntry);
        }
        if (!labels_.isMutable()) {
          labels_ = labels_.copy();
        }
        return labels_;
      }
      public int getLabelsCount() {
        return internalGetLabels().getMap().size();
      }
      /**
       * 
       * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      @java.lang.Override
      public boolean containsLabels(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetLabels().getMap().containsKey(key);
      }
      /**
       * Use {@link #getLabelsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map getLabels() {
        return getLabelsMap();
      }
      /**
       * 
       * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      @java.lang.Override
      public java.util.Map getLabelsMap() {
        return internalGetLabels().getMap();
      }
      /**
       * 
       * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      @java.lang.Override
      public java.lang.String getLabelsOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map =
            internalGetLabels().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * 
       * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      @java.lang.Override
      public java.lang.String getLabelsOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map =
            internalGetLabels().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      public Builder clearLabels() {
        internalGetMutableLabels().getMutableMap()
            .clear();
        return this;
      }
      /**
       * 
       * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      public Builder removeLabels(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableLabels().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map
      getMutableLabels() {
        return internalGetMutableLabels().getMutableMap();
      }
      /**
       * 
       * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      public Builder putLabels(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) {
  throw new NullPointerException("map value");
}
        internalGetMutableLabels().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * 
       * Custom labels for the Redis cluster as `key:value` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      public Builder putAllLabels(
          java.util.Map values) {
        internalGetMutableLabels().getMutableMap()
            .putAll(values);
        return this;
      }
      private int environment_ = 0;
      /**
       * 
       * Deployment environment of the Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
       * @return The enum numeric value on the wire for environment.
       */
      @java.lang.Override public int getEnvironmentValue() {
        return environment_;
      }
      /**
       * 
       * Deployment environment of the Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
       * @param value The enum numeric value on the wire for environment to set.
       * @return This builder for chaining.
       */
      public Builder setEnvironmentValue(int value) {
        
        environment_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Deployment environment of the Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
       * @return The environment.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment getEnvironment() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment result = yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment.valueOf(environment_);
        return result == null ? yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment.UNRECOGNIZED : result;
      }
      /**
       * 
       * Deployment environment of the Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
       * @param value The environment to set.
       * @return This builder for chaining.
       */
      public Builder setEnvironment(yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        environment_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Deployment environment of the Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
       * @return This builder for chaining.
       */
      public Builder clearEnvironment() {
        
        environment_ = 0;
        onChanged();
        return this;
      }
      private yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec configSpec_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder> configSpecBuilder_;
      /**
       * 
       * Configuration and resources for hosts that should be created for the Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       * @return Whether the configSpec field is set.
       */
      public boolean hasConfigSpec() {
        return configSpecBuilder_ != null || configSpec_ != null;
      }
      /**
       * 
       * Configuration and resources for hosts that should be created for the Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       * @return The configSpec.
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec getConfigSpec() {
        if (configSpecBuilder_ == null) {
          return configSpec_ == null ? yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.getDefaultInstance() : configSpec_;
        } else {
          return configSpecBuilder_.getMessage();
        }
      }
      /**
       * 
       * Configuration and resources for hosts that should be created for the Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       */
      public Builder setConfigSpec(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec value) {
        if (configSpecBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          configSpec_ = value;
          onChanged();
        } else {
          configSpecBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Configuration and resources for hosts that should be created for the Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       */
      public Builder setConfigSpec(
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder builderForValue) {
        if (configSpecBuilder_ == null) {
          configSpec_ = builderForValue.build();
          onChanged();
        } else {
          configSpecBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Configuration and resources for hosts that should be created for the Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       */
      public Builder mergeConfigSpec(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec value) {
        if (configSpecBuilder_ == null) {
          if (configSpec_ != null) {
            configSpec_ =
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.newBuilder(configSpec_).mergeFrom(value).buildPartial();
          } else {
            configSpec_ = value;
          }
          onChanged();
        } else {
          configSpecBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Configuration and resources for hosts that should be created for the Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       */
      public Builder clearConfigSpec() {
        if (configSpecBuilder_ == null) {
          configSpec_ = null;
          onChanged();
        } else {
          configSpec_ = null;
          configSpecBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Configuration and resources for hosts that should be created for the Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder getConfigSpecBuilder() {
        
        onChanged();
        return getConfigSpecFieldBuilder().getBuilder();
      }
      /**
       * 
       * Configuration and resources for hosts that should be created for the Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder getConfigSpecOrBuilder() {
        if (configSpecBuilder_ != null) {
          return configSpecBuilder_.getMessageOrBuilder();
        } else {
          return configSpec_ == null ?
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.getDefaultInstance() : configSpec_;
        }
      }
      /**
       * 
       * Configuration and resources for hosts that should be created for the Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder> 
          getConfigSpecFieldBuilder() {
        if (configSpecBuilder_ == null) {
          configSpecBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder>(
                  getConfigSpec(),
                  getParentForChildren(),
                  isClean());
          configSpec_ = null;
        }
        return configSpecBuilder_;
      }
      private java.util.List hostSpecs_ =
        java.util.Collections.emptyList();
      private void ensureHostSpecsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          hostSpecs_ = new java.util.ArrayList(hostSpecs_);
          bitField0_ |= 0x00000002;
         }
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder> hostSpecsBuilder_;
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public java.util.List getHostSpecsList() {
        if (hostSpecsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(hostSpecs_);
        } else {
          return hostSpecsBuilder_.getMessageList();
        }
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public int getHostSpecsCount() {
        if (hostSpecsBuilder_ == null) {
          return hostSpecs_.size();
        } else {
          return hostSpecsBuilder_.getCount();
        }
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec getHostSpecs(int index) {
        if (hostSpecsBuilder_ == null) {
          return hostSpecs_.get(index);
        } else {
          return hostSpecsBuilder_.getMessage(index);
        }
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder setHostSpecs(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec value) {
        if (hostSpecsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHostSpecsIsMutable();
          hostSpecs_.set(index, value);
          onChanged();
        } else {
          hostSpecsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder setHostSpecs(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder builderForValue) {
        if (hostSpecsBuilder_ == null) {
          ensureHostSpecsIsMutable();
          hostSpecs_.set(index, builderForValue.build());
          onChanged();
        } else {
          hostSpecsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addHostSpecs(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec value) {
        if (hostSpecsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHostSpecsIsMutable();
          hostSpecs_.add(value);
          onChanged();
        } else {
          hostSpecsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addHostSpecs(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec value) {
        if (hostSpecsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHostSpecsIsMutable();
          hostSpecs_.add(index, value);
          onChanged();
        } else {
          hostSpecsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addHostSpecs(
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder builderForValue) {
        if (hostSpecsBuilder_ == null) {
          ensureHostSpecsIsMutable();
          hostSpecs_.add(builderForValue.build());
          onChanged();
        } else {
          hostSpecsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addHostSpecs(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder builderForValue) {
        if (hostSpecsBuilder_ == null) {
          ensureHostSpecsIsMutable();
          hostSpecs_.add(index, builderForValue.build());
          onChanged();
        } else {
          hostSpecsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addAllHostSpecs(
          java.lang.Iterable extends yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec> values) {
        if (hostSpecsBuilder_ == null) {
          ensureHostSpecsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, hostSpecs_);
          onChanged();
        } else {
          hostSpecsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder clearHostSpecs() {
        if (hostSpecsBuilder_ == null) {
          hostSpecs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          hostSpecsBuilder_.clear();
        }
        return this;
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder removeHostSpecs(int index) {
        if (hostSpecsBuilder_ == null) {
          ensureHostSpecsIsMutable();
          hostSpecs_.remove(index);
          onChanged();
        } else {
          hostSpecsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder getHostSpecsBuilder(
          int index) {
        return getHostSpecsFieldBuilder().getBuilder(index);
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder getHostSpecsOrBuilder(
          int index) {
        if (hostSpecsBuilder_ == null) {
          return hostSpecs_.get(index);  } else {
          return hostSpecsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public java.util.List extends yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder> 
           getHostSpecsOrBuilderList() {
        if (hostSpecsBuilder_ != null) {
          return hostSpecsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(hostSpecs_);
        }
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder addHostSpecsBuilder() {
        return getHostSpecsFieldBuilder().addBuilder(
            yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.getDefaultInstance());
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder addHostSpecsBuilder(
          int index) {
        return getHostSpecsFieldBuilder().addBuilder(
            index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.getDefaultInstance());
      }
      /**
       * 
       * Individual configurations for hosts that should be created for the Redis cluster.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public java.util.List 
           getHostSpecsBuilderList() {
        return getHostSpecsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder> 
          getHostSpecsFieldBuilder() {
        if (hostSpecsBuilder_ == null) {
          hostSpecsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder>(
                  hostSpecs_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          hostSpecs_ = null;
        }
        return hostSpecsBuilder_;
      }
      private java.lang.Object networkId_ = "";
      /**
       * 
       * ID of the network to create the cluster in.
       *  
       *
       * string network_id = 10 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The networkId.
       */
      public java.lang.String getNetworkId() {
        java.lang.Object ref = networkId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          networkId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the network to create the cluster in.
       *  
       *
       * string network_id = 10 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for networkId.
       */
      public com.google.protobuf.ByteString
          getNetworkIdBytes() {
        java.lang.Object ref = networkId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          networkId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the network to create the cluster in.
       *  
       *
       * string network_id = 10 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The networkId to set.
       * @return This builder for chaining.
       */
      public Builder setNetworkId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        networkId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the network to create the cluster in.
       *  
       *
       * string network_id = 10 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearNetworkId() {
        
        networkId_ = getDefaultInstance().getNetworkId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the network to create the cluster in.
       *  
       *
       * string network_id = 10 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for networkId to set.
       * @return This builder for chaining.
       */
      public Builder setNetworkIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        networkId_ = value;
        onChanged();
        return this;
      }
      private boolean sharded_ ;
      /**
       * 
       * Redis cluster mode on/off.
       *  
       *
       * bool sharded = 11;
       * @return The sharded.
       */
      @java.lang.Override
      public boolean getSharded() {
        return sharded_;
      }
      /**
       * 
       * Redis cluster mode on/off.
       *  
       *
       * bool sharded = 11;
       * @param value The sharded to set.
       * @return This builder for chaining.
       */
      public Builder setSharded(boolean value) {
        
        sharded_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Redis cluster mode on/off.
       *  
       *
       * bool sharded = 11;
       * @return This builder for chaining.
       */
      public Builder clearSharded() {
        
        sharded_ = false;
        onChanged();
        return this;
      }
      private com.google.protobuf.LazyStringList securityGroupIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureSecurityGroupIdsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          securityGroupIds_ = new com.google.protobuf.LazyStringArrayList(securityGroupIds_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 12;
       * @return A list containing the securityGroupIds.
       */
      public com.google.protobuf.ProtocolStringList
          getSecurityGroupIdsList() {
        return securityGroupIds_.getUnmodifiableView();
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 12;
       * @return The count of securityGroupIds.
       */
      public int getSecurityGroupIdsCount() {
        return securityGroupIds_.size();
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 12;
       * @param index The index of the element to return.
       * @return The securityGroupIds at the given index.
       */
      public java.lang.String getSecurityGroupIds(int index) {
        return securityGroupIds_.get(index);
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 12;
       * @param index The index of the value to return.
       * @return The bytes of the securityGroupIds at the given index.
       */
      public com.google.protobuf.ByteString
          getSecurityGroupIdsBytes(int index) {
        return securityGroupIds_.getByteString(index);
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 12;
       * @param index The index to set the value at.
       * @param value The securityGroupIds to set.
       * @return This builder for chaining.
       */
      public Builder setSecurityGroupIds(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureSecurityGroupIdsIsMutable();
        securityGroupIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 12;
       * @param value The securityGroupIds to add.
       * @return This builder for chaining.
       */
      public Builder addSecurityGroupIds(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureSecurityGroupIdsIsMutable();
        securityGroupIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 12;
       * @param values The securityGroupIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllSecurityGroupIds(
          java.lang.Iterable values) {
        ensureSecurityGroupIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, securityGroupIds_);
        onChanged();
        return this;
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 12;
       * @return This builder for chaining.
       */
      public Builder clearSecurityGroupIds() {
        securityGroupIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 12;
       * @param value The bytes of the securityGroupIds to add.
       * @return This builder for chaining.
       */
      public Builder addSecurityGroupIdsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureSecurityGroupIdsIsMutable();
        securityGroupIds_.add(value);
        onChanged();
        return this;
      }
      private com.google.protobuf.BoolValue tlsEnabled_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> tlsEnabledBuilder_;
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 13;
       * @return Whether the tlsEnabled field is set.
       */
      public boolean hasTlsEnabled() {
        return tlsEnabledBuilder_ != null || tlsEnabled_ != null;
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 13;
       * @return The tlsEnabled.
       */
      public com.google.protobuf.BoolValue getTlsEnabled() {
        if (tlsEnabledBuilder_ == null) {
          return tlsEnabled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : tlsEnabled_;
        } else {
          return tlsEnabledBuilder_.getMessage();
        }
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 13;
       */
      public Builder setTlsEnabled(com.google.protobuf.BoolValue value) {
        if (tlsEnabledBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tlsEnabled_ = value;
          onChanged();
        } else {
          tlsEnabledBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 13;
       */
      public Builder setTlsEnabled(
          com.google.protobuf.BoolValue.Builder builderForValue) {
        if (tlsEnabledBuilder_ == null) {
          tlsEnabled_ = builderForValue.build();
          onChanged();
        } else {
          tlsEnabledBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 13;
       */
      public Builder mergeTlsEnabled(com.google.protobuf.BoolValue value) {
        if (tlsEnabledBuilder_ == null) {
          if (tlsEnabled_ != null) {
            tlsEnabled_ =
              com.google.protobuf.BoolValue.newBuilder(tlsEnabled_).mergeFrom(value).buildPartial();
          } else {
            tlsEnabled_ = value;
          }
          onChanged();
        } else {
          tlsEnabledBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 13;
       */
      public Builder clearTlsEnabled() {
        if (tlsEnabledBuilder_ == null) {
          tlsEnabled_ = null;
          onChanged();
        } else {
          tlsEnabled_ = null;
          tlsEnabledBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 13;
       */
      public com.google.protobuf.BoolValue.Builder getTlsEnabledBuilder() {
        
        onChanged();
        return getTlsEnabledFieldBuilder().getBuilder();
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 13;
       */
      public com.google.protobuf.BoolValueOrBuilder getTlsEnabledOrBuilder() {
        if (tlsEnabledBuilder_ != null) {
          return tlsEnabledBuilder_.getMessageOrBuilder();
        } else {
          return tlsEnabled_ == null ?
              com.google.protobuf.BoolValue.getDefaultInstance() : tlsEnabled_;
        }
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 13;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> 
          getTlsEnabledFieldBuilder() {
        if (tlsEnabledBuilder_ == null) {
          tlsEnabledBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>(
                  getTlsEnabled(),
                  getParentForChildren(),
                  isClean());
          tlsEnabled_ = null;
        }
        return tlsEnabledBuilder_;
      }
      private boolean deletionProtection_ ;
      /**
       * 
       * Deletion Protection inhibits deletion of the cluster
       *  
       *
       * bool deletion_protection = 14;
       * @return The deletionProtection.
       */
      @java.lang.Override
      public boolean getDeletionProtection() {
        return deletionProtection_;
      }
      /**
       * 
       * Deletion Protection inhibits deletion of the cluster
       *  
       *
       * bool deletion_protection = 14;
       * @param value The deletionProtection to set.
       * @return This builder for chaining.
       */
      public Builder setDeletionProtection(boolean value) {
        
        deletionProtection_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Deletion Protection inhibits deletion of the cluster
       *  
       *
       * bool deletion_protection = 14;
       * @return This builder for chaining.
       */
      public Builder clearDeletionProtection() {
        
        deletionProtection_ = false;
        onChanged();
        return this;
      }
      private int persistenceMode_ = 0;
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 15;
       * @return The enum numeric value on the wire for persistenceMode.
       */
      @java.lang.Override public int getPersistenceModeValue() {
        return persistenceMode_;
      }
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 15;
       * @param value The enum numeric value on the wire for persistenceMode to set.
       * @return This builder for chaining.
       */
      public Builder setPersistenceModeValue(int value) {
        
        persistenceMode_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 15;
       * @return The persistenceMode.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode getPersistenceMode() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode result = yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.valueOf(persistenceMode_);
        return result == null ? yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.UNRECOGNIZED : result;
      }
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 15;
       * @param value The persistenceMode to set.
       * @return This builder for chaining.
       */
      public Builder setPersistenceMode(yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        persistenceMode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 15;
       * @return This builder for chaining.
       */
      public Builder clearPersistenceMode() {
        
        persistenceMode_ = 0;
        onChanged();
        return this;
      }
      private boolean announceHostnames_ ;
      /**
       * 
       * Enable FQDN instead of ip
       *  
       *
       * bool announce_hostnames = 16;
       * @return The announceHostnames.
       */
      @java.lang.Override
      public boolean getAnnounceHostnames() {
        return announceHostnames_;
      }
      /**
       * 
       * Enable FQDN instead of ip
       *  
       *
       * bool announce_hostnames = 16;
       * @param value The announceHostnames to set.
       * @return This builder for chaining.
       */
      public Builder setAnnounceHostnames(boolean value) {
        
        announceHostnames_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Enable FQDN instead of ip
       *  
       *
       * bool announce_hostnames = 16;
       * @return This builder for chaining.
       */
      public Builder clearAnnounceHostnames() {
        
        announceHostnames_ = false;
        onChanged();
        return this;
      }
      @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.CreateClusterRequest)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.CreateClusterRequest)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CreateClusterRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CreateClusterRequest(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.ClusterServiceOuterClass.CreateClusterRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface CreateClusterMetadataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.CreateClusterMetadata)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster that is being created.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster that is being created.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.CreateClusterMetadata}
   */
  public static final class CreateClusterMetadata extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.CreateClusterMetadata)
      CreateClusterMetadataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CreateClusterMetadata.newBuilder() to construct.
    private CreateClusterMetadata(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private CreateClusterMetadata() {
      clusterId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CreateClusterMetadata();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private CreateClusterMetadata(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_CreateClusterMetadata_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_CreateClusterMetadata_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster that is being created.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster that is being created.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      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.ClusterServiceOuterClass.CreateClusterMetadata)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata 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.ClusterServiceOuterClass.CreateClusterMetadata parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata 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.ClusterServiceOuterClass.CreateClusterMetadata parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata 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.ClusterServiceOuterClass.CreateClusterMetadata 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.ClusterServiceOuterClass.CreateClusterMetadata 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.ClusterServiceOuterClass.CreateClusterMetadata 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.ClusterServiceOuterClass.CreateClusterMetadata 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.ClusterServiceOuterClass.CreateClusterMetadata 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.ClusterServiceOuterClass.CreateClusterMetadata 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.ClusterServiceOuterClass.CreateClusterMetadata 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.CreateClusterMetadata}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.CreateClusterMetadata)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_CreateClusterMetadata_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_CreateClusterMetadata_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata.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();
        clusterId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_CreateClusterMetadata_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata(this);
        result.clusterId_ = clusterId_;
        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.ClusterServiceOuterClass.CreateClusterMetadata) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        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.ClusterServiceOuterClass.CreateClusterMetadata parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster that is being created.
       *  
       *
       * string cluster_id = 1;
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster that is being created.
       *  
       *
       * string cluster_id = 1;
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster that is being created.
       *  
       *
       * string cluster_id = 1;
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster that is being created.
       *  
       *
       * string cluster_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster that is being created.
       *  
       *
       * string cluster_id = 1;
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      @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.CreateClusterMetadata)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.CreateClusterMetadata)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.CreateClusterMetadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CreateClusterMetadata parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CreateClusterMetadata(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.ClusterServiceOuterClass.CreateClusterMetadata getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface UpdateClusterRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.UpdateClusterRequest)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster to update.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster to update.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
    /**
     * 
     * Field mask that specifies which fields of the Redis cluster should be updated.
     *  
     *
     * .google.protobuf.FieldMask update_mask = 2;
     * @return Whether the updateMask field is set.
     */
    boolean hasUpdateMask();
    /**
     * 
     * Field mask that specifies which fields of the Redis cluster should be updated.
     *  
     *
     * .google.protobuf.FieldMask update_mask = 2;
     * @return The updateMask.
     */
    com.google.protobuf.FieldMask getUpdateMask();
    /**
     * 
     * Field mask that specifies which fields of the Redis cluster should be updated.
     *  
     *
     * .google.protobuf.FieldMask update_mask = 2;
     */
    com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder();
    /**
     * 
     * New description of the Redis cluster.
     *  
     *
     * string description = 3 [(.yandex.cloud.length) = "<=256"];
     * @return The description.
     */
    java.lang.String getDescription();
    /**
     * 
     * New description of the Redis cluster.
     *  
     *
     * string description = 3 [(.yandex.cloud.length) = "<=256"];
     * @return The bytes for description.
     */
    com.google.protobuf.ByteString
        getDescriptionBytes();
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     * The new set of labels will completely replace the old ones. To add a label, request the current
     * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    int getLabelsCount();
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     * The new set of labels will completely replace the old ones. To add a label, request the current
     * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    boolean containsLabels(
        java.lang.String key);
    /**
     * Use {@link #getLabelsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map
    getLabels();
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     * The new set of labels will completely replace the old ones. To add a label, request the current
     * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    java.util.Map
    getLabelsMap();
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     * The new set of labels will completely replace the old ones. To add a label, request the current
     * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    java.lang.String getLabelsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     * The new set of labels will completely replace the old ones. To add a label, request the current
     * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    java.lang.String getLabelsOrThrow(
        java.lang.String key);
    /**
     * 
     * New configuration and resources for hosts in the cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
     * @return Whether the configSpec field is set.
     */
    boolean hasConfigSpec();
    /**
     * 
     * New configuration and resources for hosts in the cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
     * @return The configSpec.
     */
    yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec getConfigSpec();
    /**
     * 
     * New configuration and resources for hosts in the cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
     */
    yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder getConfigSpecOrBuilder();
    /**
     * 
     * New name for the cluster.
     *  
     *
     * string name = 6 [(.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
     * @return The name.
     */
    java.lang.String getName();
    /**
     * 
     * New name for the cluster.
     *  
     *
     * string name = 6 [(.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();
    /**
     * 
     * New maintenance window settings for the cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
     * @return Whether the maintenanceWindow field is set.
     */
    boolean hasMaintenanceWindow();
    /**
     * 
     * New maintenance window settings for the cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
     * @return The maintenanceWindow.
     */
    yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow getMaintenanceWindow();
    /**
     * 
     * New maintenance window settings for the cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
     */
    yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindowOrBuilder getMaintenanceWindowOrBuilder();
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 8;
     * @return A list containing the securityGroupIds.
     */
    java.util.List
        getSecurityGroupIdsList();
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 8;
     * @return The count of securityGroupIds.
     */
    int getSecurityGroupIdsCount();
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 8;
     * @param index The index of the element to return.
     * @return The securityGroupIds at the given index.
     */
    java.lang.String getSecurityGroupIds(int index);
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 8;
     * @param index The index of the value to return.
     * @return The bytes of the securityGroupIds at the given index.
     */
    com.google.protobuf.ByteString
        getSecurityGroupIdsBytes(int index);
    /**
     * 
     * Deletion Protection inhibits deletion of the cluster
     *  
     *
     * bool deletion_protection = 9;
     * @return The deletionProtection.
     */
    boolean getDeletionProtection();
    /**
     * 
     * Persistence mode
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 10;
     * @return The enum numeric value on the wire for persistenceMode.
     */
    int getPersistenceModeValue();
    /**
     * 
     * Persistence mode
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 10;
     * @return The persistenceMode.
     */
    yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode getPersistenceMode();
    /**
     * 
     * Enable FQDN instead of ip
     *  
     *
     * bool announce_hostnames = 12;
     * @return The announceHostnames.
     */
    boolean getAnnounceHostnames();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.UpdateClusterRequest}
   */
  public static final class UpdateClusterRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.UpdateClusterRequest)
      UpdateClusterRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use UpdateClusterRequest.newBuilder() to construct.
    private UpdateClusterRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private UpdateClusterRequest() {
      clusterId_ = "";
      description_ = "";
      name_ = "";
      securityGroupIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      persistenceMode_ = 0;
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new UpdateClusterRequest();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private UpdateClusterRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              break;
            }
            case 18: {
              com.google.protobuf.FieldMask.Builder subBuilder = null;
              if (updateMask_ != null) {
                subBuilder = updateMask_.toBuilder();
              }
              updateMask_ = input.readMessage(com.google.protobuf.FieldMask.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateMask_);
                updateMask_ = subBuilder.buildPartial();
              }
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              description_ = s;
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                labels_ = com.google.protobuf.MapField.newMapField(
                    LabelsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry
              labels__ = input.readMessage(
                  LabelsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              labels_.getMutableMap().put(
                  labels__.getKey(), labels__.getValue());
              break;
            }
            case 42: {
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder subBuilder = null;
              if (configSpec_ != null) {
                subBuilder = configSpec_.toBuilder();
              }
              configSpec_ = input.readMessage(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(configSpec_);
                configSpec_ = subBuilder.buildPartial();
              }
              break;
            }
            case 50: {
              java.lang.String s = input.readStringRequireUtf8();
              name_ = s;
              break;
            }
            case 58: {
              yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow.Builder subBuilder = null;
              if (maintenanceWindow_ != null) {
                subBuilder = maintenanceWindow_.toBuilder();
              }
              maintenanceWindow_ = input.readMessage(yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(maintenanceWindow_);
                maintenanceWindow_ = subBuilder.buildPartial();
              }
              break;
            }
            case 66: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                securityGroupIds_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              securityGroupIds_.add(s);
              break;
            }
            case 72: {
              deletionProtection_ = input.readBool();
              break;
            }
            case 80: {
              int rawValue = input.readEnum();
              persistenceMode_ = rawValue;
              break;
            }
            case 96: {
              announceHostnames_ = input.readBool();
              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 {
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          securityGroupIds_ = securityGroupIds_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterRequest_descriptor;
    }
    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 4:
          return internalGetLabels();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster to update.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster to update.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int UPDATE_MASK_FIELD_NUMBER = 2;
    private com.google.protobuf.FieldMask updateMask_;
    /**
     * 
     * Field mask that specifies which fields of the Redis cluster should be updated.
     *  
     *
     * .google.protobuf.FieldMask update_mask = 2;
     * @return Whether the updateMask field is set.
     */
    @java.lang.Override
    public boolean hasUpdateMask() {
      return updateMask_ != null;
    }
    /**
     * 
     * Field mask that specifies which fields of the Redis cluster should be updated.
     *  
     *
     * .google.protobuf.FieldMask update_mask = 2;
     * @return The updateMask.
     */
    @java.lang.Override
    public com.google.protobuf.FieldMask getUpdateMask() {
      return updateMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : updateMask_;
    }
    /**
     * 
     * Field mask that specifies which fields of the Redis cluster should be updated.
     *  
     *
     * .google.protobuf.FieldMask update_mask = 2;
     */
    @java.lang.Override
    public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() {
      return getUpdateMask();
    }
    public static final int DESCRIPTION_FIELD_NUMBER = 3;
    private volatile java.lang.Object description_;
    /**
     * 
     * New description of the Redis cluster.
     *  
     *
     * string description = 3 [(.yandex.cloud.length) = "<=256"];
     * @return The description.
     */
    @java.lang.Override
    public java.lang.String getDescription() {
      java.lang.Object ref = description_;
      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();
        description_ = s;
        return s;
      }
    }
    /**
     * 
     * New description of the Redis cluster.
     *  
     *
     * string description = 3 [(.yandex.cloud.length) = "<=256"];
     * @return The bytes for description.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDescriptionBytes() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        description_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int LABELS_FIELD_NUMBER = 4;
    private static final class LabelsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .newDefaultInstance(
                  yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterRequest_LabelsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> labels_;
    private com.google.protobuf.MapField
    internalGetLabels() {
      if (labels_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            LabelsDefaultEntryHolder.defaultEntry);
      }
      return labels_;
    }
    public int getLabelsCount() {
      return internalGetLabels().getMap().size();
    }
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     * The new set of labels will completely replace the old ones. To add a label, request the current
     * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    @java.lang.Override
    public boolean containsLabels(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetLabels().getMap().containsKey(key);
    }
    /**
     * Use {@link #getLabelsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map getLabels() {
      return getLabelsMap();
    }
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     * The new set of labels will completely replace the old ones. To add a label, request the current
     * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    @java.lang.Override
    public java.util.Map getLabelsMap() {
      return internalGetLabels().getMap();
    }
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     * The new set of labels will completely replace the old ones. To add a label, request the current
     * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    @java.lang.Override
    public java.lang.String getLabelsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetLabels().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     * The new set of labels will completely replace the old ones. To add a label, request the current
     * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    @java.lang.Override
    public java.lang.String getLabelsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetLabels().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }
    public static final int CONFIG_SPEC_FIELD_NUMBER = 5;
    private yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec configSpec_;
    /**
     * 
     * New configuration and resources for hosts in the cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
     * @return Whether the configSpec field is set.
     */
    @java.lang.Override
    public boolean hasConfigSpec() {
      return configSpec_ != null;
    }
    /**
     * 
     * New configuration and resources for hosts in the cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
     * @return The configSpec.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec getConfigSpec() {
      return configSpec_ == null ? yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.getDefaultInstance() : configSpec_;
    }
    /**
     * 
     * New configuration and resources for hosts in the cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder getConfigSpecOrBuilder() {
      return getConfigSpec();
    }
    public static final int NAME_FIELD_NUMBER = 6;
    private volatile java.lang.Object name_;
    /**
     * 
     * New name for the cluster.
     *  
     *
     * string name = 6 [(.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      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();
        name_ = s;
        return s;
      }
    }
    /**
     * 
     * New name for the cluster.
     *  
     *
     * string name = 6 [(.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int MAINTENANCE_WINDOW_FIELD_NUMBER = 7;
    private yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow maintenanceWindow_;
    /**
     * 
     * New maintenance window settings for the cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
     * @return Whether the maintenanceWindow field is set.
     */
    @java.lang.Override
    public boolean hasMaintenanceWindow() {
      return maintenanceWindow_ != null;
    }
    /**
     * 
     * New maintenance window settings for the cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
     * @return The maintenanceWindow.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow getMaintenanceWindow() {
      return maintenanceWindow_ == null ? yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow.getDefaultInstance() : maintenanceWindow_;
    }
    /**
     * 
     * New maintenance window settings for the cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindowOrBuilder getMaintenanceWindowOrBuilder() {
      return getMaintenanceWindow();
    }
    public static final int SECURITY_GROUP_IDS_FIELD_NUMBER = 8;
    private com.google.protobuf.LazyStringList securityGroupIds_;
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 8;
     * @return A list containing the securityGroupIds.
     */
    public com.google.protobuf.ProtocolStringList
        getSecurityGroupIdsList() {
      return securityGroupIds_;
    }
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 8;
     * @return The count of securityGroupIds.
     */
    public int getSecurityGroupIdsCount() {
      return securityGroupIds_.size();
    }
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 8;
     * @param index The index of the element to return.
     * @return The securityGroupIds at the given index.
     */
    public java.lang.String getSecurityGroupIds(int index) {
      return securityGroupIds_.get(index);
    }
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 8;
     * @param index The index of the value to return.
     * @return The bytes of the securityGroupIds at the given index.
     */
    public com.google.protobuf.ByteString
        getSecurityGroupIdsBytes(int index) {
      return securityGroupIds_.getByteString(index);
    }
    public static final int DELETION_PROTECTION_FIELD_NUMBER = 9;
    private boolean deletionProtection_;
    /**
     * 
     * Deletion Protection inhibits deletion of the cluster
     *  
     *
     * bool deletion_protection = 9;
     * @return The deletionProtection.
     */
    @java.lang.Override
    public boolean getDeletionProtection() {
      return deletionProtection_;
    }
    public static final int PERSISTENCE_MODE_FIELD_NUMBER = 10;
    private int persistenceMode_;
    /**
     * 
     * Persistence mode
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 10;
     * @return The enum numeric value on the wire for persistenceMode.
     */
    @java.lang.Override public int getPersistenceModeValue() {
      return persistenceMode_;
    }
    /**
     * 
     * Persistence mode
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 10;
     * @return The persistenceMode.
     */
    @java.lang.Override public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode getPersistenceMode() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode result = yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.valueOf(persistenceMode_);
      return result == null ? yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.UNRECOGNIZED : result;
    }
    public static final int ANNOUNCE_HOSTNAMES_FIELD_NUMBER = 12;
    private boolean announceHostnames_;
    /**
     * 
     * Enable FQDN instead of ip
     *  
     *
     * bool announce_hostnames = 12;
     * @return The announceHostnames.
     */
    @java.lang.Override
    public boolean getAnnounceHostnames() {
      return announceHostnames_;
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      if (updateMask_ != null) {
        output.writeMessage(2, getUpdateMask());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, description_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetLabels(),
          LabelsDefaultEntryHolder.defaultEntry,
          4);
      if (configSpec_ != null) {
        output.writeMessage(5, getConfigSpec());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, name_);
      }
      if (maintenanceWindow_ != null) {
        output.writeMessage(7, getMaintenanceWindow());
      }
      for (int i = 0; i < securityGroupIds_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, securityGroupIds_.getRaw(i));
      }
      if (deletionProtection_ != false) {
        output.writeBool(9, deletionProtection_);
      }
      if (persistenceMode_ != yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.ON.getNumber()) {
        output.writeEnum(10, persistenceMode_);
      }
      if (announceHostnames_ != false) {
        output.writeBool(12, announceHostnames_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      if (updateMask_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getUpdateMask());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, description_);
      }
      for (java.util.Map.Entry entry
           : internalGetLabels().getMap().entrySet()) {
        com.google.protobuf.MapEntry
        labels__ = LabelsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, labels__);
      }
      if (configSpec_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getConfigSpec());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, name_);
      }
      if (maintenanceWindow_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getMaintenanceWindow());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < securityGroupIds_.size(); i++) {
          dataSize += computeStringSizeNoTag(securityGroupIds_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getSecurityGroupIdsList().size();
      }
      if (deletionProtection_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(9, deletionProtection_);
      }
      if (persistenceMode_ != yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.ON.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(10, persistenceMode_);
      }
      if (announceHostnames_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(12, announceHostnames_);
      }
      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.ClusterServiceOuterClass.UpdateClusterRequest)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) return false;
      if (hasUpdateMask() != other.hasUpdateMask()) return false;
      if (hasUpdateMask()) {
        if (!getUpdateMask()
            .equals(other.getUpdateMask())) return false;
      }
      if (!getDescription()
          .equals(other.getDescription())) return false;
      if (!internalGetLabels().equals(
          other.internalGetLabels())) return false;
      if (hasConfigSpec() != other.hasConfigSpec()) return false;
      if (hasConfigSpec()) {
        if (!getConfigSpec()
            .equals(other.getConfigSpec())) return false;
      }
      if (!getName()
          .equals(other.getName())) return false;
      if (hasMaintenanceWindow() != other.hasMaintenanceWindow()) return false;
      if (hasMaintenanceWindow()) {
        if (!getMaintenanceWindow()
            .equals(other.getMaintenanceWindow())) return false;
      }
      if (!getSecurityGroupIdsList()
          .equals(other.getSecurityGroupIdsList())) return false;
      if (getDeletionProtection()
          != other.getDeletionProtection()) return false;
      if (persistenceMode_ != other.persistenceMode_) return false;
      if (getAnnounceHostnames()
          != other.getAnnounceHostnames()) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      if (hasUpdateMask()) {
        hash = (37 * hash) + UPDATE_MASK_FIELD_NUMBER;
        hash = (53 * hash) + getUpdateMask().hashCode();
      }
      hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
      hash = (53 * hash) + getDescription().hashCode();
      if (!internalGetLabels().getMap().isEmpty()) {
        hash = (37 * hash) + LABELS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetLabels().hashCode();
      }
      if (hasConfigSpec()) {
        hash = (37 * hash) + CONFIG_SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getConfigSpec().hashCode();
      }
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      if (hasMaintenanceWindow()) {
        hash = (37 * hash) + MAINTENANCE_WINDOW_FIELD_NUMBER;
        hash = (53 * hash) + getMaintenanceWindow().hashCode();
      }
      if (getSecurityGroupIdsCount() > 0) {
        hash = (37 * hash) + SECURITY_GROUP_IDS_FIELD_NUMBER;
        hash = (53 * hash) + getSecurityGroupIdsList().hashCode();
      }
      hash = (37 * hash) + DELETION_PROTECTION_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDeletionProtection());
      hash = (37 * hash) + PERSISTENCE_MODE_FIELD_NUMBER;
      hash = (53 * hash) + persistenceMode_;
      hash = (37 * hash) + ANNOUNCE_HOSTNAMES_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getAnnounceHostnames());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest 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.ClusterServiceOuterClass.UpdateClusterRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest 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.ClusterServiceOuterClass.UpdateClusterRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest 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.ClusterServiceOuterClass.UpdateClusterRequest 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.ClusterServiceOuterClass.UpdateClusterRequest 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.ClusterServiceOuterClass.UpdateClusterRequest 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.ClusterServiceOuterClass.UpdateClusterRequest 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.ClusterServiceOuterClass.UpdateClusterRequest 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.ClusterServiceOuterClass.UpdateClusterRequest 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.ClusterServiceOuterClass.UpdateClusterRequest 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.UpdateClusterRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.UpdateClusterRequest)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterRequest_descriptor;
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 4:
            return internalGetLabels();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 4:
            return internalGetMutableLabels();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest.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();
        clusterId_ = "";
        if (updateMaskBuilder_ == null) {
          updateMask_ = null;
        } else {
          updateMask_ = null;
          updateMaskBuilder_ = null;
        }
        description_ = "";
        internalGetMutableLabels().clear();
        if (configSpecBuilder_ == null) {
          configSpec_ = null;
        } else {
          configSpec_ = null;
          configSpecBuilder_ = null;
        }
        name_ = "";
        if (maintenanceWindowBuilder_ == null) {
          maintenanceWindow_ = null;
        } else {
          maintenanceWindow_ = null;
          maintenanceWindowBuilder_ = null;
        }
        securityGroupIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        deletionProtection_ = false;
        persistenceMode_ = 0;
        announceHostnames_ = false;
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterRequest_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest(this);
        int from_bitField0_ = bitField0_;
        result.clusterId_ = clusterId_;
        if (updateMaskBuilder_ == null) {
          result.updateMask_ = updateMask_;
        } else {
          result.updateMask_ = updateMaskBuilder_.build();
        }
        result.description_ = description_;
        result.labels_ = internalGetLabels();
        result.labels_.makeImmutable();
        if (configSpecBuilder_ == null) {
          result.configSpec_ = configSpec_;
        } else {
          result.configSpec_ = configSpecBuilder_.build();
        }
        result.name_ = name_;
        if (maintenanceWindowBuilder_ == null) {
          result.maintenanceWindow_ = maintenanceWindow_;
        } else {
          result.maintenanceWindow_ = maintenanceWindowBuilder_.build();
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          securityGroupIds_ = securityGroupIds_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.securityGroupIds_ = securityGroupIds_;
        result.deletionProtection_ = deletionProtection_;
        result.persistenceMode_ = persistenceMode_;
        result.announceHostnames_ = announceHostnames_;
        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.ClusterServiceOuterClass.UpdateClusterRequest) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        if (other.hasUpdateMask()) {
          mergeUpdateMask(other.getUpdateMask());
        }
        if (!other.getDescription().isEmpty()) {
          description_ = other.description_;
          onChanged();
        }
        internalGetMutableLabels().mergeFrom(
            other.internalGetLabels());
        if (other.hasConfigSpec()) {
          mergeConfigSpec(other.getConfigSpec());
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (other.hasMaintenanceWindow()) {
          mergeMaintenanceWindow(other.getMaintenanceWindow());
        }
        if (!other.securityGroupIds_.isEmpty()) {
          if (securityGroupIds_.isEmpty()) {
            securityGroupIds_ = other.securityGroupIds_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureSecurityGroupIdsIsMutable();
            securityGroupIds_.addAll(other.securityGroupIds_);
          }
          onChanged();
        }
        if (other.getDeletionProtection() != false) {
          setDeletionProtection(other.getDeletionProtection());
        }
        if (other.persistenceMode_ != 0) {
          setPersistenceModeValue(other.getPersistenceModeValue());
        }
        if (other.getAnnounceHostnames() != false) {
          setAnnounceHostnames(other.getAnnounceHostnames());
        }
        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.ClusterServiceOuterClass.UpdateClusterRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster to update.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to update.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to update.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to update.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to update.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      private com.google.protobuf.FieldMask updateMask_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.FieldMask, com.google.protobuf.FieldMask.Builder, com.google.protobuf.FieldMaskOrBuilder> updateMaskBuilder_;
      /**
       * 
       * Field mask that specifies which fields of the Redis cluster should be updated.
       *  
       *
       * .google.protobuf.FieldMask update_mask = 2;
       * @return Whether the updateMask field is set.
       */
      public boolean hasUpdateMask() {
        return updateMaskBuilder_ != null || updateMask_ != null;
      }
      /**
       * 
       * Field mask that specifies which fields of the Redis cluster should be updated.
       *  
       *
       * .google.protobuf.FieldMask update_mask = 2;
       * @return The updateMask.
       */
      public com.google.protobuf.FieldMask getUpdateMask() {
        if (updateMaskBuilder_ == null) {
          return updateMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : updateMask_;
        } else {
          return updateMaskBuilder_.getMessage();
        }
      }
      /**
       * 
       * Field mask that specifies which fields of the Redis cluster should be updated.
       *  
       *
       * .google.protobuf.FieldMask update_mask = 2;
       */
      public Builder setUpdateMask(com.google.protobuf.FieldMask value) {
        if (updateMaskBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateMask_ = value;
          onChanged();
        } else {
          updateMaskBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Field mask that specifies which fields of the Redis cluster should be updated.
       *  
       *
       * .google.protobuf.FieldMask update_mask = 2;
       */
      public Builder setUpdateMask(
          com.google.protobuf.FieldMask.Builder builderForValue) {
        if (updateMaskBuilder_ == null) {
          updateMask_ = builderForValue.build();
          onChanged();
        } else {
          updateMaskBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Field mask that specifies which fields of the Redis cluster should be updated.
       *  
       *
       * .google.protobuf.FieldMask update_mask = 2;
       */
      public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
        if (updateMaskBuilder_ == null) {
          if (updateMask_ != null) {
            updateMask_ =
              com.google.protobuf.FieldMask.newBuilder(updateMask_).mergeFrom(value).buildPartial();
          } else {
            updateMask_ = value;
          }
          onChanged();
        } else {
          updateMaskBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Field mask that specifies which fields of the Redis cluster should be updated.
       *  
       *
       * .google.protobuf.FieldMask update_mask = 2;
       */
      public Builder clearUpdateMask() {
        if (updateMaskBuilder_ == null) {
          updateMask_ = null;
          onChanged();
        } else {
          updateMask_ = null;
          updateMaskBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Field mask that specifies which fields of the Redis cluster should be updated.
       *  
       *
       * .google.protobuf.FieldMask update_mask = 2;
       */
      public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() {
        
        onChanged();
        return getUpdateMaskFieldBuilder().getBuilder();
      }
      /**
       * 
       * Field mask that specifies which fields of the Redis cluster should be updated.
       *  
       *
       * .google.protobuf.FieldMask update_mask = 2;
       */
      public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() {
        if (updateMaskBuilder_ != null) {
          return updateMaskBuilder_.getMessageOrBuilder();
        } else {
          return updateMask_ == null ?
              com.google.protobuf.FieldMask.getDefaultInstance() : updateMask_;
        }
      }
      /**
       * 
       * Field mask that specifies which fields of the Redis cluster should be updated.
       *  
       *
       * .google.protobuf.FieldMask update_mask = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.FieldMask, com.google.protobuf.FieldMask.Builder, com.google.protobuf.FieldMaskOrBuilder> 
          getUpdateMaskFieldBuilder() {
        if (updateMaskBuilder_ == null) {
          updateMaskBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.FieldMask, com.google.protobuf.FieldMask.Builder, com.google.protobuf.FieldMaskOrBuilder>(
                  getUpdateMask(),
                  getParentForChildren(),
                  isClean());
          updateMask_ = null;
        }
        return updateMaskBuilder_;
      }
      private java.lang.Object description_ = "";
      /**
       * 
       * New description of the Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @return The description.
       */
      public java.lang.String getDescription() {
        java.lang.Object ref = description_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          description_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * New description of the Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @return The bytes for description.
       */
      public com.google.protobuf.ByteString
          getDescriptionBytes() {
        java.lang.Object ref = description_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          description_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * New description of the Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @param value The description to set.
       * @return This builder for chaining.
       */
      public Builder setDescription(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        description_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * New description of the Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @return This builder for chaining.
       */
      public Builder clearDescription() {
        
        description_ = getDefaultInstance().getDescription();
        onChanged();
        return this;
      }
      /**
       * 
       * New description of the Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @param value The bytes for description to set.
       * @return This builder for chaining.
       */
      public Builder setDescriptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        description_ = value;
        onChanged();
        return this;
      }
      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> labels_;
      private com.google.protobuf.MapField
      internalGetLabels() {
        if (labels_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              LabelsDefaultEntryHolder.defaultEntry);
        }
        return labels_;
      }
      private com.google.protobuf.MapField
      internalGetMutableLabels() {
        onChanged();;
        if (labels_ == null) {
          labels_ = com.google.protobuf.MapField.newMapField(
              LabelsDefaultEntryHolder.defaultEntry);
        }
        if (!labels_.isMutable()) {
          labels_ = labels_.copy();
        }
        return labels_;
      }
      public int getLabelsCount() {
        return internalGetLabels().getMap().size();
      }
      /**
       * 
       * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       * The new set of labels will completely replace the old ones. To add a label, request the current
       * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      @java.lang.Override
      public boolean containsLabels(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetLabels().getMap().containsKey(key);
      }
      /**
       * Use {@link #getLabelsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map getLabels() {
        return getLabelsMap();
      }
      /**
       * 
       * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       * The new set of labels will completely replace the old ones. To add a label, request the current
       * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      @java.lang.Override
      public java.util.Map getLabelsMap() {
        return internalGetLabels().getMap();
      }
      /**
       * 
       * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       * The new set of labels will completely replace the old ones. To add a label, request the current
       * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      @java.lang.Override
      public java.lang.String getLabelsOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map =
            internalGetLabels().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * 
       * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       * The new set of labels will completely replace the old ones. To add a label, request the current
       * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      @java.lang.Override
      public java.lang.String getLabelsOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map =
            internalGetLabels().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      public Builder clearLabels() {
        internalGetMutableLabels().getMutableMap()
            .clear();
        return this;
      }
      /**
       * 
       * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       * The new set of labels will completely replace the old ones. To add a label, request the current
       * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      public Builder removeLabels(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableLabels().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map
      getMutableLabels() {
        return internalGetMutableLabels().getMutableMap();
      }
      /**
       * 
       * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       * The new set of labels will completely replace the old ones. To add a label, request the current
       * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      public Builder putLabels(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) {
  throw new NullPointerException("map value");
}
        internalGetMutableLabels().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * 
       * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       * The new set of labels will completely replace the old ones. To add a label, request the current
       * set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      public Builder putAllLabels(
          java.util.Map values) {
        internalGetMutableLabels().getMutableMap()
            .putAll(values);
        return this;
      }
      private yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec configSpec_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder> configSpecBuilder_;
      /**
       * 
       * New configuration and resources for hosts in the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
       * @return Whether the configSpec field is set.
       */
      public boolean hasConfigSpec() {
        return configSpecBuilder_ != null || configSpec_ != null;
      }
      /**
       * 
       * New configuration and resources for hosts in the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
       * @return The configSpec.
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec getConfigSpec() {
        if (configSpecBuilder_ == null) {
          return configSpec_ == null ? yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.getDefaultInstance() : configSpec_;
        } else {
          return configSpecBuilder_.getMessage();
        }
      }
      /**
       * 
       * New configuration and resources for hosts in the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
       */
      public Builder setConfigSpec(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec value) {
        if (configSpecBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          configSpec_ = value;
          onChanged();
        } else {
          configSpecBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * New configuration and resources for hosts in the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
       */
      public Builder setConfigSpec(
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder builderForValue) {
        if (configSpecBuilder_ == null) {
          configSpec_ = builderForValue.build();
          onChanged();
        } else {
          configSpecBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * New configuration and resources for hosts in the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
       */
      public Builder mergeConfigSpec(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec value) {
        if (configSpecBuilder_ == null) {
          if (configSpec_ != null) {
            configSpec_ =
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.newBuilder(configSpec_).mergeFrom(value).buildPartial();
          } else {
            configSpec_ = value;
          }
          onChanged();
        } else {
          configSpecBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * New configuration and resources for hosts in the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
       */
      public Builder clearConfigSpec() {
        if (configSpecBuilder_ == null) {
          configSpec_ = null;
          onChanged();
        } else {
          configSpec_ = null;
          configSpecBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * New configuration and resources for hosts in the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder getConfigSpecBuilder() {
        
        onChanged();
        return getConfigSpecFieldBuilder().getBuilder();
      }
      /**
       * 
       * New configuration and resources for hosts in the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder getConfigSpecOrBuilder() {
        if (configSpecBuilder_ != null) {
          return configSpecBuilder_.getMessageOrBuilder();
        } else {
          return configSpec_ == null ?
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.getDefaultInstance() : configSpec_;
        }
      }
      /**
       * 
       * New configuration and resources for hosts in the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 5;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder> 
          getConfigSpecFieldBuilder() {
        if (configSpecBuilder_ == null) {
          configSpecBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder>(
                  getConfigSpec(),
                  getParentForChildren(),
                  isClean());
          configSpec_ = null;
        }
        return configSpecBuilder_;
      }
      private java.lang.Object name_ = "";
      /**
       * 
       * New name for the cluster.
       *  
       *
       * string name = 6 [(.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * New name for the cluster.
       *  
       *
       * string name = 6 [(.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * New name for the cluster.
       *  
       *
       * string name = 6 [(.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * New name for the cluster.
       *  
       *
       * string name = 6 [(.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * 
       * New name for the cluster.
       *  
       *
       * string name = 6 [(.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        name_ = value;
        onChanged();
        return this;
      }
      private yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow maintenanceWindow_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow, yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow.Builder, yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindowOrBuilder> maintenanceWindowBuilder_;
      /**
       * 
       * New maintenance window settings for the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
       * @return Whether the maintenanceWindow field is set.
       */
      public boolean hasMaintenanceWindow() {
        return maintenanceWindowBuilder_ != null || maintenanceWindow_ != null;
      }
      /**
       * 
       * New maintenance window settings for the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
       * @return The maintenanceWindow.
       */
      public yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow getMaintenanceWindow() {
        if (maintenanceWindowBuilder_ == null) {
          return maintenanceWindow_ == null ? yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow.getDefaultInstance() : maintenanceWindow_;
        } else {
          return maintenanceWindowBuilder_.getMessage();
        }
      }
      /**
       * 
       * New maintenance window settings for the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
       */
      public Builder setMaintenanceWindow(yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow value) {
        if (maintenanceWindowBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          maintenanceWindow_ = value;
          onChanged();
        } else {
          maintenanceWindowBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * New maintenance window settings for the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
       */
      public Builder setMaintenanceWindow(
          yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow.Builder builderForValue) {
        if (maintenanceWindowBuilder_ == null) {
          maintenanceWindow_ = builderForValue.build();
          onChanged();
        } else {
          maintenanceWindowBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * New maintenance window settings for the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
       */
      public Builder mergeMaintenanceWindow(yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow value) {
        if (maintenanceWindowBuilder_ == null) {
          if (maintenanceWindow_ != null) {
            maintenanceWindow_ =
              yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow.newBuilder(maintenanceWindow_).mergeFrom(value).buildPartial();
          } else {
            maintenanceWindow_ = value;
          }
          onChanged();
        } else {
          maintenanceWindowBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * New maintenance window settings for the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
       */
      public Builder clearMaintenanceWindow() {
        if (maintenanceWindowBuilder_ == null) {
          maintenanceWindow_ = null;
          onChanged();
        } else {
          maintenanceWindow_ = null;
          maintenanceWindowBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * New maintenance window settings for the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
       */
      public yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow.Builder getMaintenanceWindowBuilder() {
        
        onChanged();
        return getMaintenanceWindowFieldBuilder().getBuilder();
      }
      /**
       * 
       * New maintenance window settings for the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
       */
      public yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindowOrBuilder getMaintenanceWindowOrBuilder() {
        if (maintenanceWindowBuilder_ != null) {
          return maintenanceWindowBuilder_.getMessageOrBuilder();
        } else {
          return maintenanceWindow_ == null ?
              yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow.getDefaultInstance() : maintenanceWindow_;
        }
      }
      /**
       * 
       * New maintenance window settings for the cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.MaintenanceWindow maintenance_window = 7;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow, yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow.Builder, yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindowOrBuilder> 
          getMaintenanceWindowFieldBuilder() {
        if (maintenanceWindowBuilder_ == null) {
          maintenanceWindowBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow, yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindow.Builder, yandex.cloud.api.mdb.redis.v1.Maintenance.MaintenanceWindowOrBuilder>(
                  getMaintenanceWindow(),
                  getParentForChildren(),
                  isClean());
          maintenanceWindow_ = null;
        }
        return maintenanceWindowBuilder_;
      }
      private com.google.protobuf.LazyStringList securityGroupIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureSecurityGroupIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          securityGroupIds_ = new com.google.protobuf.LazyStringArrayList(securityGroupIds_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 8;
       * @return A list containing the securityGroupIds.
       */
      public com.google.protobuf.ProtocolStringList
          getSecurityGroupIdsList() {
        return securityGroupIds_.getUnmodifiableView();
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 8;
       * @return The count of securityGroupIds.
       */
      public int getSecurityGroupIdsCount() {
        return securityGroupIds_.size();
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 8;
       * @param index The index of the element to return.
       * @return The securityGroupIds at the given index.
       */
      public java.lang.String getSecurityGroupIds(int index) {
        return securityGroupIds_.get(index);
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 8;
       * @param index The index of the value to return.
       * @return The bytes of the securityGroupIds at the given index.
       */
      public com.google.protobuf.ByteString
          getSecurityGroupIdsBytes(int index) {
        return securityGroupIds_.getByteString(index);
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 8;
       * @param index The index to set the value at.
       * @param value The securityGroupIds to set.
       * @return This builder for chaining.
       */
      public Builder setSecurityGroupIds(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureSecurityGroupIdsIsMutable();
        securityGroupIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 8;
       * @param value The securityGroupIds to add.
       * @return This builder for chaining.
       */
      public Builder addSecurityGroupIds(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureSecurityGroupIdsIsMutable();
        securityGroupIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 8;
       * @param values The securityGroupIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllSecurityGroupIds(
          java.lang.Iterable values) {
        ensureSecurityGroupIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, securityGroupIds_);
        onChanged();
        return this;
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 8;
       * @return This builder for chaining.
       */
      public Builder clearSecurityGroupIds() {
        securityGroupIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 8;
       * @param value The bytes of the securityGroupIds to add.
       * @return This builder for chaining.
       */
      public Builder addSecurityGroupIdsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureSecurityGroupIdsIsMutable();
        securityGroupIds_.add(value);
        onChanged();
        return this;
      }
      private boolean deletionProtection_ ;
      /**
       * 
       * Deletion Protection inhibits deletion of the cluster
       *  
       *
       * bool deletion_protection = 9;
       * @return The deletionProtection.
       */
      @java.lang.Override
      public boolean getDeletionProtection() {
        return deletionProtection_;
      }
      /**
       * 
       * Deletion Protection inhibits deletion of the cluster
       *  
       *
       * bool deletion_protection = 9;
       * @param value The deletionProtection to set.
       * @return This builder for chaining.
       */
      public Builder setDeletionProtection(boolean value) {
        
        deletionProtection_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Deletion Protection inhibits deletion of the cluster
       *  
       *
       * bool deletion_protection = 9;
       * @return This builder for chaining.
       */
      public Builder clearDeletionProtection() {
        
        deletionProtection_ = false;
        onChanged();
        return this;
      }
      private int persistenceMode_ = 0;
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 10;
       * @return The enum numeric value on the wire for persistenceMode.
       */
      @java.lang.Override public int getPersistenceModeValue() {
        return persistenceMode_;
      }
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 10;
       * @param value The enum numeric value on the wire for persistenceMode to set.
       * @return This builder for chaining.
       */
      public Builder setPersistenceModeValue(int value) {
        
        persistenceMode_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 10;
       * @return The persistenceMode.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode getPersistenceMode() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode result = yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.valueOf(persistenceMode_);
        return result == null ? yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.UNRECOGNIZED : result;
      }
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 10;
       * @param value The persistenceMode to set.
       * @return This builder for chaining.
       */
      public Builder setPersistenceMode(yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        persistenceMode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 10;
       * @return This builder for chaining.
       */
      public Builder clearPersistenceMode() {
        
        persistenceMode_ = 0;
        onChanged();
        return this;
      }
      private boolean announceHostnames_ ;
      /**
       * 
       * Enable FQDN instead of ip
       *  
       *
       * bool announce_hostnames = 12;
       * @return The announceHostnames.
       */
      @java.lang.Override
      public boolean getAnnounceHostnames() {
        return announceHostnames_;
      }
      /**
       * 
       * Enable FQDN instead of ip
       *  
       *
       * bool announce_hostnames = 12;
       * @param value The announceHostnames to set.
       * @return This builder for chaining.
       */
      public Builder setAnnounceHostnames(boolean value) {
        
        announceHostnames_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Enable FQDN instead of ip
       *  
       *
       * bool announce_hostnames = 12;
       * @return This builder for chaining.
       */
      public Builder clearAnnounceHostnames() {
        
        announceHostnames_ = false;
        onChanged();
        return this;
      }
      @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.UpdateClusterRequest)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.UpdateClusterRequest)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public UpdateClusterRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new UpdateClusterRequest(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.ClusterServiceOuterClass.UpdateClusterRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface UpdateClusterMetadataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.UpdateClusterMetadata)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster that is being updated.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster that is being updated.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.UpdateClusterMetadata}
   */
  public static final class UpdateClusterMetadata extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.UpdateClusterMetadata)
      UpdateClusterMetadataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use UpdateClusterMetadata.newBuilder() to construct.
    private UpdateClusterMetadata(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private UpdateClusterMetadata() {
      clusterId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new UpdateClusterMetadata();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private UpdateClusterMetadata(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterMetadata_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterMetadata_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster that is being updated.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster that is being updated.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      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.ClusterServiceOuterClass.UpdateClusterMetadata)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata 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.ClusterServiceOuterClass.UpdateClusterMetadata parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata 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.ClusterServiceOuterClass.UpdateClusterMetadata parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata 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.ClusterServiceOuterClass.UpdateClusterMetadata 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.ClusterServiceOuterClass.UpdateClusterMetadata 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.ClusterServiceOuterClass.UpdateClusterMetadata 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.ClusterServiceOuterClass.UpdateClusterMetadata 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.ClusterServiceOuterClass.UpdateClusterMetadata 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.ClusterServiceOuterClass.UpdateClusterMetadata 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.ClusterServiceOuterClass.UpdateClusterMetadata 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.UpdateClusterMetadata}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.UpdateClusterMetadata)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterMetadata_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterMetadata_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata.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();
        clusterId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterMetadata_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata(this);
        result.clusterId_ = clusterId_;
        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.ClusterServiceOuterClass.UpdateClusterMetadata) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        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.ClusterServiceOuterClass.UpdateClusterMetadata parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster that is being updated.
       *  
       *
       * string cluster_id = 1;
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster that is being updated.
       *  
       *
       * string cluster_id = 1;
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster that is being updated.
       *  
       *
       * string cluster_id = 1;
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster that is being updated.
       *  
       *
       * string cluster_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster that is being updated.
       *  
       *
       * string cluster_id = 1;
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      @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.UpdateClusterMetadata)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.UpdateClusterMetadata)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterMetadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public UpdateClusterMetadata parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new UpdateClusterMetadata(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.ClusterServiceOuterClass.UpdateClusterMetadata getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface DeleteClusterRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.DeleteClusterRequest)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster to delete.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster to delete.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.DeleteClusterRequest}
   */
  public static final class DeleteClusterRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.DeleteClusterRequest)
      DeleteClusterRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteClusterRequest.newBuilder() to construct.
    private DeleteClusterRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private DeleteClusterRequest() {
      clusterId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DeleteClusterRequest();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DeleteClusterRequest(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_DeleteClusterRequest_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_DeleteClusterRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster to delete.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster to delete.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      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.ClusterServiceOuterClass.DeleteClusterRequest)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest 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.ClusterServiceOuterClass.DeleteClusterRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest 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.ClusterServiceOuterClass.DeleteClusterRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest 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.ClusterServiceOuterClass.DeleteClusterRequest 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.ClusterServiceOuterClass.DeleteClusterRequest 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.ClusterServiceOuterClass.DeleteClusterRequest 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.ClusterServiceOuterClass.DeleteClusterRequest 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.ClusterServiceOuterClass.DeleteClusterRequest 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.ClusterServiceOuterClass.DeleteClusterRequest 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.ClusterServiceOuterClass.DeleteClusterRequest 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.DeleteClusterRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.DeleteClusterRequest)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_DeleteClusterRequest_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_DeleteClusterRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest.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();
        clusterId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_DeleteClusterRequest_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest(this);
        result.clusterId_ = clusterId_;
        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.ClusterServiceOuterClass.DeleteClusterRequest) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        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.ClusterServiceOuterClass.DeleteClusterRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster to delete.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to delete.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to delete.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to delete.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to delete.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      @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.DeleteClusterRequest)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.DeleteClusterRequest)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public DeleteClusterRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new DeleteClusterRequest(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.ClusterServiceOuterClass.DeleteClusterRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface DeleteClusterMetadataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.DeleteClusterMetadata)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster that is being deleted.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster that is being deleted.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.DeleteClusterMetadata}
   */
  public static final class DeleteClusterMetadata extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.DeleteClusterMetadata)
      DeleteClusterMetadataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteClusterMetadata.newBuilder() to construct.
    private DeleteClusterMetadata(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private DeleteClusterMetadata() {
      clusterId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DeleteClusterMetadata();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DeleteClusterMetadata(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_DeleteClusterMetadata_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_DeleteClusterMetadata_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster that is being deleted.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster that is being deleted.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      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.ClusterServiceOuterClass.DeleteClusterMetadata)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata 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.ClusterServiceOuterClass.DeleteClusterMetadata parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata 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.ClusterServiceOuterClass.DeleteClusterMetadata parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata 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.ClusterServiceOuterClass.DeleteClusterMetadata 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.ClusterServiceOuterClass.DeleteClusterMetadata 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.ClusterServiceOuterClass.DeleteClusterMetadata 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.ClusterServiceOuterClass.DeleteClusterMetadata 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.ClusterServiceOuterClass.DeleteClusterMetadata 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.ClusterServiceOuterClass.DeleteClusterMetadata 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.ClusterServiceOuterClass.DeleteClusterMetadata 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.DeleteClusterMetadata}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.DeleteClusterMetadata)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_DeleteClusterMetadata_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_DeleteClusterMetadata_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata.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();
        clusterId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_DeleteClusterMetadata_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata(this);
        result.clusterId_ = clusterId_;
        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.ClusterServiceOuterClass.DeleteClusterMetadata) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        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.ClusterServiceOuterClass.DeleteClusterMetadata parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster that is being deleted.
       *  
       *
       * string cluster_id = 1;
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster that is being deleted.
       *  
       *
       * string cluster_id = 1;
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster that is being deleted.
       *  
       *
       * string cluster_id = 1;
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster that is being deleted.
       *  
       *
       * string cluster_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster that is being deleted.
       *  
       *
       * string cluster_id = 1;
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      @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.DeleteClusterMetadata)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.DeleteClusterMetadata)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.DeleteClusterMetadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public DeleteClusterMetadata parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new DeleteClusterMetadata(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.ClusterServiceOuterClass.DeleteClusterMetadata getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface StartClusterRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.StartClusterRequest)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster to start.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster to start.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.StartClusterRequest}
   */
  public static final class StartClusterRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.StartClusterRequest)
      StartClusterRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StartClusterRequest.newBuilder() to construct.
    private StartClusterRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private StartClusterRequest() {
      clusterId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new StartClusterRequest();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StartClusterRequest(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterRequest_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster to start.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster to start.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      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.ClusterServiceOuterClass.StartClusterRequest)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest 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.ClusterServiceOuterClass.StartClusterRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest 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.ClusterServiceOuterClass.StartClusterRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest 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.ClusterServiceOuterClass.StartClusterRequest 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.ClusterServiceOuterClass.StartClusterRequest 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.ClusterServiceOuterClass.StartClusterRequest 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.ClusterServiceOuterClass.StartClusterRequest 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.ClusterServiceOuterClass.StartClusterRequest 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.ClusterServiceOuterClass.StartClusterRequest 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.ClusterServiceOuterClass.StartClusterRequest 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.StartClusterRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.StartClusterRequest)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterRequest_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest.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();
        clusterId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterRequest_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest(this);
        result.clusterId_ = clusterId_;
        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.ClusterServiceOuterClass.StartClusterRequest) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        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.ClusterServiceOuterClass.StartClusterRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster to start.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to start.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to start.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to start.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to start.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      @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.StartClusterRequest)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.StartClusterRequest)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public StartClusterRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StartClusterRequest(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.ClusterServiceOuterClass.StartClusterRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface StartClusterMetadataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.StartClusterMetadata)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.StartClusterMetadata}
   */
  public static final class StartClusterMetadata extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.StartClusterMetadata)
      StartClusterMetadataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StartClusterMetadata.newBuilder() to construct.
    private StartClusterMetadata(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private StartClusterMetadata() {
      clusterId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new StartClusterMetadata();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StartClusterMetadata(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterMetadata_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterMetadata_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      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.ClusterServiceOuterClass.StartClusterMetadata)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata 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.ClusterServiceOuterClass.StartClusterMetadata parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata 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.ClusterServiceOuterClass.StartClusterMetadata parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata 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.ClusterServiceOuterClass.StartClusterMetadata 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.ClusterServiceOuterClass.StartClusterMetadata 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.ClusterServiceOuterClass.StartClusterMetadata 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.ClusterServiceOuterClass.StartClusterMetadata 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.ClusterServiceOuterClass.StartClusterMetadata 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.ClusterServiceOuterClass.StartClusterMetadata 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.ClusterServiceOuterClass.StartClusterMetadata 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.StartClusterMetadata}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.StartClusterMetadata)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterMetadata_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterMetadata_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata.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();
        clusterId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterMetadata_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata(this);
        result.clusterId_ = clusterId_;
        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.ClusterServiceOuterClass.StartClusterMetadata) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        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.ClusterServiceOuterClass.StartClusterMetadata parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      @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.StartClusterMetadata)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.StartClusterMetadata)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterMetadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public StartClusterMetadata parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StartClusterMetadata(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.ClusterServiceOuterClass.StartClusterMetadata getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface StopClusterRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.StopClusterRequest)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster to stop.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster to stop.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.StopClusterRequest}
   */
  public static final class StopClusterRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.StopClusterRequest)
      StopClusterRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StopClusterRequest.newBuilder() to construct.
    private StopClusterRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private StopClusterRequest() {
      clusterId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new StopClusterRequest();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StopClusterRequest(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StopClusterRequest_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StopClusterRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster to stop.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster to stop.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      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.ClusterServiceOuterClass.StopClusterRequest)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest 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.ClusterServiceOuterClass.StopClusterRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest 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.ClusterServiceOuterClass.StopClusterRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest 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.ClusterServiceOuterClass.StopClusterRequest 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.ClusterServiceOuterClass.StopClusterRequest 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.ClusterServiceOuterClass.StopClusterRequest 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.ClusterServiceOuterClass.StopClusterRequest 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.ClusterServiceOuterClass.StopClusterRequest 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.ClusterServiceOuterClass.StopClusterRequest 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.ClusterServiceOuterClass.StopClusterRequest 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.StopClusterRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.StopClusterRequest)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StopClusterRequest_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StopClusterRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest.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();
        clusterId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StopClusterRequest_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest(this);
        result.clusterId_ = clusterId_;
        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.ClusterServiceOuterClass.StopClusterRequest) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        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.ClusterServiceOuterClass.StopClusterRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster to stop.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to stop.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to stop.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to stop.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to stop.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      @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.StopClusterRequest)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.StopClusterRequest)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public StopClusterRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StopClusterRequest(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.ClusterServiceOuterClass.StopClusterRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface StopClusterMetadataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.StopClusterMetadata)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.StopClusterMetadata}
   */
  public static final class StopClusterMetadata extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.StopClusterMetadata)
      StopClusterMetadataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StopClusterMetadata.newBuilder() to construct.
    private StopClusterMetadata(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private StopClusterMetadata() {
      clusterId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new StopClusterMetadata();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StopClusterMetadata(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StopClusterMetadata_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StopClusterMetadata_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      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.ClusterServiceOuterClass.StopClusterMetadata)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata 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.ClusterServiceOuterClass.StopClusterMetadata parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata 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.ClusterServiceOuterClass.StopClusterMetadata parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata 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.ClusterServiceOuterClass.StopClusterMetadata 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.ClusterServiceOuterClass.StopClusterMetadata 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.ClusterServiceOuterClass.StopClusterMetadata 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.ClusterServiceOuterClass.StopClusterMetadata 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.ClusterServiceOuterClass.StopClusterMetadata 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.ClusterServiceOuterClass.StopClusterMetadata 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.ClusterServiceOuterClass.StopClusterMetadata 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.StopClusterMetadata}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.StopClusterMetadata)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StopClusterMetadata_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StopClusterMetadata_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata.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();
        clusterId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StopClusterMetadata_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata(this);
        result.clusterId_ = clusterId_;
        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.ClusterServiceOuterClass.StopClusterMetadata) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        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.ClusterServiceOuterClass.StopClusterMetadata parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      @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.StopClusterMetadata)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.StopClusterMetadata)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StopClusterMetadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public StopClusterMetadata parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StopClusterMetadata(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.ClusterServiceOuterClass.StopClusterMetadata getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface MoveClusterRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.MoveClusterRequest)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster to move.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster to move.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
    /**
     * 
     * ID of the destination folder.
     *  
     *
     * string destination_folder_id = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The destinationFolderId.
     */
    java.lang.String getDestinationFolderId();
    /**
     * 
     * ID of the destination folder.
     *  
     *
     * string destination_folder_id = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for destinationFolderId.
     */
    com.google.protobuf.ByteString
        getDestinationFolderIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.MoveClusterRequest}
   */
  public static final class MoveClusterRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.MoveClusterRequest)
      MoveClusterRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MoveClusterRequest.newBuilder() to construct.
    private MoveClusterRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private MoveClusterRequest() {
      clusterId_ = "";
      destinationFolderId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MoveClusterRequest();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private MoveClusterRequest(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              destinationFolderId_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_MoveClusterRequest_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_MoveClusterRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster to move.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster to move.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int DESTINATION_FOLDER_ID_FIELD_NUMBER = 2;
    private volatile java.lang.Object destinationFolderId_;
    /**
     * 
     * ID of the destination folder.
     *  
     *
     * string destination_folder_id = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The destinationFolderId.
     */
    @java.lang.Override
    public java.lang.String getDestinationFolderId() {
      java.lang.Object ref = destinationFolderId_;
      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();
        destinationFolderId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the destination folder.
     *  
     *
     * string destination_folder_id = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for destinationFolderId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDestinationFolderIdBytes() {
      java.lang.Object ref = destinationFolderId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        destinationFolderId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(destinationFolderId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, destinationFolderId_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(destinationFolderId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, destinationFolderId_);
      }
      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.ClusterServiceOuterClass.MoveClusterRequest)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) return false;
      if (!getDestinationFolderId()
          .equals(other.getDestinationFolderId())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (37 * hash) + DESTINATION_FOLDER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDestinationFolderId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest 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.ClusterServiceOuterClass.MoveClusterRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest 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.ClusterServiceOuterClass.MoveClusterRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest 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.ClusterServiceOuterClass.MoveClusterRequest 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.ClusterServiceOuterClass.MoveClusterRequest 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.ClusterServiceOuterClass.MoveClusterRequest 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.ClusterServiceOuterClass.MoveClusterRequest 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.ClusterServiceOuterClass.MoveClusterRequest 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.ClusterServiceOuterClass.MoveClusterRequest 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.ClusterServiceOuterClass.MoveClusterRequest 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.MoveClusterRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.MoveClusterRequest)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_MoveClusterRequest_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_MoveClusterRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest.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();
        clusterId_ = "";
        destinationFolderId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_MoveClusterRequest_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest(this);
        result.clusterId_ = clusterId_;
        result.destinationFolderId_ = destinationFolderId_;
        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.ClusterServiceOuterClass.MoveClusterRequest) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        if (!other.getDestinationFolderId().isEmpty()) {
          destinationFolderId_ = other.destinationFolderId_;
          onChanged();
        }
        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.ClusterServiceOuterClass.MoveClusterRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster to move.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to move.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to move.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to move.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to move.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object destinationFolderId_ = "";
      /**
       * 
       * ID of the destination folder.
       *  
       *
       * string destination_folder_id = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The destinationFolderId.
       */
      public java.lang.String getDestinationFolderId() {
        java.lang.Object ref = destinationFolderId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          destinationFolderId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the destination folder.
       *  
       *
       * string destination_folder_id = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for destinationFolderId.
       */
      public com.google.protobuf.ByteString
          getDestinationFolderIdBytes() {
        java.lang.Object ref = destinationFolderId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          destinationFolderId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the destination folder.
       *  
       *
       * string destination_folder_id = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The destinationFolderId to set.
       * @return This builder for chaining.
       */
      public Builder setDestinationFolderId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        destinationFolderId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the destination folder.
       *  
       *
       * string destination_folder_id = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearDestinationFolderId() {
        
        destinationFolderId_ = getDefaultInstance().getDestinationFolderId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the destination folder.
       *  
       *
       * string destination_folder_id = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for destinationFolderId to set.
       * @return This builder for chaining.
       */
      public Builder setDestinationFolderIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        destinationFolderId_ = value;
        onChanged();
        return this;
      }
      @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.MoveClusterRequest)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.MoveClusterRequest)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public MoveClusterRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new MoveClusterRequest(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.ClusterServiceOuterClass.MoveClusterRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface MoveClusterMetadataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.MoveClusterMetadata)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster being moved.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster being moved.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
    /**
     * 
     * ID of the source folder.
     *  
     *
     * string source_folder_id = 2;
     * @return The sourceFolderId.
     */
    java.lang.String getSourceFolderId();
    /**
     * 
     * ID of the source folder.
     *  
     *
     * string source_folder_id = 2;
     * @return The bytes for sourceFolderId.
     */
    com.google.protobuf.ByteString
        getSourceFolderIdBytes();
    /**
     * 
     * ID of the destination folder.
     *  
     *
     * string destination_folder_id = 3;
     * @return The destinationFolderId.
     */
    java.lang.String getDestinationFolderId();
    /**
     * 
     * ID of the destination folder.
     *  
     *
     * string destination_folder_id = 3;
     * @return The bytes for destinationFolderId.
     */
    com.google.protobuf.ByteString
        getDestinationFolderIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.MoveClusterMetadata}
   */
  public static final class MoveClusterMetadata extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.MoveClusterMetadata)
      MoveClusterMetadataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MoveClusterMetadata.newBuilder() to construct.
    private MoveClusterMetadata(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private MoveClusterMetadata() {
      clusterId_ = "";
      sourceFolderId_ = "";
      destinationFolderId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MoveClusterMetadata();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private MoveClusterMetadata(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              sourceFolderId_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              destinationFolderId_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_MoveClusterMetadata_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_MoveClusterMetadata_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster being moved.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster being moved.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int SOURCE_FOLDER_ID_FIELD_NUMBER = 2;
    private volatile java.lang.Object sourceFolderId_;
    /**
     * 
     * ID of the source folder.
     *  
     *
     * string source_folder_id = 2;
     * @return The sourceFolderId.
     */
    @java.lang.Override
    public java.lang.String getSourceFolderId() {
      java.lang.Object ref = sourceFolderId_;
      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();
        sourceFolderId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the source folder.
     *  
     *
     * string source_folder_id = 2;
     * @return The bytes for sourceFolderId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSourceFolderIdBytes() {
      java.lang.Object ref = sourceFolderId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sourceFolderId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int DESTINATION_FOLDER_ID_FIELD_NUMBER = 3;
    private volatile java.lang.Object destinationFolderId_;
    /**
     * 
     * ID of the destination folder.
     *  
     *
     * string destination_folder_id = 3;
     * @return The destinationFolderId.
     */
    @java.lang.Override
    public java.lang.String getDestinationFolderId() {
      java.lang.Object ref = destinationFolderId_;
      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();
        destinationFolderId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the destination folder.
     *  
     *
     * string destination_folder_id = 3;
     * @return The bytes for destinationFolderId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDestinationFolderIdBytes() {
      java.lang.Object ref = destinationFolderId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        destinationFolderId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sourceFolderId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, sourceFolderId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(destinationFolderId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, destinationFolderId_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sourceFolderId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, sourceFolderId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(destinationFolderId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, destinationFolderId_);
      }
      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.ClusterServiceOuterClass.MoveClusterMetadata)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) return false;
      if (!getSourceFolderId()
          .equals(other.getSourceFolderId())) return false;
      if (!getDestinationFolderId()
          .equals(other.getDestinationFolderId())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (37 * hash) + SOURCE_FOLDER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSourceFolderId().hashCode();
      hash = (37 * hash) + DESTINATION_FOLDER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDestinationFolderId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata 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.ClusterServiceOuterClass.MoveClusterMetadata parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata 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.ClusterServiceOuterClass.MoveClusterMetadata parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata 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.ClusterServiceOuterClass.MoveClusterMetadata 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.ClusterServiceOuterClass.MoveClusterMetadata 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.ClusterServiceOuterClass.MoveClusterMetadata 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.ClusterServiceOuterClass.MoveClusterMetadata 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.ClusterServiceOuterClass.MoveClusterMetadata 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.ClusterServiceOuterClass.MoveClusterMetadata 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.ClusterServiceOuterClass.MoveClusterMetadata 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.MoveClusterMetadata}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.MoveClusterMetadata)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_MoveClusterMetadata_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_MoveClusterMetadata_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata.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();
        clusterId_ = "";
        sourceFolderId_ = "";
        destinationFolderId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_MoveClusterMetadata_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata(this);
        result.clusterId_ = clusterId_;
        result.sourceFolderId_ = sourceFolderId_;
        result.destinationFolderId_ = destinationFolderId_;
        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.ClusterServiceOuterClass.MoveClusterMetadata) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        if (!other.getSourceFolderId().isEmpty()) {
          sourceFolderId_ = other.sourceFolderId_;
          onChanged();
        }
        if (!other.getDestinationFolderId().isEmpty()) {
          destinationFolderId_ = other.destinationFolderId_;
          onChanged();
        }
        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.ClusterServiceOuterClass.MoveClusterMetadata parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster being moved.
       *  
       *
       * string cluster_id = 1;
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster being moved.
       *  
       *
       * string cluster_id = 1;
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster being moved.
       *  
       *
       * string cluster_id = 1;
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster being moved.
       *  
       *
       * string cluster_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster being moved.
       *  
       *
       * string cluster_id = 1;
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object sourceFolderId_ = "";
      /**
       * 
       * ID of the source folder.
       *  
       *
       * string source_folder_id = 2;
       * @return The sourceFolderId.
       */
      public java.lang.String getSourceFolderId() {
        java.lang.Object ref = sourceFolderId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sourceFolderId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the source folder.
       *  
       *
       * string source_folder_id = 2;
       * @return The bytes for sourceFolderId.
       */
      public com.google.protobuf.ByteString
          getSourceFolderIdBytes() {
        java.lang.Object ref = sourceFolderId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sourceFolderId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the source folder.
       *  
       *
       * string source_folder_id = 2;
       * @param value The sourceFolderId to set.
       * @return This builder for chaining.
       */
      public Builder setSourceFolderId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        sourceFolderId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the source folder.
       *  
       *
       * string source_folder_id = 2;
       * @return This builder for chaining.
       */
      public Builder clearSourceFolderId() {
        
        sourceFolderId_ = getDefaultInstance().getSourceFolderId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the source folder.
       *  
       *
       * string source_folder_id = 2;
       * @param value The bytes for sourceFolderId to set.
       * @return This builder for chaining.
       */
      public Builder setSourceFolderIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        sourceFolderId_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object destinationFolderId_ = "";
      /**
       * 
       * ID of the destination folder.
       *  
       *
       * string destination_folder_id = 3;
       * @return The destinationFolderId.
       */
      public java.lang.String getDestinationFolderId() {
        java.lang.Object ref = destinationFolderId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          destinationFolderId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the destination folder.
       *  
       *
       * string destination_folder_id = 3;
       * @return The bytes for destinationFolderId.
       */
      public com.google.protobuf.ByteString
          getDestinationFolderIdBytes() {
        java.lang.Object ref = destinationFolderId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          destinationFolderId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the destination folder.
       *  
       *
       * string destination_folder_id = 3;
       * @param value The destinationFolderId to set.
       * @return This builder for chaining.
       */
      public Builder setDestinationFolderId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        destinationFolderId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the destination folder.
       *  
       *
       * string destination_folder_id = 3;
       * @return This builder for chaining.
       */
      public Builder clearDestinationFolderId() {
        
        destinationFolderId_ = getDefaultInstance().getDestinationFolderId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the destination folder.
       *  
       *
       * string destination_folder_id = 3;
       * @param value The bytes for destinationFolderId to set.
       * @return This builder for chaining.
       */
      public Builder setDestinationFolderIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        destinationFolderId_ = value;
        onChanged();
        return this;
      }
      @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.MoveClusterMetadata)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.MoveClusterMetadata)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.MoveClusterMetadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public MoveClusterMetadata parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new MoveClusterMetadata(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.ClusterServiceOuterClass.MoveClusterMetadata getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface UpdateClusterHostsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.UpdateClusterHostsRequest)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster to update hosts in.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster to update hosts in.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
    /**
     * 
     * New configurations to apply to hosts.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
     */
    java.util.List 
        getUpdateHostSpecsList();
    /**
     * 
     * New configurations to apply to hosts.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
     */
    yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec getUpdateHostSpecs(int index);
    /**
     * 
     * New configurations to apply to hosts.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
     */
    int getUpdateHostSpecsCount();
    /**
     * 
     * New configurations to apply to hosts.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
     */
    java.util.List extends yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpecOrBuilder> 
        getUpdateHostSpecsOrBuilderList();
    /**
     * 
     * New configurations to apply to hosts.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
     */
    yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpecOrBuilder getUpdateHostSpecsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.UpdateClusterHostsRequest}
   */
  public static final class UpdateClusterHostsRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.UpdateClusterHostsRequest)
      UpdateClusterHostsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use UpdateClusterHostsRequest.newBuilder() to construct.
    private UpdateClusterHostsRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private UpdateClusterHostsRequest() {
      clusterId_ = "";
      updateHostSpecs_ = java.util.Collections.emptyList();
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new UpdateClusterHostsRequest();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private UpdateClusterHostsRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                updateHostSpecs_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              updateHostSpecs_.add(
                  input.readMessage(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec.parser(), extensionRegistry));
              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 {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          updateHostSpecs_ = java.util.Collections.unmodifiableList(updateHostSpecs_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterHostsRequest_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterHostsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster to update hosts in.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster to update hosts in.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int UPDATE_HOST_SPECS_FIELD_NUMBER = 2;
    private java.util.List updateHostSpecs_;
    /**
     * 
     * New configurations to apply to hosts.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public java.util.List getUpdateHostSpecsList() {
      return updateHostSpecs_;
    }
    /**
     * 
     * New configurations to apply to hosts.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public java.util.List extends yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpecOrBuilder> 
        getUpdateHostSpecsOrBuilderList() {
      return updateHostSpecs_;
    }
    /**
     * 
     * New configurations to apply to hosts.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public int getUpdateHostSpecsCount() {
      return updateHostSpecs_.size();
    }
    /**
     * 
     * New configurations to apply to hosts.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec getUpdateHostSpecs(int index) {
      return updateHostSpecs_.get(index);
    }
    /**
     * 
     * New configurations to apply to hosts.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpecOrBuilder getUpdateHostSpecsOrBuilder(
        int index) {
      return updateHostSpecs_.get(index);
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      for (int i = 0; i < updateHostSpecs_.size(); i++) {
        output.writeMessage(2, updateHostSpecs_.get(i));
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      for (int i = 0; i < updateHostSpecs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, updateHostSpecs_.get(i));
      }
      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.ClusterServiceOuterClass.UpdateClusterHostsRequest)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) return false;
      if (!getUpdateHostSpecsList()
          .equals(other.getUpdateHostSpecsList())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      if (getUpdateHostSpecsCount() > 0) {
        hash = (37 * hash) + UPDATE_HOST_SPECS_FIELD_NUMBER;
        hash = (53 * hash) + getUpdateHostSpecsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest 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.ClusterServiceOuterClass.UpdateClusterHostsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest 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.ClusterServiceOuterClass.UpdateClusterHostsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest 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.ClusterServiceOuterClass.UpdateClusterHostsRequest 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.ClusterServiceOuterClass.UpdateClusterHostsRequest 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.ClusterServiceOuterClass.UpdateClusterHostsRequest 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.ClusterServiceOuterClass.UpdateClusterHostsRequest 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.ClusterServiceOuterClass.UpdateClusterHostsRequest 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.ClusterServiceOuterClass.UpdateClusterHostsRequest 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.ClusterServiceOuterClass.UpdateClusterHostsRequest 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.UpdateClusterHostsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.UpdateClusterHostsRequest)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterHostsRequest_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterHostsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getUpdateHostSpecsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        clusterId_ = "";
        if (updateHostSpecsBuilder_ == null) {
          updateHostSpecs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          updateHostSpecsBuilder_.clear();
        }
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterHostsRequest_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest(this);
        int from_bitField0_ = bitField0_;
        result.clusterId_ = clusterId_;
        if (updateHostSpecsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            updateHostSpecs_ = java.util.Collections.unmodifiableList(updateHostSpecs_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.updateHostSpecs_ = updateHostSpecs_;
        } else {
          result.updateHostSpecs_ = updateHostSpecsBuilder_.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.ClusterServiceOuterClass.UpdateClusterHostsRequest) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        if (updateHostSpecsBuilder_ == null) {
          if (!other.updateHostSpecs_.isEmpty()) {
            if (updateHostSpecs_.isEmpty()) {
              updateHostSpecs_ = other.updateHostSpecs_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureUpdateHostSpecsIsMutable();
              updateHostSpecs_.addAll(other.updateHostSpecs_);
            }
            onChanged();
          }
        } else {
          if (!other.updateHostSpecs_.isEmpty()) {
            if (updateHostSpecsBuilder_.isEmpty()) {
              updateHostSpecsBuilder_.dispose();
              updateHostSpecsBuilder_ = null;
              updateHostSpecs_ = other.updateHostSpecs_;
              bitField0_ = (bitField0_ & ~0x00000001);
              updateHostSpecsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getUpdateHostSpecsFieldBuilder() : null;
            } else {
              updateHostSpecsBuilder_.addAllMessages(other.updateHostSpecs_);
            }
          }
        }
        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.ClusterServiceOuterClass.UpdateClusterHostsRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster to update hosts in.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to update hosts in.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to update hosts in.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to update hosts in.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to update hosts in.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      private java.util.List updateHostSpecs_ =
        java.util.Collections.emptyList();
      private void ensureUpdateHostSpecsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          updateHostSpecs_ = new java.util.ArrayList(updateHostSpecs_);
          bitField0_ |= 0x00000001;
         }
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpecOrBuilder> updateHostSpecsBuilder_;
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public java.util.List getUpdateHostSpecsList() {
        if (updateHostSpecsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(updateHostSpecs_);
        } else {
          return updateHostSpecsBuilder_.getMessageList();
        }
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public int getUpdateHostSpecsCount() {
        if (updateHostSpecsBuilder_ == null) {
          return updateHostSpecs_.size();
        } else {
          return updateHostSpecsBuilder_.getCount();
        }
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec getUpdateHostSpecs(int index) {
        if (updateHostSpecsBuilder_ == null) {
          return updateHostSpecs_.get(index);
        } else {
          return updateHostSpecsBuilder_.getMessage(index);
        }
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public Builder setUpdateHostSpecs(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec value) {
        if (updateHostSpecsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpdateHostSpecsIsMutable();
          updateHostSpecs_.set(index, value);
          onChanged();
        } else {
          updateHostSpecsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public Builder setUpdateHostSpecs(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec.Builder builderForValue) {
        if (updateHostSpecsBuilder_ == null) {
          ensureUpdateHostSpecsIsMutable();
          updateHostSpecs_.set(index, builderForValue.build());
          onChanged();
        } else {
          updateHostSpecsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addUpdateHostSpecs(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec value) {
        if (updateHostSpecsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpdateHostSpecsIsMutable();
          updateHostSpecs_.add(value);
          onChanged();
        } else {
          updateHostSpecsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addUpdateHostSpecs(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec value) {
        if (updateHostSpecsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpdateHostSpecsIsMutable();
          updateHostSpecs_.add(index, value);
          onChanged();
        } else {
          updateHostSpecsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addUpdateHostSpecs(
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec.Builder builderForValue) {
        if (updateHostSpecsBuilder_ == null) {
          ensureUpdateHostSpecsIsMutable();
          updateHostSpecs_.add(builderForValue.build());
          onChanged();
        } else {
          updateHostSpecsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addUpdateHostSpecs(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec.Builder builderForValue) {
        if (updateHostSpecsBuilder_ == null) {
          ensureUpdateHostSpecsIsMutable();
          updateHostSpecs_.add(index, builderForValue.build());
          onChanged();
        } else {
          updateHostSpecsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addAllUpdateHostSpecs(
          java.lang.Iterable extends yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec> values) {
        if (updateHostSpecsBuilder_ == null) {
          ensureUpdateHostSpecsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, updateHostSpecs_);
          onChanged();
        } else {
          updateHostSpecsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public Builder clearUpdateHostSpecs() {
        if (updateHostSpecsBuilder_ == null) {
          updateHostSpecs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          updateHostSpecsBuilder_.clear();
        }
        return this;
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public Builder removeUpdateHostSpecs(int index) {
        if (updateHostSpecsBuilder_ == null) {
          ensureUpdateHostSpecsIsMutable();
          updateHostSpecs_.remove(index);
          onChanged();
        } else {
          updateHostSpecsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec.Builder getUpdateHostSpecsBuilder(
          int index) {
        return getUpdateHostSpecsFieldBuilder().getBuilder(index);
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpecOrBuilder getUpdateHostSpecsOrBuilder(
          int index) {
        if (updateHostSpecsBuilder_ == null) {
          return updateHostSpecs_.get(index);  } else {
          return updateHostSpecsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public java.util.List extends yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpecOrBuilder> 
           getUpdateHostSpecsOrBuilderList() {
        if (updateHostSpecsBuilder_ != null) {
          return updateHostSpecsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(updateHostSpecs_);
        }
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec.Builder addUpdateHostSpecsBuilder() {
        return getUpdateHostSpecsFieldBuilder().addBuilder(
            yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec.getDefaultInstance());
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec.Builder addUpdateHostSpecsBuilder(
          int index) {
        return getUpdateHostSpecsFieldBuilder().addBuilder(
            index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec.getDefaultInstance());
      }
      /**
       * 
       * New configurations to apply to hosts.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.UpdateHostSpec update_host_specs = 2 [(.yandex.cloud.size) = ">0"];
       */
      public java.util.List 
           getUpdateHostSpecsBuilderList() {
        return getUpdateHostSpecsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpecOrBuilder> 
          getUpdateHostSpecsFieldBuilder() {
        if (updateHostSpecsBuilder_ == null) {
          updateHostSpecsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateHostSpecOrBuilder>(
                  updateHostSpecs_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          updateHostSpecs_ = null;
        }
        return updateHostSpecsBuilder_;
      }
      @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.UpdateClusterHostsRequest)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.UpdateClusterHostsRequest)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public UpdateClusterHostsRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new UpdateClusterHostsRequest(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.ClusterServiceOuterClass.UpdateClusterHostsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface UpdateClusterHostsMetadataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.UpdateClusterHostsMetadata)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster to update hosts in.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster to update hosts in.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
    /**
     * 
     * Names of hosts that are being updated.
     *  
     *
     * repeated string host_names = 2;
     * @return A list containing the hostNames.
     */
    java.util.List
        getHostNamesList();
    /**
     * 
     * Names of hosts that are being updated.
     *  
     *
     * repeated string host_names = 2;
     * @return The count of hostNames.
     */
    int getHostNamesCount();
    /**
     * 
     * Names of hosts that are being updated.
     *  
     *
     * repeated string host_names = 2;
     * @param index The index of the element to return.
     * @return The hostNames at the given index.
     */
    java.lang.String getHostNames(int index);
    /**
     * 
     * Names of hosts that are being updated.
     *  
     *
     * repeated string host_names = 2;
     * @param index The index of the value to return.
     * @return The bytes of the hostNames at the given index.
     */
    com.google.protobuf.ByteString
        getHostNamesBytes(int index);
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.UpdateClusterHostsMetadata}
   */
  public static final class UpdateClusterHostsMetadata extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.UpdateClusterHostsMetadata)
      UpdateClusterHostsMetadataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use UpdateClusterHostsMetadata.newBuilder() to construct.
    private UpdateClusterHostsMetadata(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private UpdateClusterHostsMetadata() {
      clusterId_ = "";
      hostNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new UpdateClusterHostsMetadata();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private UpdateClusterHostsMetadata(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                hostNames_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              hostNames_.add(s);
              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 {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          hostNames_ = hostNames_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterHostsMetadata_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterHostsMetadata_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster to update hosts in.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster to update hosts in.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int HOST_NAMES_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList hostNames_;
    /**
     * 
     * Names of hosts that are being updated.
     *  
     *
     * repeated string host_names = 2;
     * @return A list containing the hostNames.
     */
    public com.google.protobuf.ProtocolStringList
        getHostNamesList() {
      return hostNames_;
    }
    /**
     * 
     * Names of hosts that are being updated.
     *  
     *
     * repeated string host_names = 2;
     * @return The count of hostNames.
     */
    public int getHostNamesCount() {
      return hostNames_.size();
    }
    /**
     * 
     * Names of hosts that are being updated.
     *  
     *
     * repeated string host_names = 2;
     * @param index The index of the element to return.
     * @return The hostNames at the given index.
     */
    public java.lang.String getHostNames(int index) {
      return hostNames_.get(index);
    }
    /**
     * 
     * Names of hosts that are being updated.
     *  
     *
     * repeated string host_names = 2;
     * @param index The index of the value to return.
     * @return The bytes of the hostNames at the given index.
     */
    public com.google.protobuf.ByteString
        getHostNamesBytes(int index) {
      return hostNames_.getByteString(index);
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      for (int i = 0; i < hostNames_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, hostNames_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < hostNames_.size(); i++) {
          dataSize += computeStringSizeNoTag(hostNames_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getHostNamesList().size();
      }
      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.ClusterServiceOuterClass.UpdateClusterHostsMetadata)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) return false;
      if (!getHostNamesList()
          .equals(other.getHostNamesList())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      if (getHostNamesCount() > 0) {
        hash = (37 * hash) + HOST_NAMES_FIELD_NUMBER;
        hash = (53 * hash) + getHostNamesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata 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.ClusterServiceOuterClass.UpdateClusterHostsMetadata parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata 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.ClusterServiceOuterClass.UpdateClusterHostsMetadata parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata 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.ClusterServiceOuterClass.UpdateClusterHostsMetadata 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.ClusterServiceOuterClass.UpdateClusterHostsMetadata 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.ClusterServiceOuterClass.UpdateClusterHostsMetadata 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.ClusterServiceOuterClass.UpdateClusterHostsMetadata 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.ClusterServiceOuterClass.UpdateClusterHostsMetadata 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.ClusterServiceOuterClass.UpdateClusterHostsMetadata 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.ClusterServiceOuterClass.UpdateClusterHostsMetadata 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.UpdateClusterHostsMetadata}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.UpdateClusterHostsMetadata)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterHostsMetadata_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterHostsMetadata_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata.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();
        clusterId_ = "";
        hostNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_UpdateClusterHostsMetadata_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata(this);
        int from_bitField0_ = bitField0_;
        result.clusterId_ = clusterId_;
        if (((bitField0_ & 0x00000001) != 0)) {
          hostNames_ = hostNames_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.hostNames_ = hostNames_;
        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.ClusterServiceOuterClass.UpdateClusterHostsMetadata) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        if (!other.hostNames_.isEmpty()) {
          if (hostNames_.isEmpty()) {
            hostNames_ = other.hostNames_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureHostNamesIsMutable();
            hostNames_.addAll(other.hostNames_);
          }
          onChanged();
        }
        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.ClusterServiceOuterClass.UpdateClusterHostsMetadata parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster to update hosts in.
       *  
       *
       * string cluster_id = 1;
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to update hosts in.
       *  
       *
       * string cluster_id = 1;
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to update hosts in.
       *  
       *
       * string cluster_id = 1;
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to update hosts in.
       *  
       *
       * string cluster_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to update hosts in.
       *  
       *
       * string cluster_id = 1;
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      private com.google.protobuf.LazyStringList hostNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureHostNamesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          hostNames_ = new com.google.protobuf.LazyStringArrayList(hostNames_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * 
       * Names of hosts that are being updated.
       *  
       *
       * repeated string host_names = 2;
       * @return A list containing the hostNames.
       */
      public com.google.protobuf.ProtocolStringList
          getHostNamesList() {
        return hostNames_.getUnmodifiableView();
      }
      /**
       * 
       * Names of hosts that are being updated.
       *  
       *
       * repeated string host_names = 2;
       * @return The count of hostNames.
       */
      public int getHostNamesCount() {
        return hostNames_.size();
      }
      /**
       * 
       * Names of hosts that are being updated.
       *  
       *
       * repeated string host_names = 2;
       * @param index The index of the element to return.
       * @return The hostNames at the given index.
       */
      public java.lang.String getHostNames(int index) {
        return hostNames_.get(index);
      }
      /**
       * 
       * Names of hosts that are being updated.
       *  
       *
       * repeated string host_names = 2;
       * @param index The index of the value to return.
       * @return The bytes of the hostNames at the given index.
       */
      public com.google.protobuf.ByteString
          getHostNamesBytes(int index) {
        return hostNames_.getByteString(index);
      }
      /**
       * 
       * Names of hosts that are being updated.
       *  
       *
       * repeated string host_names = 2;
       * @param index The index to set the value at.
       * @param value The hostNames to set.
       * @return This builder for chaining.
       */
      public Builder setHostNames(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureHostNamesIsMutable();
        hostNames_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * 
       * Names of hosts that are being updated.
       *  
       *
       * repeated string host_names = 2;
       * @param value The hostNames to add.
       * @return This builder for chaining.
       */
      public Builder addHostNames(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureHostNamesIsMutable();
        hostNames_.add(value);
        onChanged();
        return this;
      }
      /**
       * 
       * Names of hosts that are being updated.
       *  
       *
       * repeated string host_names = 2;
       * @param values The hostNames to add.
       * @return This builder for chaining.
       */
      public Builder addAllHostNames(
          java.lang.Iterable values) {
        ensureHostNamesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, hostNames_);
        onChanged();
        return this;
      }
      /**
       * 
       * Names of hosts that are being updated.
       *  
       *
       * repeated string host_names = 2;
       * @return This builder for chaining.
       */
      public Builder clearHostNames() {
        hostNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * 
       * Names of hosts that are being updated.
       *  
       *
       * repeated string host_names = 2;
       * @param value The bytes of the hostNames to add.
       * @return This builder for chaining.
       */
      public Builder addHostNamesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureHostNamesIsMutable();
        hostNames_.add(value);
        onChanged();
        return this;
      }
      @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.UpdateClusterHostsMetadata)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.UpdateClusterHostsMetadata)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.UpdateClusterHostsMetadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public UpdateClusterHostsMetadata parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new UpdateClusterHostsMetadata(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.ClusterServiceOuterClass.UpdateClusterHostsMetadata getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface BackupClusterRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.BackupClusterRequest)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster to back up.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster to back up.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.BackupClusterRequest}
   */
  public static final class BackupClusterRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.BackupClusterRequest)
      BackupClusterRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BackupClusterRequest.newBuilder() to construct.
    private BackupClusterRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private BackupClusterRequest() {
      clusterId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new BackupClusterRequest();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private BackupClusterRequest(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_BackupClusterRequest_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_BackupClusterRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster to back up.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster to back up.
     * To get the Redis cluster ID, use a [ClusterService.List] request.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      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.ClusterServiceOuterClass.BackupClusterRequest)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest 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.ClusterServiceOuterClass.BackupClusterRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest 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.ClusterServiceOuterClass.BackupClusterRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest 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.ClusterServiceOuterClass.BackupClusterRequest 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.ClusterServiceOuterClass.BackupClusterRequest 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.ClusterServiceOuterClass.BackupClusterRequest 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.ClusterServiceOuterClass.BackupClusterRequest 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.ClusterServiceOuterClass.BackupClusterRequest 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.ClusterServiceOuterClass.BackupClusterRequest 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.ClusterServiceOuterClass.BackupClusterRequest 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.BackupClusterRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.BackupClusterRequest)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_BackupClusterRequest_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_BackupClusterRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest.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();
        clusterId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_BackupClusterRequest_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest(this);
        result.clusterId_ = clusterId_;
        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.ClusterServiceOuterClass.BackupClusterRequest) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        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.ClusterServiceOuterClass.BackupClusterRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster to back up.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to back up.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to back up.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to back up.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to back up.
       * To get the Redis cluster ID, use a [ClusterService.List] request.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      @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.BackupClusterRequest)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.BackupClusterRequest)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public BackupClusterRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new BackupClusterRequest(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.ClusterServiceOuterClass.BackupClusterRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface BackupClusterMetadataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.BackupClusterMetadata)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster that is being backed up.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster that is being backed up.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.BackupClusterMetadata}
   */
  public static final class BackupClusterMetadata extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.BackupClusterMetadata)
      BackupClusterMetadataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BackupClusterMetadata.newBuilder() to construct.
    private BackupClusterMetadata(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private BackupClusterMetadata() {
      clusterId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new BackupClusterMetadata();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private BackupClusterMetadata(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_BackupClusterMetadata_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_BackupClusterMetadata_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster that is being backed up.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster that is being backed up.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      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.ClusterServiceOuterClass.BackupClusterMetadata)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata 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.ClusterServiceOuterClass.BackupClusterMetadata parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata 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.ClusterServiceOuterClass.BackupClusterMetadata parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata 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.ClusterServiceOuterClass.BackupClusterMetadata 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.ClusterServiceOuterClass.BackupClusterMetadata 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.ClusterServiceOuterClass.BackupClusterMetadata 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.ClusterServiceOuterClass.BackupClusterMetadata 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.ClusterServiceOuterClass.BackupClusterMetadata 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.ClusterServiceOuterClass.BackupClusterMetadata 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.ClusterServiceOuterClass.BackupClusterMetadata 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.BackupClusterMetadata}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.BackupClusterMetadata)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_BackupClusterMetadata_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_BackupClusterMetadata_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata.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();
        clusterId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_BackupClusterMetadata_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata(this);
        result.clusterId_ = clusterId_;
        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.ClusterServiceOuterClass.BackupClusterMetadata) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        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.ClusterServiceOuterClass.BackupClusterMetadata parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster that is being backed up.
       *  
       *
       * string cluster_id = 1;
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster that is being backed up.
       *  
       *
       * string cluster_id = 1;
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster that is being backed up.
       *  
       *
       * string cluster_id = 1;
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster that is being backed up.
       *  
       *
       * string cluster_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster that is being backed up.
       *  
       *
       * string cluster_id = 1;
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      @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.BackupClusterMetadata)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.BackupClusterMetadata)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.BackupClusterMetadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public BackupClusterMetadata parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new BackupClusterMetadata(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.ClusterServiceOuterClass.BackupClusterMetadata getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface RestoreClusterRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.RestoreClusterRequest)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the backup to create a cluster from.
     * To get the backup ID, use a [ClusterService.ListBackups] request.
     *  
     *
     * string backup_id = 1 [(.yandex.cloud.required) = true];
     * @return The backupId.
     */
    java.lang.String getBackupId();
    /**
     * 
     * ID of the backup to create a cluster from.
     * To get the backup ID, use a [ClusterService.ListBackups] request.
     *  
     *
     * string backup_id = 1 [(.yandex.cloud.required) = true];
     * @return The bytes for backupId.
     */
    com.google.protobuf.ByteString
        getBackupIdBytes();
    /**
     * 
     * Name of the new Redis cluster. The name must be unique within the folder.
     *  
     *
     * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
     * @return The name.
     */
    java.lang.String getName();
    /**
     * 
     * Name of the new Redis cluster. The name must be unique within the folder.
     *  
     *
     * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();
    /**
     * 
     * Description of the new Redis cluster.
     *  
     *
     * string description = 3 [(.yandex.cloud.length) = "<=256"];
     * @return The description.
     */
    java.lang.String getDescription();
    /**
     * 
     * Description of the new Redis cluster.
     *  
     *
     * string description = 3 [(.yandex.cloud.length) = "<=256"];
     * @return The bytes for description.
     */
    com.google.protobuf.ByteString
        getDescriptionBytes();
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    int getLabelsCount();
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    boolean containsLabels(
        java.lang.String key);
    /**
     * Use {@link #getLabelsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map
    getLabels();
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    java.util.Map
    getLabelsMap();
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    java.lang.String getLabelsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    java.lang.String getLabelsOrThrow(
        java.lang.String key);
    /**
     * 
     * Deployment environment of the new Redis cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
     * @return The enum numeric value on the wire for environment.
     */
    int getEnvironmentValue();
    /**
     * 
     * Deployment environment of the new Redis cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
     * @return The environment.
     */
    yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment getEnvironment();
    /**
     * 
     * Configuration for the Redis cluster to be created.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
     * @return Whether the configSpec field is set.
     */
    boolean hasConfigSpec();
    /**
     * 
     * Configuration for the Redis cluster to be created.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
     * @return The configSpec.
     */
    yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec getConfigSpec();
    /**
     * 
     * Configuration for the Redis cluster to be created.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
     */
    yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder getConfigSpecOrBuilder();
    /**
     * 
     * Configurations for Redis hosts that should be created for
     * the cluster that is being created from the backup.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    java.util.List 
        getHostSpecsList();
    /**
     * 
     * Configurations for Redis hosts that should be created for
     * the cluster that is being created from the backup.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec getHostSpecs(int index);
    /**
     * 
     * Configurations for Redis hosts that should be created for
     * the cluster that is being created from the backup.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    int getHostSpecsCount();
    /**
     * 
     * Configurations for Redis hosts that should be created for
     * the cluster that is being created from the backup.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    java.util.List extends yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder> 
        getHostSpecsOrBuilderList();
    /**
     * 
     * Configurations for Redis hosts that should be created for
     * the cluster that is being created from the backup.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder getHostSpecsOrBuilder(
        int index);
    /**
     * 
     * ID of the network to create the Redis cluster in.
     *  
     *
     * string network_id = 8 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The networkId.
     */
    java.lang.String getNetworkId();
    /**
     * 
     * ID of the network to create the Redis cluster in.
     *  
     *
     * string network_id = 8 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for networkId.
     */
    com.google.protobuf.ByteString
        getNetworkIdBytes();
    /**
     * 
     * ID of the folder to create the Redis cluster in.
     *  
     *
     * string folder_id = 9 [(.yandex.cloud.length) = "<=50"];
     * @return The folderId.
     */
    java.lang.String getFolderId();
    /**
     * 
     * ID of the folder to create the Redis cluster in.
     *  
     *
     * string folder_id = 9 [(.yandex.cloud.length) = "<=50"];
     * @return The bytes for folderId.
     */
    com.google.protobuf.ByteString
        getFolderIdBytes();
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 10;
     * @return A list containing the securityGroupIds.
     */
    java.util.List
        getSecurityGroupIdsList();
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 10;
     * @return The count of securityGroupIds.
     */
    int getSecurityGroupIdsCount();
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 10;
     * @param index The index of the element to return.
     * @return The securityGroupIds at the given index.
     */
    java.lang.String getSecurityGroupIds(int index);
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 10;
     * @param index The index of the value to return.
     * @return The bytes of the securityGroupIds at the given index.
     */
    com.google.protobuf.ByteString
        getSecurityGroupIdsBytes(int index);
    /**
     * 
     * TLS port and functionality on\off
     *  
     *
     * .google.protobuf.BoolValue tls_enabled = 11;
     * @return Whether the tlsEnabled field is set.
     */
    boolean hasTlsEnabled();
    /**
     * 
     * TLS port and functionality on\off
     *  
     *
     * .google.protobuf.BoolValue tls_enabled = 11;
     * @return The tlsEnabled.
     */
    com.google.protobuf.BoolValue getTlsEnabled();
    /**
     * 
     * TLS port and functionality on\off
     *  
     *
     * .google.protobuf.BoolValue tls_enabled = 11;
     */
    com.google.protobuf.BoolValueOrBuilder getTlsEnabledOrBuilder();
    /**
     * 
     * Persistence mode
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 12;
     * @return The enum numeric value on the wire for persistenceMode.
     */
    int getPersistenceModeValue();
    /**
     * 
     * Persistence mode
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 12;
     * @return The persistenceMode.
     */
    yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode getPersistenceMode();
    /**
     * 
     * Deletion Protection inhibits deletion of the cluster
     *  
     *
     * bool deletion_protection = 13;
     * @return The deletionProtection.
     */
    boolean getDeletionProtection();
    /**
     * 
     * Enable FQDN instead of ip
     *  
     *
     * bool announce_hostnames = 14;
     * @return The announceHostnames.
     */
    boolean getAnnounceHostnames();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.RestoreClusterRequest}
   */
  public static final class RestoreClusterRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.RestoreClusterRequest)
      RestoreClusterRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RestoreClusterRequest.newBuilder() to construct.
    private RestoreClusterRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private RestoreClusterRequest() {
      backupId_ = "";
      name_ = "";
      description_ = "";
      environment_ = 0;
      hostSpecs_ = java.util.Collections.emptyList();
      networkId_ = "";
      folderId_ = "";
      securityGroupIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      persistenceMode_ = 0;
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RestoreClusterRequest();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RestoreClusterRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      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: {
              java.lang.String s = input.readStringRequireUtf8();
              backupId_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              name_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              description_ = s;
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                labels_ = com.google.protobuf.MapField.newMapField(
                    LabelsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry
              labels__ = input.readMessage(
                  LabelsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              labels_.getMutableMap().put(
                  labels__.getKey(), labels__.getValue());
              break;
            }
            case 40: {
              int rawValue = input.readEnum();
              environment_ = rawValue;
              break;
            }
            case 50: {
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder subBuilder = null;
              if (configSpec_ != null) {
                subBuilder = configSpec_.toBuilder();
              }
              configSpec_ = input.readMessage(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(configSpec_);
                configSpec_ = subBuilder.buildPartial();
              }
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                hostSpecs_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              hostSpecs_.add(
                  input.readMessage(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.parser(), extensionRegistry));
              break;
            }
            case 66: {
              java.lang.String s = input.readStringRequireUtf8();
              networkId_ = s;
              break;
            }
            case 74: {
              java.lang.String s = input.readStringRequireUtf8();
              folderId_ = s;
              break;
            }
            case 82: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                securityGroupIds_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              securityGroupIds_.add(s);
              break;
            }
            case 90: {
              com.google.protobuf.BoolValue.Builder subBuilder = null;
              if (tlsEnabled_ != null) {
                subBuilder = tlsEnabled_.toBuilder();
              }
              tlsEnabled_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(tlsEnabled_);
                tlsEnabled_ = subBuilder.buildPartial();
              }
              break;
            }
            case 96: {
              int rawValue = input.readEnum();
              persistenceMode_ = rawValue;
              break;
            }
            case 104: {
              deletionProtection_ = input.readBool();
              break;
            }
            case 112: {
              announceHostnames_ = input.readBool();
              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 {
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          hostSpecs_ = java.util.Collections.unmodifiableList(hostSpecs_);
        }
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          securityGroupIds_ = securityGroupIds_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RestoreClusterRequest_descriptor;
    }
    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 4:
          return internalGetLabels();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RestoreClusterRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest.Builder.class);
    }
    public static final int BACKUP_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object backupId_;
    /**
     * 
     * ID of the backup to create a cluster from.
     * To get the backup ID, use a [ClusterService.ListBackups] request.
     *  
     *
     * string backup_id = 1 [(.yandex.cloud.required) = true];
     * @return The backupId.
     */
    @java.lang.Override
    public java.lang.String getBackupId() {
      java.lang.Object ref = backupId_;
      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();
        backupId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the backup to create a cluster from.
     * To get the backup ID, use a [ClusterService.ListBackups] request.
     *  
     *
     * string backup_id = 1 [(.yandex.cloud.required) = true];
     * @return The bytes for backupId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBackupIdBytes() {
      java.lang.Object ref = backupId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        backupId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object name_;
    /**
     * 
     * Name of the new Redis cluster. The name must be unique within the folder.
     *  
     *
     * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      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();
        name_ = s;
        return s;
      }
    }
    /**
     * 
     * Name of the new Redis cluster. The name must be unique within the folder.
     *  
     *
     * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int DESCRIPTION_FIELD_NUMBER = 3;
    private volatile java.lang.Object description_;
    /**
     * 
     * Description of the new Redis cluster.
     *  
     *
     * string description = 3 [(.yandex.cloud.length) = "<=256"];
     * @return The description.
     */
    @java.lang.Override
    public java.lang.String getDescription() {
      java.lang.Object ref = description_;
      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();
        description_ = s;
        return s;
      }
    }
    /**
     * 
     * Description of the new Redis cluster.
     *  
     *
     * string description = 3 [(.yandex.cloud.length) = "<=256"];
     * @return The bytes for description.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDescriptionBytes() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        description_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int LABELS_FIELD_NUMBER = 4;
    private static final class LabelsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .newDefaultInstance(
                  yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RestoreClusterRequest_LabelsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> labels_;
    private com.google.protobuf.MapField
    internalGetLabels() {
      if (labels_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            LabelsDefaultEntryHolder.defaultEntry);
      }
      return labels_;
    }
    public int getLabelsCount() {
      return internalGetLabels().getMap().size();
    }
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    @java.lang.Override
    public boolean containsLabels(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetLabels().getMap().containsKey(key);
    }
    /**
     * Use {@link #getLabelsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map getLabels() {
      return getLabelsMap();
    }
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    @java.lang.Override
    public java.util.Map getLabelsMap() {
      return internalGetLabels().getMap();
    }
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    @java.lang.Override
    public java.lang.String getLabelsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetLabels().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * 
     * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
     * For example, "project": "mvp" or "source": "dictionary".
     *  
     *
     * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
     */
    @java.lang.Override
    public java.lang.String getLabelsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetLabels().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }
    public static final int ENVIRONMENT_FIELD_NUMBER = 5;
    private int environment_;
    /**
     * 
     * Deployment environment of the new Redis cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
     * @return The enum numeric value on the wire for environment.
     */
    @java.lang.Override public int getEnvironmentValue() {
      return environment_;
    }
    /**
     * 
     * Deployment environment of the new Redis cluster.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
     * @return The environment.
     */
    @java.lang.Override public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment getEnvironment() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment result = yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment.valueOf(environment_);
      return result == null ? yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment.UNRECOGNIZED : result;
    }
    public static final int CONFIG_SPEC_FIELD_NUMBER = 6;
    private yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec configSpec_;
    /**
     * 
     * Configuration for the Redis cluster to be created.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
     * @return Whether the configSpec field is set.
     */
    @java.lang.Override
    public boolean hasConfigSpec() {
      return configSpec_ != null;
    }
    /**
     * 
     * Configuration for the Redis cluster to be created.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
     * @return The configSpec.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec getConfigSpec() {
      return configSpec_ == null ? yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.getDefaultInstance() : configSpec_;
    }
    /**
     * 
     * Configuration for the Redis cluster to be created.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder getConfigSpecOrBuilder() {
      return getConfigSpec();
    }
    public static final int HOST_SPECS_FIELD_NUMBER = 7;
    private java.util.List hostSpecs_;
    /**
     * 
     * Configurations for Redis hosts that should be created for
     * the cluster that is being created from the backup.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public java.util.List getHostSpecsList() {
      return hostSpecs_;
    }
    /**
     * 
     * Configurations for Redis hosts that should be created for
     * the cluster that is being created from the backup.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public java.util.List extends yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder> 
        getHostSpecsOrBuilderList() {
      return hostSpecs_;
    }
    /**
     * 
     * Configurations for Redis hosts that should be created for
     * the cluster that is being created from the backup.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public int getHostSpecsCount() {
      return hostSpecs_.size();
    }
    /**
     * 
     * Configurations for Redis hosts that should be created for
     * the cluster that is being created from the backup.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec getHostSpecs(int index) {
      return hostSpecs_.get(index);
    }
    /**
     * 
     * Configurations for Redis hosts that should be created for
     * the cluster that is being created from the backup.
     *  
     *
     * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder getHostSpecsOrBuilder(
        int index) {
      return hostSpecs_.get(index);
    }
    public static final int NETWORK_ID_FIELD_NUMBER = 8;
    private volatile java.lang.Object networkId_;
    /**
     * 
     * ID of the network to create the Redis cluster in.
     *  
     *
     * string network_id = 8 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The networkId.
     */
    @java.lang.Override
    public java.lang.String getNetworkId() {
      java.lang.Object ref = networkId_;
      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();
        networkId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the network to create the Redis cluster in.
     *  
     *
     * string network_id = 8 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for networkId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNetworkIdBytes() {
      java.lang.Object ref = networkId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        networkId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int FOLDER_ID_FIELD_NUMBER = 9;
    private volatile java.lang.Object folderId_;
    /**
     * 
     * ID of the folder to create the Redis cluster in.
     *  
     *
     * string folder_id = 9 [(.yandex.cloud.length) = "<=50"];
     * @return The folderId.
     */
    @java.lang.Override
    public java.lang.String getFolderId() {
      java.lang.Object ref = folderId_;
      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();
        folderId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the folder to create the Redis cluster in.
     *  
     *
     * string folder_id = 9 [(.yandex.cloud.length) = "<=50"];
     * @return The bytes for folderId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFolderIdBytes() {
      java.lang.Object ref = folderId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        folderId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int SECURITY_GROUP_IDS_FIELD_NUMBER = 10;
    private com.google.protobuf.LazyStringList securityGroupIds_;
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 10;
     * @return A list containing the securityGroupIds.
     */
    public com.google.protobuf.ProtocolStringList
        getSecurityGroupIdsList() {
      return securityGroupIds_;
    }
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 10;
     * @return The count of securityGroupIds.
     */
    public int getSecurityGroupIdsCount() {
      return securityGroupIds_.size();
    }
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 10;
     * @param index The index of the element to return.
     * @return The securityGroupIds at the given index.
     */
    public java.lang.String getSecurityGroupIds(int index) {
      return securityGroupIds_.get(index);
    }
    /**
     * 
     * User security groups
     *  
     *
     * repeated string security_group_ids = 10;
     * @param index The index of the value to return.
     * @return The bytes of the securityGroupIds at the given index.
     */
    public com.google.protobuf.ByteString
        getSecurityGroupIdsBytes(int index) {
      return securityGroupIds_.getByteString(index);
    }
    public static final int TLS_ENABLED_FIELD_NUMBER = 11;
    private com.google.protobuf.BoolValue tlsEnabled_;
    /**
     * 
     * TLS port and functionality on\off
     *  
     *
     * .google.protobuf.BoolValue tls_enabled = 11;
     * @return Whether the tlsEnabled field is set.
     */
    @java.lang.Override
    public boolean hasTlsEnabled() {
      return tlsEnabled_ != null;
    }
    /**
     * 
     * TLS port and functionality on\off
     *  
     *
     * .google.protobuf.BoolValue tls_enabled = 11;
     * @return The tlsEnabled.
     */
    @java.lang.Override
    public com.google.protobuf.BoolValue getTlsEnabled() {
      return tlsEnabled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : tlsEnabled_;
    }
    /**
     * 
     * TLS port and functionality on\off
     *  
     *
     * .google.protobuf.BoolValue tls_enabled = 11;
     */
    @java.lang.Override
    public com.google.protobuf.BoolValueOrBuilder getTlsEnabledOrBuilder() {
      return getTlsEnabled();
    }
    public static final int PERSISTENCE_MODE_FIELD_NUMBER = 12;
    private int persistenceMode_;
    /**
     * 
     * Persistence mode
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 12;
     * @return The enum numeric value on the wire for persistenceMode.
     */
    @java.lang.Override public int getPersistenceModeValue() {
      return persistenceMode_;
    }
    /**
     * 
     * Persistence mode
     *  
     *
     * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 12;
     * @return The persistenceMode.
     */
    @java.lang.Override public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode getPersistenceMode() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode result = yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.valueOf(persistenceMode_);
      return result == null ? yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.UNRECOGNIZED : result;
    }
    public static final int DELETION_PROTECTION_FIELD_NUMBER = 13;
    private boolean deletionProtection_;
    /**
     * 
     * Deletion Protection inhibits deletion of the cluster
     *  
     *
     * bool deletion_protection = 13;
     * @return The deletionProtection.
     */
    @java.lang.Override
    public boolean getDeletionProtection() {
      return deletionProtection_;
    }
    public static final int ANNOUNCE_HOSTNAMES_FIELD_NUMBER = 14;
    private boolean announceHostnames_;
    /**
     * 
     * Enable FQDN instead of ip
     *  
     *
     * bool announce_hostnames = 14;
     * @return The announceHostnames.
     */
    @java.lang.Override
    public boolean getAnnounceHostnames() {
      return announceHostnames_;
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(backupId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, backupId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, description_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetLabels(),
          LabelsDefaultEntryHolder.defaultEntry,
          4);
      if (environment_ != yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment.ENVIRONMENT_UNSPECIFIED.getNumber()) {
        output.writeEnum(5, environment_);
      }
      if (configSpec_ != null) {
        output.writeMessage(6, getConfigSpec());
      }
      for (int i = 0; i < hostSpecs_.size(); i++) {
        output.writeMessage(7, hostSpecs_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(networkId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, networkId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(folderId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, folderId_);
      }
      for (int i = 0; i < securityGroupIds_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, securityGroupIds_.getRaw(i));
      }
      if (tlsEnabled_ != null) {
        output.writeMessage(11, getTlsEnabled());
      }
      if (persistenceMode_ != yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.ON.getNumber()) {
        output.writeEnum(12, persistenceMode_);
      }
      if (deletionProtection_ != false) {
        output.writeBool(13, deletionProtection_);
      }
      if (announceHostnames_ != false) {
        output.writeBool(14, announceHostnames_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(backupId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, backupId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, description_);
      }
      for (java.util.Map.Entry entry
           : internalGetLabels().getMap().entrySet()) {
        com.google.protobuf.MapEntry
        labels__ = LabelsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, labels__);
      }
      if (environment_ != yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment.ENVIRONMENT_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, environment_);
      }
      if (configSpec_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getConfigSpec());
      }
      for (int i = 0; i < hostSpecs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, hostSpecs_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(networkId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, networkId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(folderId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, folderId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < securityGroupIds_.size(); i++) {
          dataSize += computeStringSizeNoTag(securityGroupIds_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getSecurityGroupIdsList().size();
      }
      if (tlsEnabled_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, getTlsEnabled());
      }
      if (persistenceMode_ != yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.ON.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(12, persistenceMode_);
      }
      if (deletionProtection_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(13, deletionProtection_);
      }
      if (announceHostnames_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(14, announceHostnames_);
      }
      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.ClusterServiceOuterClass.RestoreClusterRequest)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest) obj;
      if (!getBackupId()
          .equals(other.getBackupId())) return false;
      if (!getName()
          .equals(other.getName())) return false;
      if (!getDescription()
          .equals(other.getDescription())) return false;
      if (!internalGetLabels().equals(
          other.internalGetLabels())) return false;
      if (environment_ != other.environment_) return false;
      if (hasConfigSpec() != other.hasConfigSpec()) return false;
      if (hasConfigSpec()) {
        if (!getConfigSpec()
            .equals(other.getConfigSpec())) return false;
      }
      if (!getHostSpecsList()
          .equals(other.getHostSpecsList())) return false;
      if (!getNetworkId()
          .equals(other.getNetworkId())) return false;
      if (!getFolderId()
          .equals(other.getFolderId())) return false;
      if (!getSecurityGroupIdsList()
          .equals(other.getSecurityGroupIdsList())) return false;
      if (hasTlsEnabled() != other.hasTlsEnabled()) return false;
      if (hasTlsEnabled()) {
        if (!getTlsEnabled()
            .equals(other.getTlsEnabled())) return false;
      }
      if (persistenceMode_ != other.persistenceMode_) return false;
      if (getDeletionProtection()
          != other.getDeletionProtection()) return false;
      if (getAnnounceHostnames()
          != other.getAnnounceHostnames()) 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) + BACKUP_ID_FIELD_NUMBER;
      hash = (53 * hash) + getBackupId().hashCode();
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
      hash = (53 * hash) + getDescription().hashCode();
      if (!internalGetLabels().getMap().isEmpty()) {
        hash = (37 * hash) + LABELS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetLabels().hashCode();
      }
      hash = (37 * hash) + ENVIRONMENT_FIELD_NUMBER;
      hash = (53 * hash) + environment_;
      if (hasConfigSpec()) {
        hash = (37 * hash) + CONFIG_SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getConfigSpec().hashCode();
      }
      if (getHostSpecsCount() > 0) {
        hash = (37 * hash) + HOST_SPECS_FIELD_NUMBER;
        hash = (53 * hash) + getHostSpecsList().hashCode();
      }
      hash = (37 * hash) + NETWORK_ID_FIELD_NUMBER;
      hash = (53 * hash) + getNetworkId().hashCode();
      hash = (37 * hash) + FOLDER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getFolderId().hashCode();
      if (getSecurityGroupIdsCount() > 0) {
        hash = (37 * hash) + SECURITY_GROUP_IDS_FIELD_NUMBER;
        hash = (53 * hash) + getSecurityGroupIdsList().hashCode();
      }
      if (hasTlsEnabled()) {
        hash = (37 * hash) + TLS_ENABLED_FIELD_NUMBER;
        hash = (53 * hash) + getTlsEnabled().hashCode();
      }
      hash = (37 * hash) + PERSISTENCE_MODE_FIELD_NUMBER;
      hash = (53 * hash) + persistenceMode_;
      hash = (37 * hash) + DELETION_PROTECTION_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDeletionProtection());
      hash = (37 * hash) + ANNOUNCE_HOSTNAMES_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getAnnounceHostnames());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest 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.ClusterServiceOuterClass.RestoreClusterRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest 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.ClusterServiceOuterClass.RestoreClusterRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest 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.ClusterServiceOuterClass.RestoreClusterRequest 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.ClusterServiceOuterClass.RestoreClusterRequest 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.ClusterServiceOuterClass.RestoreClusterRequest 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.ClusterServiceOuterClass.RestoreClusterRequest 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.ClusterServiceOuterClass.RestoreClusterRequest 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.ClusterServiceOuterClass.RestoreClusterRequest 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.ClusterServiceOuterClass.RestoreClusterRequest 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.RestoreClusterRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.RestoreClusterRequest)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RestoreClusterRequest_descriptor;
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 4:
            return internalGetLabels();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 4:
            return internalGetMutableLabels();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RestoreClusterRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHostSpecsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        backupId_ = "";
        name_ = "";
        description_ = "";
        internalGetMutableLabels().clear();
        environment_ = 0;
        if (configSpecBuilder_ == null) {
          configSpec_ = null;
        } else {
          configSpec_ = null;
          configSpecBuilder_ = null;
        }
        if (hostSpecsBuilder_ == null) {
          hostSpecs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          hostSpecsBuilder_.clear();
        }
        networkId_ = "";
        folderId_ = "";
        securityGroupIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (tlsEnabledBuilder_ == null) {
          tlsEnabled_ = null;
        } else {
          tlsEnabled_ = null;
          tlsEnabledBuilder_ = null;
        }
        persistenceMode_ = 0;
        deletionProtection_ = false;
        announceHostnames_ = false;
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RestoreClusterRequest_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest(this);
        int from_bitField0_ = bitField0_;
        result.backupId_ = backupId_;
        result.name_ = name_;
        result.description_ = description_;
        result.labels_ = internalGetLabels();
        result.labels_.makeImmutable();
        result.environment_ = environment_;
        if (configSpecBuilder_ == null) {
          result.configSpec_ = configSpec_;
        } else {
          result.configSpec_ = configSpecBuilder_.build();
        }
        if (hostSpecsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            hostSpecs_ = java.util.Collections.unmodifiableList(hostSpecs_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.hostSpecs_ = hostSpecs_;
        } else {
          result.hostSpecs_ = hostSpecsBuilder_.build();
        }
        result.networkId_ = networkId_;
        result.folderId_ = folderId_;
        if (((bitField0_ & 0x00000004) != 0)) {
          securityGroupIds_ = securityGroupIds_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.securityGroupIds_ = securityGroupIds_;
        if (tlsEnabledBuilder_ == null) {
          result.tlsEnabled_ = tlsEnabled_;
        } else {
          result.tlsEnabled_ = tlsEnabledBuilder_.build();
        }
        result.persistenceMode_ = persistenceMode_;
        result.deletionProtection_ = deletionProtection_;
        result.announceHostnames_ = announceHostnames_;
        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.ClusterServiceOuterClass.RestoreClusterRequest) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest.getDefaultInstance()) return this;
        if (!other.getBackupId().isEmpty()) {
          backupId_ = other.backupId_;
          onChanged();
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (!other.getDescription().isEmpty()) {
          description_ = other.description_;
          onChanged();
        }
        internalGetMutableLabels().mergeFrom(
            other.internalGetLabels());
        if (other.environment_ != 0) {
          setEnvironmentValue(other.getEnvironmentValue());
        }
        if (other.hasConfigSpec()) {
          mergeConfigSpec(other.getConfigSpec());
        }
        if (hostSpecsBuilder_ == null) {
          if (!other.hostSpecs_.isEmpty()) {
            if (hostSpecs_.isEmpty()) {
              hostSpecs_ = other.hostSpecs_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureHostSpecsIsMutable();
              hostSpecs_.addAll(other.hostSpecs_);
            }
            onChanged();
          }
        } else {
          if (!other.hostSpecs_.isEmpty()) {
            if (hostSpecsBuilder_.isEmpty()) {
              hostSpecsBuilder_.dispose();
              hostSpecsBuilder_ = null;
              hostSpecs_ = other.hostSpecs_;
              bitField0_ = (bitField0_ & ~0x00000002);
              hostSpecsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getHostSpecsFieldBuilder() : null;
            } else {
              hostSpecsBuilder_.addAllMessages(other.hostSpecs_);
            }
          }
        }
        if (!other.getNetworkId().isEmpty()) {
          networkId_ = other.networkId_;
          onChanged();
        }
        if (!other.getFolderId().isEmpty()) {
          folderId_ = other.folderId_;
          onChanged();
        }
        if (!other.securityGroupIds_.isEmpty()) {
          if (securityGroupIds_.isEmpty()) {
            securityGroupIds_ = other.securityGroupIds_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureSecurityGroupIdsIsMutable();
            securityGroupIds_.addAll(other.securityGroupIds_);
          }
          onChanged();
        }
        if (other.hasTlsEnabled()) {
          mergeTlsEnabled(other.getTlsEnabled());
        }
        if (other.persistenceMode_ != 0) {
          setPersistenceModeValue(other.getPersistenceModeValue());
        }
        if (other.getDeletionProtection() != false) {
          setDeletionProtection(other.getDeletionProtection());
        }
        if (other.getAnnounceHostnames() != false) {
          setAnnounceHostnames(other.getAnnounceHostnames());
        }
        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.ClusterServiceOuterClass.RestoreClusterRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private java.lang.Object backupId_ = "";
      /**
       * 
       * ID of the backup to create a cluster from.
       * To get the backup ID, use a [ClusterService.ListBackups] request.
       *  
       *
       * string backup_id = 1 [(.yandex.cloud.required) = true];
       * @return The backupId.
       */
      public java.lang.String getBackupId() {
        java.lang.Object ref = backupId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          backupId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the backup to create a cluster from.
       * To get the backup ID, use a [ClusterService.ListBackups] request.
       *  
       *
       * string backup_id = 1 [(.yandex.cloud.required) = true];
       * @return The bytes for backupId.
       */
      public com.google.protobuf.ByteString
          getBackupIdBytes() {
        java.lang.Object ref = backupId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          backupId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the backup to create a cluster from.
       * To get the backup ID, use a [ClusterService.ListBackups] request.
       *  
       *
       * string backup_id = 1 [(.yandex.cloud.required) = true];
       * @param value The backupId to set.
       * @return This builder for chaining.
       */
      public Builder setBackupId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        backupId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the backup to create a cluster from.
       * To get the backup ID, use a [ClusterService.ListBackups] request.
       *  
       *
       * string backup_id = 1 [(.yandex.cloud.required) = true];
       * @return This builder for chaining.
       */
      public Builder clearBackupId() {
        
        backupId_ = getDefaultInstance().getBackupId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the backup to create a cluster from.
       * To get the backup ID, use a [ClusterService.ListBackups] request.
       *  
       *
       * string backup_id = 1 [(.yandex.cloud.required) = true];
       * @param value The bytes for backupId to set.
       * @return This builder for chaining.
       */
      public Builder setBackupIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        backupId_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object name_ = "";
      /**
       * 
       * Name of the new Redis cluster. The name must be unique within the folder.
       *  
       *
       * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * Name of the new Redis cluster. The name must be unique within the folder.
       *  
       *
       * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * Name of the new Redis cluster. The name must be unique within the folder.
       *  
       *
       * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Name of the new Redis cluster. The name must be unique within the folder.
       *  
       *
       * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * 
       * Name of the new Redis cluster. The name must be unique within the folder.
       *  
       *
       * string name = 2 [(.yandex.cloud.required) = true, (.yandex.cloud.pattern) = "[a-zA-Z0-9_-]*", (.yandex.cloud.length) = "<=63"];
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        name_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object description_ = "";
      /**
       * 
       * Description of the new Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @return The description.
       */
      public java.lang.String getDescription() {
        java.lang.Object ref = description_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          description_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * Description of the new Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @return The bytes for description.
       */
      public com.google.protobuf.ByteString
          getDescriptionBytes() {
        java.lang.Object ref = description_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          description_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * Description of the new Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @param value The description to set.
       * @return This builder for chaining.
       */
      public Builder setDescription(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        description_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Description of the new Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @return This builder for chaining.
       */
      public Builder clearDescription() {
        
        description_ = getDefaultInstance().getDescription();
        onChanged();
        return this;
      }
      /**
       * 
       * Description of the new Redis cluster.
       *  
       *
       * string description = 3 [(.yandex.cloud.length) = "<=256"];
       * @param value The bytes for description to set.
       * @return This builder for chaining.
       */
      public Builder setDescriptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        description_ = value;
        onChanged();
        return this;
      }
      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> labels_;
      private com.google.protobuf.MapField
      internalGetLabels() {
        if (labels_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              LabelsDefaultEntryHolder.defaultEntry);
        }
        return labels_;
      }
      private com.google.protobuf.MapField
      internalGetMutableLabels() {
        onChanged();;
        if (labels_ == null) {
          labels_ = com.google.protobuf.MapField.newMapField(
              LabelsDefaultEntryHolder.defaultEntry);
        }
        if (!labels_.isMutable()) {
          labels_ = labels_.copy();
        }
        return labels_;
      }
      public int getLabelsCount() {
        return internalGetLabels().getMap().size();
      }
      /**
       * 
       * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      @java.lang.Override
      public boolean containsLabels(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetLabels().getMap().containsKey(key);
      }
      /**
       * Use {@link #getLabelsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map getLabels() {
        return getLabelsMap();
      }
      /**
       * 
       * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      @java.lang.Override
      public java.util.Map getLabelsMap() {
        return internalGetLabels().getMap();
      }
      /**
       * 
       * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      @java.lang.Override
      public java.lang.String getLabelsOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map =
            internalGetLabels().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * 
       * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      @java.lang.Override
      public java.lang.String getLabelsOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map =
            internalGetLabels().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      public Builder clearLabels() {
        internalGetMutableLabels().getMutableMap()
            .clear();
        return this;
      }
      /**
       * 
       * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      public Builder removeLabels(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableLabels().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map
      getMutableLabels() {
        return internalGetMutableLabels().getMutableMap();
      }
      /**
       * 
       * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      public Builder putLabels(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) {
  throw new NullPointerException("map value");
}
        internalGetMutableLabels().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * 
       * Custom labels for the Redis cluster as `` key:value `` pairs. Maximum 64 per cluster.
       * For example, "project": "mvp" or "source": "dictionary".
       *  
       *
       * map<string, string> labels = 4 [(.yandex.cloud.pattern) = "[-_0-9a-z]*", (.yandex.cloud.size) = "<=64", (.yandex.cloud.length) = "<=63", (.yandex.cloud.map_key) = { ... }
       */
      public Builder putAllLabels(
          java.util.Map values) {
        internalGetMutableLabels().getMutableMap()
            .putAll(values);
        return this;
      }
      private int environment_ = 0;
      /**
       * 
       * Deployment environment of the new Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
       * @return The enum numeric value on the wire for environment.
       */
      @java.lang.Override public int getEnvironmentValue() {
        return environment_;
      }
      /**
       * 
       * Deployment environment of the new Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
       * @param value The enum numeric value on the wire for environment to set.
       * @return This builder for chaining.
       */
      public Builder setEnvironmentValue(int value) {
        
        environment_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Deployment environment of the new Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
       * @return The environment.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment getEnvironment() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment result = yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment.valueOf(environment_);
        return result == null ? yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment.UNRECOGNIZED : result;
      }
      /**
       * 
       * Deployment environment of the new Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
       * @param value The environment to set.
       * @return This builder for chaining.
       */
      public Builder setEnvironment(yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.Environment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        environment_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Deployment environment of the new Redis cluster.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.Environment environment = 5 [(.yandex.cloud.required) = true];
       * @return This builder for chaining.
       */
      public Builder clearEnvironment() {
        
        environment_ = 0;
        onChanged();
        return this;
      }
      private yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec configSpec_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder> configSpecBuilder_;
      /**
       * 
       * Configuration for the Redis cluster to be created.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       * @return Whether the configSpec field is set.
       */
      public boolean hasConfigSpec() {
        return configSpecBuilder_ != null || configSpec_ != null;
      }
      /**
       * 
       * Configuration for the Redis cluster to be created.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       * @return The configSpec.
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec getConfigSpec() {
        if (configSpecBuilder_ == null) {
          return configSpec_ == null ? yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.getDefaultInstance() : configSpec_;
        } else {
          return configSpecBuilder_.getMessage();
        }
      }
      /**
       * 
       * Configuration for the Redis cluster to be created.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       */
      public Builder setConfigSpec(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec value) {
        if (configSpecBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          configSpec_ = value;
          onChanged();
        } else {
          configSpecBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Configuration for the Redis cluster to be created.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       */
      public Builder setConfigSpec(
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder builderForValue) {
        if (configSpecBuilder_ == null) {
          configSpec_ = builderForValue.build();
          onChanged();
        } else {
          configSpecBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Configuration for the Redis cluster to be created.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       */
      public Builder mergeConfigSpec(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec value) {
        if (configSpecBuilder_ == null) {
          if (configSpec_ != null) {
            configSpec_ =
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.newBuilder(configSpec_).mergeFrom(value).buildPartial();
          } else {
            configSpec_ = value;
          }
          onChanged();
        } else {
          configSpecBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Configuration for the Redis cluster to be created.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       */
      public Builder clearConfigSpec() {
        if (configSpecBuilder_ == null) {
          configSpec_ = null;
          onChanged();
        } else {
          configSpec_ = null;
          configSpecBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Configuration for the Redis cluster to be created.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder getConfigSpecBuilder() {
        
        onChanged();
        return getConfigSpecFieldBuilder().getBuilder();
      }
      /**
       * 
       * Configuration for the Redis cluster to be created.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder getConfigSpecOrBuilder() {
        if (configSpecBuilder_ != null) {
          return configSpecBuilder_.getMessageOrBuilder();
        } else {
          return configSpec_ == null ?
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.getDefaultInstance() : configSpec_;
        }
      }
      /**
       * 
       * Configuration for the Redis cluster to be created.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.ConfigSpec config_spec = 6 [(.yandex.cloud.required) = true];
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder> 
          getConfigSpecFieldBuilder() {
        if (configSpecBuilder_ == null) {
          configSpecBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.ConfigSpecOrBuilder>(
                  getConfigSpec(),
                  getParentForChildren(),
                  isClean());
          configSpec_ = null;
        }
        return configSpecBuilder_;
      }
      private java.util.List hostSpecs_ =
        java.util.Collections.emptyList();
      private void ensureHostSpecsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          hostSpecs_ = new java.util.ArrayList(hostSpecs_);
          bitField0_ |= 0x00000002;
         }
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder> hostSpecsBuilder_;
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public java.util.List getHostSpecsList() {
        if (hostSpecsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(hostSpecs_);
        } else {
          return hostSpecsBuilder_.getMessageList();
        }
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public int getHostSpecsCount() {
        if (hostSpecsBuilder_ == null) {
          return hostSpecs_.size();
        } else {
          return hostSpecsBuilder_.getCount();
        }
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec getHostSpecs(int index) {
        if (hostSpecsBuilder_ == null) {
          return hostSpecs_.get(index);
        } else {
          return hostSpecsBuilder_.getMessage(index);
        }
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder setHostSpecs(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec value) {
        if (hostSpecsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHostSpecsIsMutable();
          hostSpecs_.set(index, value);
          onChanged();
        } else {
          hostSpecsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder setHostSpecs(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder builderForValue) {
        if (hostSpecsBuilder_ == null) {
          ensureHostSpecsIsMutable();
          hostSpecs_.set(index, builderForValue.build());
          onChanged();
        } else {
          hostSpecsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addHostSpecs(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec value) {
        if (hostSpecsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHostSpecsIsMutable();
          hostSpecs_.add(value);
          onChanged();
        } else {
          hostSpecsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addHostSpecs(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec value) {
        if (hostSpecsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHostSpecsIsMutable();
          hostSpecs_.add(index, value);
          onChanged();
        } else {
          hostSpecsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addHostSpecs(
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder builderForValue) {
        if (hostSpecsBuilder_ == null) {
          ensureHostSpecsIsMutable();
          hostSpecs_.add(builderForValue.build());
          onChanged();
        } else {
          hostSpecsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addHostSpecs(
          int index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder builderForValue) {
        if (hostSpecsBuilder_ == null) {
          ensureHostSpecsIsMutable();
          hostSpecs_.add(index, builderForValue.build());
          onChanged();
        } else {
          hostSpecsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder addAllHostSpecs(
          java.lang.Iterable extends yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec> values) {
        if (hostSpecsBuilder_ == null) {
          ensureHostSpecsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, hostSpecs_);
          onChanged();
        } else {
          hostSpecsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder clearHostSpecs() {
        if (hostSpecsBuilder_ == null) {
          hostSpecs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          hostSpecsBuilder_.clear();
        }
        return this;
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public Builder removeHostSpecs(int index) {
        if (hostSpecsBuilder_ == null) {
          ensureHostSpecsIsMutable();
          hostSpecs_.remove(index);
          onChanged();
        } else {
          hostSpecsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder getHostSpecsBuilder(
          int index) {
        return getHostSpecsFieldBuilder().getBuilder(index);
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder getHostSpecsOrBuilder(
          int index) {
        if (hostSpecsBuilder_ == null) {
          return hostSpecs_.get(index);  } else {
          return hostSpecsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public java.util.List extends yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder> 
           getHostSpecsOrBuilderList() {
        if (hostSpecsBuilder_ != null) {
          return hostSpecsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(hostSpecs_);
        }
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder addHostSpecsBuilder() {
        return getHostSpecsFieldBuilder().addBuilder(
            yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.getDefaultInstance());
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder addHostSpecsBuilder(
          int index) {
        return getHostSpecsFieldBuilder().addBuilder(
            index, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.getDefaultInstance());
      }
      /**
       * 
       * Configurations for Redis hosts that should be created for
       * the cluster that is being created from the backup.
       *  
       *
       * repeated .yandex.cloud.mdb.redis.v1.HostSpec host_specs = 7 [(.yandex.cloud.size) = ">0"];
       */
      public java.util.List 
           getHostSpecsBuilderList() {
        return getHostSpecsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder> 
          getHostSpecsFieldBuilder() {
        if (hostSpecsBuilder_ == null) {
          hostSpecsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpec.Builder, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.HostSpecOrBuilder>(
                  hostSpecs_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          hostSpecs_ = null;
        }
        return hostSpecsBuilder_;
      }
      private java.lang.Object networkId_ = "";
      /**
       * 
       * ID of the network to create the Redis cluster in.
       *  
       *
       * string network_id = 8 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The networkId.
       */
      public java.lang.String getNetworkId() {
        java.lang.Object ref = networkId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          networkId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the network to create the Redis cluster in.
       *  
       *
       * string network_id = 8 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for networkId.
       */
      public com.google.protobuf.ByteString
          getNetworkIdBytes() {
        java.lang.Object ref = networkId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          networkId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the network to create the Redis cluster in.
       *  
       *
       * string network_id = 8 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The networkId to set.
       * @return This builder for chaining.
       */
      public Builder setNetworkId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        networkId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the network to create the Redis cluster in.
       *  
       *
       * string network_id = 8 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearNetworkId() {
        
        networkId_ = getDefaultInstance().getNetworkId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the network to create the Redis cluster in.
       *  
       *
       * string network_id = 8 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for networkId to set.
       * @return This builder for chaining.
       */
      public Builder setNetworkIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        networkId_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object folderId_ = "";
      /**
       * 
       * ID of the folder to create the Redis cluster in.
       *  
       *
       * string folder_id = 9 [(.yandex.cloud.length) = "<=50"];
       * @return The folderId.
       */
      public java.lang.String getFolderId() {
        java.lang.Object ref = folderId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          folderId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the folder to create the Redis cluster in.
       *  
       *
       * string folder_id = 9 [(.yandex.cloud.length) = "<=50"];
       * @return The bytes for folderId.
       */
      public com.google.protobuf.ByteString
          getFolderIdBytes() {
        java.lang.Object ref = folderId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          folderId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the folder to create the Redis cluster in.
       *  
       *
       * string folder_id = 9 [(.yandex.cloud.length) = "<=50"];
       * @param value The folderId to set.
       * @return This builder for chaining.
       */
      public Builder setFolderId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        folderId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the folder to create the Redis cluster in.
       *  
       *
       * string folder_id = 9 [(.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearFolderId() {
        
        folderId_ = getDefaultInstance().getFolderId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the folder to create the Redis cluster in.
       *  
       *
       * string folder_id = 9 [(.yandex.cloud.length) = "<=50"];
       * @param value The bytes for folderId to set.
       * @return This builder for chaining.
       */
      public Builder setFolderIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        folderId_ = value;
        onChanged();
        return this;
      }
      private com.google.protobuf.LazyStringList securityGroupIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureSecurityGroupIdsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          securityGroupIds_ = new com.google.protobuf.LazyStringArrayList(securityGroupIds_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 10;
       * @return A list containing the securityGroupIds.
       */
      public com.google.protobuf.ProtocolStringList
          getSecurityGroupIdsList() {
        return securityGroupIds_.getUnmodifiableView();
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 10;
       * @return The count of securityGroupIds.
       */
      public int getSecurityGroupIdsCount() {
        return securityGroupIds_.size();
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 10;
       * @param index The index of the element to return.
       * @return The securityGroupIds at the given index.
       */
      public java.lang.String getSecurityGroupIds(int index) {
        return securityGroupIds_.get(index);
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 10;
       * @param index The index of the value to return.
       * @return The bytes of the securityGroupIds at the given index.
       */
      public com.google.protobuf.ByteString
          getSecurityGroupIdsBytes(int index) {
        return securityGroupIds_.getByteString(index);
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 10;
       * @param index The index to set the value at.
       * @param value The securityGroupIds to set.
       * @return This builder for chaining.
       */
      public Builder setSecurityGroupIds(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureSecurityGroupIdsIsMutable();
        securityGroupIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 10;
       * @param value The securityGroupIds to add.
       * @return This builder for chaining.
       */
      public Builder addSecurityGroupIds(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureSecurityGroupIdsIsMutable();
        securityGroupIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 10;
       * @param values The securityGroupIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllSecurityGroupIds(
          java.lang.Iterable values) {
        ensureSecurityGroupIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, securityGroupIds_);
        onChanged();
        return this;
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 10;
       * @return This builder for chaining.
       */
      public Builder clearSecurityGroupIds() {
        securityGroupIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * 
       * User security groups
       *  
       *
       * repeated string security_group_ids = 10;
       * @param value The bytes of the securityGroupIds to add.
       * @return This builder for chaining.
       */
      public Builder addSecurityGroupIdsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureSecurityGroupIdsIsMutable();
        securityGroupIds_.add(value);
        onChanged();
        return this;
      }
      private com.google.protobuf.BoolValue tlsEnabled_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> tlsEnabledBuilder_;
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 11;
       * @return Whether the tlsEnabled field is set.
       */
      public boolean hasTlsEnabled() {
        return tlsEnabledBuilder_ != null || tlsEnabled_ != null;
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 11;
       * @return The tlsEnabled.
       */
      public com.google.protobuf.BoolValue getTlsEnabled() {
        if (tlsEnabledBuilder_ == null) {
          return tlsEnabled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : tlsEnabled_;
        } else {
          return tlsEnabledBuilder_.getMessage();
        }
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 11;
       */
      public Builder setTlsEnabled(com.google.protobuf.BoolValue value) {
        if (tlsEnabledBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tlsEnabled_ = value;
          onChanged();
        } else {
          tlsEnabledBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 11;
       */
      public Builder setTlsEnabled(
          com.google.protobuf.BoolValue.Builder builderForValue) {
        if (tlsEnabledBuilder_ == null) {
          tlsEnabled_ = builderForValue.build();
          onChanged();
        } else {
          tlsEnabledBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 11;
       */
      public Builder mergeTlsEnabled(com.google.protobuf.BoolValue value) {
        if (tlsEnabledBuilder_ == null) {
          if (tlsEnabled_ != null) {
            tlsEnabled_ =
              com.google.protobuf.BoolValue.newBuilder(tlsEnabled_).mergeFrom(value).buildPartial();
          } else {
            tlsEnabled_ = value;
          }
          onChanged();
        } else {
          tlsEnabledBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 11;
       */
      public Builder clearTlsEnabled() {
        if (tlsEnabledBuilder_ == null) {
          tlsEnabled_ = null;
          onChanged();
        } else {
          tlsEnabled_ = null;
          tlsEnabledBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 11;
       */
      public com.google.protobuf.BoolValue.Builder getTlsEnabledBuilder() {
        
        onChanged();
        return getTlsEnabledFieldBuilder().getBuilder();
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 11;
       */
      public com.google.protobuf.BoolValueOrBuilder getTlsEnabledOrBuilder() {
        if (tlsEnabledBuilder_ != null) {
          return tlsEnabledBuilder_.getMessageOrBuilder();
        } else {
          return tlsEnabled_ == null ?
              com.google.protobuf.BoolValue.getDefaultInstance() : tlsEnabled_;
        }
      }
      /**
       * 
       * TLS port and functionality on\off
       *  
       *
       * .google.protobuf.BoolValue tls_enabled = 11;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> 
          getTlsEnabledFieldBuilder() {
        if (tlsEnabledBuilder_ == null) {
          tlsEnabledBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>(
                  getTlsEnabled(),
                  getParentForChildren(),
                  isClean());
          tlsEnabled_ = null;
        }
        return tlsEnabledBuilder_;
      }
      private int persistenceMode_ = 0;
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 12;
       * @return The enum numeric value on the wire for persistenceMode.
       */
      @java.lang.Override public int getPersistenceModeValue() {
        return persistenceMode_;
      }
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 12;
       * @param value The enum numeric value on the wire for persistenceMode to set.
       * @return This builder for chaining.
       */
      public Builder setPersistenceModeValue(int value) {
        
        persistenceMode_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 12;
       * @return The persistenceMode.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode getPersistenceMode() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode result = yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.valueOf(persistenceMode_);
        return result == null ? yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode.UNRECOGNIZED : result;
      }
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 12;
       * @param value The persistenceMode to set.
       * @return This builder for chaining.
       */
      public Builder setPersistenceMode(yandex.cloud.api.mdb.redis.v1.ClusterOuterClass.Cluster.PersistenceMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        persistenceMode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Persistence mode
       *  
       *
       * .yandex.cloud.mdb.redis.v1.Cluster.PersistenceMode persistence_mode = 12;
       * @return This builder for chaining.
       */
      public Builder clearPersistenceMode() {
        
        persistenceMode_ = 0;
        onChanged();
        return this;
      }
      private boolean deletionProtection_ ;
      /**
       * 
       * Deletion Protection inhibits deletion of the cluster
       *  
       *
       * bool deletion_protection = 13;
       * @return The deletionProtection.
       */
      @java.lang.Override
      public boolean getDeletionProtection() {
        return deletionProtection_;
      }
      /**
       * 
       * Deletion Protection inhibits deletion of the cluster
       *  
       *
       * bool deletion_protection = 13;
       * @param value The deletionProtection to set.
       * @return This builder for chaining.
       */
      public Builder setDeletionProtection(boolean value) {
        
        deletionProtection_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Deletion Protection inhibits deletion of the cluster
       *  
       *
       * bool deletion_protection = 13;
       * @return This builder for chaining.
       */
      public Builder clearDeletionProtection() {
        
        deletionProtection_ = false;
        onChanged();
        return this;
      }
      private boolean announceHostnames_ ;
      /**
       * 
       * Enable FQDN instead of ip
       *  
       *
       * bool announce_hostnames = 14;
       * @return The announceHostnames.
       */
      @java.lang.Override
      public boolean getAnnounceHostnames() {
        return announceHostnames_;
      }
      /**
       * 
       * Enable FQDN instead of ip
       *  
       *
       * bool announce_hostnames = 14;
       * @param value The announceHostnames to set.
       * @return This builder for chaining.
       */
      public Builder setAnnounceHostnames(boolean value) {
        
        announceHostnames_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Enable FQDN instead of ip
       *  
       *
       * bool announce_hostnames = 14;
       * @return This builder for chaining.
       */
      public Builder clearAnnounceHostnames() {
        
        announceHostnames_ = false;
        onChanged();
        return this;
      }
      @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.RestoreClusterRequest)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.RestoreClusterRequest)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public RestoreClusterRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RestoreClusterRequest(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.ClusterServiceOuterClass.RestoreClusterRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface RestoreClusterMetadataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.RestoreClusterMetadata)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the new Redis cluster that is being created from a backup.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the new Redis cluster that is being created from a backup.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
    /**
     * 
     * ID of the backup that is being used for creating a cluster.
     *  
     *
     * string backup_id = 2;
     * @return The backupId.
     */
    java.lang.String getBackupId();
    /**
     * 
     * ID of the backup that is being used for creating a cluster.
     *  
     *
     * string backup_id = 2;
     * @return The bytes for backupId.
     */
    com.google.protobuf.ByteString
        getBackupIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.RestoreClusterMetadata}
   */
  public static final class RestoreClusterMetadata extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.RestoreClusterMetadata)
      RestoreClusterMetadataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RestoreClusterMetadata.newBuilder() to construct.
    private RestoreClusterMetadata(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private RestoreClusterMetadata() {
      clusterId_ = "";
      backupId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RestoreClusterMetadata();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RestoreClusterMetadata(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              backupId_ = s;
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RestoreClusterMetadata_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RestoreClusterMetadata_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the new Redis cluster that is being created from a backup.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the new Redis cluster that is being created from a backup.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int BACKUP_ID_FIELD_NUMBER = 2;
    private volatile java.lang.Object backupId_;
    /**
     * 
     * ID of the backup that is being used for creating a cluster.
     *  
     *
     * string backup_id = 2;
     * @return The backupId.
     */
    @java.lang.Override
    public java.lang.String getBackupId() {
      java.lang.Object ref = backupId_;
      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();
        backupId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the backup that is being used for creating a cluster.
     *  
     *
     * string backup_id = 2;
     * @return The bytes for backupId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBackupIdBytes() {
      java.lang.Object ref = backupId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        backupId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(backupId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, backupId_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(backupId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, backupId_);
      }
      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.ClusterServiceOuterClass.RestoreClusterMetadata)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) return false;
      if (!getBackupId()
          .equals(other.getBackupId())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (37 * hash) + BACKUP_ID_FIELD_NUMBER;
      hash = (53 * hash) + getBackupId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata 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.ClusterServiceOuterClass.RestoreClusterMetadata parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata 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.ClusterServiceOuterClass.RestoreClusterMetadata parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata 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.ClusterServiceOuterClass.RestoreClusterMetadata 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.ClusterServiceOuterClass.RestoreClusterMetadata 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.ClusterServiceOuterClass.RestoreClusterMetadata 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.ClusterServiceOuterClass.RestoreClusterMetadata 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.ClusterServiceOuterClass.RestoreClusterMetadata 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.ClusterServiceOuterClass.RestoreClusterMetadata 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.ClusterServiceOuterClass.RestoreClusterMetadata 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.RestoreClusterMetadata}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.RestoreClusterMetadata)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RestoreClusterMetadata_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RestoreClusterMetadata_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata.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();
        clusterId_ = "";
        backupId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RestoreClusterMetadata_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata(this);
        result.clusterId_ = clusterId_;
        result.backupId_ = backupId_;
        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.ClusterServiceOuterClass.RestoreClusterMetadata) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        if (!other.getBackupId().isEmpty()) {
          backupId_ = other.backupId_;
          onChanged();
        }
        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.ClusterServiceOuterClass.RestoreClusterMetadata parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the new Redis cluster that is being created from a backup.
       *  
       *
       * string cluster_id = 1;
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the new Redis cluster that is being created from a backup.
       *  
       *
       * string cluster_id = 1;
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the new Redis cluster that is being created from a backup.
       *  
       *
       * string cluster_id = 1;
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the new Redis cluster that is being created from a backup.
       *  
       *
       * string cluster_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the new Redis cluster that is being created from a backup.
       *  
       *
       * string cluster_id = 1;
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object backupId_ = "";
      /**
       * 
       * ID of the backup that is being used for creating a cluster.
       *  
       *
       * string backup_id = 2;
       * @return The backupId.
       */
      public java.lang.String getBackupId() {
        java.lang.Object ref = backupId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          backupId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the backup that is being used for creating a cluster.
       *  
       *
       * string backup_id = 2;
       * @return The bytes for backupId.
       */
      public com.google.protobuf.ByteString
          getBackupIdBytes() {
        java.lang.Object ref = backupId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          backupId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the backup that is being used for creating a cluster.
       *  
       *
       * string backup_id = 2;
       * @param value The backupId to set.
       * @return This builder for chaining.
       */
      public Builder setBackupId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        backupId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the backup that is being used for creating a cluster.
       *  
       *
       * string backup_id = 2;
       * @return This builder for chaining.
       */
      public Builder clearBackupId() {
        
        backupId_ = getDefaultInstance().getBackupId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the backup that is being used for creating a cluster.
       *  
       *
       * string backup_id = 2;
       * @param value The bytes for backupId to set.
       * @return This builder for chaining.
       */
      public Builder setBackupIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        backupId_ = value;
        onChanged();
        return this;
      }
      @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.RestoreClusterMetadata)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.RestoreClusterMetadata)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RestoreClusterMetadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public RestoreClusterMetadata parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RestoreClusterMetadata(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.ClusterServiceOuterClass.RestoreClusterMetadata getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface StartClusterFailoverRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.StartClusterFailoverRequest)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster to start failover on.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster to start failover on.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
     * @return A list containing the hostNames.
     */
    java.util.List
        getHostNamesList();
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
     * @return The count of hostNames.
     */
    int getHostNamesCount();
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
     * @param index The index of the element to return.
     * @return The hostNames at the given index.
     */
    java.lang.String getHostNames(int index);
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
     * @param index The index of the value to return.
     * @return The bytes of the hostNames at the given index.
     */
    com.google.protobuf.ByteString
        getHostNamesBytes(int index);
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.StartClusterFailoverRequest}
   */
  public static final class StartClusterFailoverRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.StartClusterFailoverRequest)
      StartClusterFailoverRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StartClusterFailoverRequest.newBuilder() to construct.
    private StartClusterFailoverRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private StartClusterFailoverRequest() {
      clusterId_ = "";
      hostNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new StartClusterFailoverRequest();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StartClusterFailoverRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                hostNames_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              hostNames_.add(s);
              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 {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          hostNames_ = hostNames_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterFailoverRequest_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterFailoverRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster to start failover on.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster to start failover on.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int HOST_NAMES_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList hostNames_;
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
     * @return A list containing the hostNames.
     */
    public com.google.protobuf.ProtocolStringList
        getHostNamesList() {
      return hostNames_;
    }
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
     * @return The count of hostNames.
     */
    public int getHostNamesCount() {
      return hostNames_.size();
    }
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
     * @param index The index of the element to return.
     * @return The hostNames at the given index.
     */
    public java.lang.String getHostNames(int index) {
      return hostNames_.get(index);
    }
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
     * @param index The index of the value to return.
     * @return The bytes of the hostNames at the given index.
     */
    public com.google.protobuf.ByteString
        getHostNamesBytes(int index) {
      return hostNames_.getByteString(index);
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      for (int i = 0; i < hostNames_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, hostNames_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < hostNames_.size(); i++) {
          dataSize += computeStringSizeNoTag(hostNames_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getHostNamesList().size();
      }
      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.ClusterServiceOuterClass.StartClusterFailoverRequest)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) return false;
      if (!getHostNamesList()
          .equals(other.getHostNamesList())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      if (getHostNamesCount() > 0) {
        hash = (37 * hash) + HOST_NAMES_FIELD_NUMBER;
        hash = (53 * hash) + getHostNamesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest 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.ClusterServiceOuterClass.StartClusterFailoverRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest 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.ClusterServiceOuterClass.StartClusterFailoverRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest 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.ClusterServiceOuterClass.StartClusterFailoverRequest 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.ClusterServiceOuterClass.StartClusterFailoverRequest 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.ClusterServiceOuterClass.StartClusterFailoverRequest 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.ClusterServiceOuterClass.StartClusterFailoverRequest 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.ClusterServiceOuterClass.StartClusterFailoverRequest 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.ClusterServiceOuterClass.StartClusterFailoverRequest 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.ClusterServiceOuterClass.StartClusterFailoverRequest 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.StartClusterFailoverRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.StartClusterFailoverRequest)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterFailoverRequest_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterFailoverRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest.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();
        clusterId_ = "";
        hostNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterFailoverRequest_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest(this);
        int from_bitField0_ = bitField0_;
        result.clusterId_ = clusterId_;
        if (((bitField0_ & 0x00000001) != 0)) {
          hostNames_ = hostNames_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.hostNames_ = hostNames_;
        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.ClusterServiceOuterClass.StartClusterFailoverRequest) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        if (!other.hostNames_.isEmpty()) {
          if (hostNames_.isEmpty()) {
            hostNames_ = other.hostNames_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureHostNamesIsMutable();
            hostNames_.addAll(other.hostNames_);
          }
          onChanged();
        }
        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.ClusterServiceOuterClass.StartClusterFailoverRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster to start failover on.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to start failover on.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to start failover on.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to start failover on.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to start failover on.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      private com.google.protobuf.LazyStringList hostNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureHostNamesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          hostNames_ = new com.google.protobuf.LazyStringArrayList(hostNames_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
       * @return A list containing the hostNames.
       */
      public com.google.protobuf.ProtocolStringList
          getHostNamesList() {
        return hostNames_.getUnmodifiableView();
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
       * @return The count of hostNames.
       */
      public int getHostNamesCount() {
        return hostNames_.size();
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
       * @param index The index of the element to return.
       * @return The hostNames at the given index.
       */
      public java.lang.String getHostNames(int index) {
        return hostNames_.get(index);
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
       * @param index The index of the value to return.
       * @return The bytes of the hostNames at the given index.
       */
      public com.google.protobuf.ByteString
          getHostNamesBytes(int index) {
        return hostNames_.getByteString(index);
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
       * @param index The index to set the value at.
       * @param value The hostNames to set.
       * @return This builder for chaining.
       */
      public Builder setHostNames(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureHostNamesIsMutable();
        hostNames_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
       * @param value The hostNames to add.
       * @return This builder for chaining.
       */
      public Builder addHostNames(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureHostNamesIsMutable();
        hostNames_.add(value);
        onChanged();
        return this;
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
       * @param values The hostNames to add.
       * @return This builder for chaining.
       */
      public Builder addAllHostNames(
          java.lang.Iterable values) {
        ensureHostNamesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, hostNames_);
        onChanged();
        return this;
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
       * @return This builder for chaining.
       */
      public Builder clearHostNames() {
        hostNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2 [(.yandex.cloud.length) = "<=253"];
       * @param value The bytes of the hostNames to add.
       * @return This builder for chaining.
       */
      public Builder addHostNamesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureHostNamesIsMutable();
        hostNames_.add(value);
        onChanged();
        return this;
      }
      @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.StartClusterFailoverRequest)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.StartClusterFailoverRequest)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public StartClusterFailoverRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StartClusterFailoverRequest(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.ClusterServiceOuterClass.StartClusterFailoverRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface StartClusterFailoverMetadataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.StartClusterFailoverMetadata)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster on which failover will be initiated.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster on which failover will be initiated.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2;
     * @return A list containing the hostNames.
     */
    java.util.List
        getHostNamesList();
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2;
     * @return The count of hostNames.
     */
    int getHostNamesCount();
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2;
     * @param index The index of the element to return.
     * @return The hostNames at the given index.
     */
    java.lang.String getHostNames(int index);
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2;
     * @param index The index of the value to return.
     * @return The bytes of the hostNames at the given index.
     */
    com.google.protobuf.ByteString
        getHostNamesBytes(int index);
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.StartClusterFailoverMetadata}
   */
  public static final class StartClusterFailoverMetadata extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.StartClusterFailoverMetadata)
      StartClusterFailoverMetadataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StartClusterFailoverMetadata.newBuilder() to construct.
    private StartClusterFailoverMetadata(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private StartClusterFailoverMetadata() {
      clusterId_ = "";
      hostNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new StartClusterFailoverMetadata();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StartClusterFailoverMetadata(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                hostNames_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              hostNames_.add(s);
              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 {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          hostNames_ = hostNames_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterFailoverMetadata_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterFailoverMetadata_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster on which failover will be initiated.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster on which failover will be initiated.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int HOST_NAMES_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList hostNames_;
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2;
     * @return A list containing the hostNames.
     */
    public com.google.protobuf.ProtocolStringList
        getHostNamesList() {
      return hostNames_;
    }
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2;
     * @return The count of hostNames.
     */
    public int getHostNamesCount() {
      return hostNames_.size();
    }
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2;
     * @param index The index of the element to return.
     * @return The hostNames at the given index.
     */
    public java.lang.String getHostNames(int index) {
      return hostNames_.get(index);
    }
    /**
     * 
     * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
     *  
     *
     * repeated string host_names = 2;
     * @param index The index of the value to return.
     * @return The bytes of the hostNames at the given index.
     */
    public com.google.protobuf.ByteString
        getHostNamesBytes(int index) {
      return hostNames_.getByteString(index);
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      for (int i = 0; i < hostNames_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, hostNames_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < hostNames_.size(); i++) {
          dataSize += computeStringSizeNoTag(hostNames_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getHostNamesList().size();
      }
      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.ClusterServiceOuterClass.StartClusterFailoverMetadata)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) return false;
      if (!getHostNamesList()
          .equals(other.getHostNamesList())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      if (getHostNamesCount() > 0) {
        hash = (37 * hash) + HOST_NAMES_FIELD_NUMBER;
        hash = (53 * hash) + getHostNamesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata 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.ClusterServiceOuterClass.StartClusterFailoverMetadata parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata 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.ClusterServiceOuterClass.StartClusterFailoverMetadata parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata 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.ClusterServiceOuterClass.StartClusterFailoverMetadata 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.ClusterServiceOuterClass.StartClusterFailoverMetadata 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.ClusterServiceOuterClass.StartClusterFailoverMetadata 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.ClusterServiceOuterClass.StartClusterFailoverMetadata 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.ClusterServiceOuterClass.StartClusterFailoverMetadata 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.ClusterServiceOuterClass.StartClusterFailoverMetadata 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.ClusterServiceOuterClass.StartClusterFailoverMetadata 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.StartClusterFailoverMetadata}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.StartClusterFailoverMetadata)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterFailoverMetadata_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterFailoverMetadata_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata.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();
        clusterId_ = "";
        hostNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_StartClusterFailoverMetadata_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata(this);
        int from_bitField0_ = bitField0_;
        result.clusterId_ = clusterId_;
        if (((bitField0_ & 0x00000001) != 0)) {
          hostNames_ = hostNames_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.hostNames_ = hostNames_;
        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.ClusterServiceOuterClass.StartClusterFailoverMetadata) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        if (!other.hostNames_.isEmpty()) {
          if (hostNames_.isEmpty()) {
            hostNames_ = other.hostNames_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureHostNamesIsMutable();
            hostNames_.addAll(other.hostNames_);
          }
          onChanged();
        }
        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.ClusterServiceOuterClass.StartClusterFailoverMetadata parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster on which failover will be initiated.
       *  
       *
       * string cluster_id = 1;
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster on which failover will be initiated.
       *  
       *
       * string cluster_id = 1;
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster on which failover will be initiated.
       *  
       *
       * string cluster_id = 1;
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster on which failover will be initiated.
       *  
       *
       * string cluster_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster on which failover will be initiated.
       *  
       *
       * string cluster_id = 1;
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      private com.google.protobuf.LazyStringList hostNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureHostNamesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          hostNames_ = new com.google.protobuf.LazyStringArrayList(hostNames_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2;
       * @return A list containing the hostNames.
       */
      public com.google.protobuf.ProtocolStringList
          getHostNamesList() {
        return hostNames_.getUnmodifiableView();
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2;
       * @return The count of hostNames.
       */
      public int getHostNamesCount() {
        return hostNames_.size();
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2;
       * @param index The index of the element to return.
       * @return The hostNames at the given index.
       */
      public java.lang.String getHostNames(int index) {
        return hostNames_.get(index);
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2;
       * @param index The index of the value to return.
       * @return The bytes of the hostNames at the given index.
       */
      public com.google.protobuf.ByteString
          getHostNamesBytes(int index) {
        return hostNames_.getByteString(index);
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2;
       * @param index The index to set the value at.
       * @param value The hostNames to set.
       * @return This builder for chaining.
       */
      public Builder setHostNames(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureHostNamesIsMutable();
        hostNames_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2;
       * @param value The hostNames to add.
       * @return This builder for chaining.
       */
      public Builder addHostNames(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureHostNamesIsMutable();
        hostNames_.add(value);
        onChanged();
        return this;
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2;
       * @param values The hostNames to add.
       * @return This builder for chaining.
       */
      public Builder addAllHostNames(
          java.lang.Iterable values) {
        ensureHostNamesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, hostNames_);
        onChanged();
        return this;
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2;
       * @return This builder for chaining.
       */
      public Builder clearHostNames() {
        hostNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * 
       * List of hostnames which should not be masters. Can be empty for sentinel clusters or can contain multiple hosts for sharded clusters.
       *  
       *
       * repeated string host_names = 2;
       * @param value The bytes of the hostNames to add.
       * @return This builder for chaining.
       */
      public Builder addHostNamesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureHostNamesIsMutable();
        hostNames_.add(value);
        onChanged();
        return this;
      }
      @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.StartClusterFailoverMetadata)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.StartClusterFailoverMetadata)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.StartClusterFailoverMetadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public StartClusterFailoverMetadata parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StartClusterFailoverMetadata(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.ClusterServiceOuterClass.StartClusterFailoverMetadata getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface RescheduleMaintenanceRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the Redis cluster to reschedule the maintenance operation for.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the Redis cluster to reschedule the maintenance operation for.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
    /**
     * 
     * The type of reschedule request.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest.RescheduleType reschedule_type = 2 [(.yandex.cloud.required) = true];
     * @return The enum numeric value on the wire for rescheduleType.
     */
    int getRescheduleTypeValue();
    /**
     * 
     * The type of reschedule request.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest.RescheduleType reschedule_type = 2 [(.yandex.cloud.required) = true];
     * @return The rescheduleType.
     */
    yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.RescheduleType getRescheduleType();
    /**
     * 
     * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
     *  
     *
     * .google.protobuf.Timestamp delayed_until = 3;
     * @return Whether the delayedUntil field is set.
     */
    boolean hasDelayedUntil();
    /**
     * 
     * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
     *  
     *
     * .google.protobuf.Timestamp delayed_until = 3;
     * @return The delayedUntil.
     */
    com.google.protobuf.Timestamp getDelayedUntil();
    /**
     * 
     * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
     *  
     *
     * .google.protobuf.Timestamp delayed_until = 3;
     */
    com.google.protobuf.TimestampOrBuilder getDelayedUntilOrBuilder();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest}
   */
  public static final class RescheduleMaintenanceRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest)
      RescheduleMaintenanceRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RescheduleMaintenanceRequest.newBuilder() to construct.
    private RescheduleMaintenanceRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private RescheduleMaintenanceRequest() {
      clusterId_ = "";
      rescheduleType_ = 0;
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RescheduleMaintenanceRequest();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RescheduleMaintenanceRequest(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              rescheduleType_ = rawValue;
              break;
            }
            case 26: {
              com.google.protobuf.Timestamp.Builder subBuilder = null;
              if (delayedUntil_ != null) {
                subBuilder = delayedUntil_.toBuilder();
              }
              delayedUntil_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(delayedUntil_);
                delayedUntil_ = 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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RescheduleMaintenanceRequest_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RescheduleMaintenanceRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.Builder.class);
    }
    /**
     * Protobuf enum {@code yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest.RescheduleType}
     */
    public enum RescheduleType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * RESCHEDULE_TYPE_UNSPECIFIED = 0;
       */
      RESCHEDULE_TYPE_UNSPECIFIED(0),
      /**
       * 
       * Start the maintenance operation immediately.
       *  
       *
       * IMMEDIATE = 1;
       */
      IMMEDIATE(1),
      /**
       * 
       * Start the maintenance operation within the next available maintenance window.
       *  
       *
       * NEXT_AVAILABLE_WINDOW = 2;
       */
      NEXT_AVAILABLE_WINDOW(2),
      /**
       * 
       * Start the maintenance operation at the specific time.
       *  
       *
       * SPECIFIC_TIME = 3;
       */
      SPECIFIC_TIME(3),
      UNRECOGNIZED(-1),
      ;
      /**
       * RESCHEDULE_TYPE_UNSPECIFIED = 0;
       */
      public static final int RESCHEDULE_TYPE_UNSPECIFIED_VALUE = 0;
      /**
       * 
       * Start the maintenance operation immediately.
       *  
       *
       * IMMEDIATE = 1;
       */
      public static final int IMMEDIATE_VALUE = 1;
      /**
       * 
       * Start the maintenance operation within the next available maintenance window.
       *  
       *
       * NEXT_AVAILABLE_WINDOW = 2;
       */
      public static final int NEXT_AVAILABLE_WINDOW_VALUE = 2;
      /**
       * 
       * Start the maintenance operation at the specific time.
       *  
       *
       * SPECIFIC_TIME = 3;
       */
      public static final int SPECIFIC_TIME_VALUE = 3;
      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 RescheduleType 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 RescheduleType forNumber(int value) {
        switch (value) {
          case 0: return RESCHEDULE_TYPE_UNSPECIFIED;
          case 1: return IMMEDIATE;
          case 2: return NEXT_AVAILABLE_WINDOW;
          case 3: return SPECIFIC_TIME;
          default: return null;
        }
      }
      public static com.google.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          RescheduleType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap() {
              public RescheduleType findValueByNumber(int number) {
                return RescheduleType.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.ClusterServiceOuterClass.RescheduleMaintenanceRequest.getDescriptor().getEnumTypes().get(0);
      }
      private static final RescheduleType[] VALUES = values();
      public static RescheduleType 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 RescheduleType(int value) {
        this.value = value;
      }
      // @@protoc_insertion_point(enum_scope:yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest.RescheduleType)
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the Redis cluster to reschedule the maintenance operation for.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the Redis cluster to reschedule the maintenance operation for.
     *  
     *
     * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int RESCHEDULE_TYPE_FIELD_NUMBER = 2;
    private int rescheduleType_;
    /**
     * 
     * The type of reschedule request.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest.RescheduleType reschedule_type = 2 [(.yandex.cloud.required) = true];
     * @return The enum numeric value on the wire for rescheduleType.
     */
    @java.lang.Override public int getRescheduleTypeValue() {
      return rescheduleType_;
    }
    /**
     * 
     * The type of reschedule request.
     *  
     *
     * .yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest.RescheduleType reschedule_type = 2 [(.yandex.cloud.required) = true];
     * @return The rescheduleType.
     */
    @java.lang.Override public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.RescheduleType getRescheduleType() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.RescheduleType result = yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.RescheduleType.valueOf(rescheduleType_);
      return result == null ? yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.RescheduleType.UNRECOGNIZED : result;
    }
    public static final int DELAYED_UNTIL_FIELD_NUMBER = 3;
    private com.google.protobuf.Timestamp delayedUntil_;
    /**
     * 
     * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
     *  
     *
     * .google.protobuf.Timestamp delayed_until = 3;
     * @return Whether the delayedUntil field is set.
     */
    @java.lang.Override
    public boolean hasDelayedUntil() {
      return delayedUntil_ != null;
    }
    /**
     * 
     * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
     *  
     *
     * .google.protobuf.Timestamp delayed_until = 3;
     * @return The delayedUntil.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getDelayedUntil() {
      return delayedUntil_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : delayedUntil_;
    }
    /**
     * 
     * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
     *  
     *
     * .google.protobuf.Timestamp delayed_until = 3;
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getDelayedUntilOrBuilder() {
      return getDelayedUntil();
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      if (rescheduleType_ != yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.RescheduleType.RESCHEDULE_TYPE_UNSPECIFIED.getNumber()) {
        output.writeEnum(2, rescheduleType_);
      }
      if (delayedUntil_ != null) {
        output.writeMessage(3, getDelayedUntil());
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      if (rescheduleType_ != yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.RescheduleType.RESCHEDULE_TYPE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, rescheduleType_);
      }
      if (delayedUntil_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getDelayedUntil());
      }
      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.ClusterServiceOuterClass.RescheduleMaintenanceRequest)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) return false;
      if (rescheduleType_ != other.rescheduleType_) return false;
      if (hasDelayedUntil() != other.hasDelayedUntil()) return false;
      if (hasDelayedUntil()) {
        if (!getDelayedUntil()
            .equals(other.getDelayedUntil())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (37 * hash) + RESCHEDULE_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + rescheduleType_;
      if (hasDelayedUntil()) {
        hash = (37 * hash) + DELAYED_UNTIL_FIELD_NUMBER;
        hash = (53 * hash) + getDelayedUntil().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest 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.ClusterServiceOuterClass.RescheduleMaintenanceRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest 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.ClusterServiceOuterClass.RescheduleMaintenanceRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest 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.ClusterServiceOuterClass.RescheduleMaintenanceRequest 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.ClusterServiceOuterClass.RescheduleMaintenanceRequest 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.ClusterServiceOuterClass.RescheduleMaintenanceRequest 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.ClusterServiceOuterClass.RescheduleMaintenanceRequest 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.ClusterServiceOuterClass.RescheduleMaintenanceRequest 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.ClusterServiceOuterClass.RescheduleMaintenanceRequest 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.ClusterServiceOuterClass.RescheduleMaintenanceRequest 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.RescheduleMaintenanceRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RescheduleMaintenanceRequest_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RescheduleMaintenanceRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.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();
        clusterId_ = "";
        rescheduleType_ = 0;
        if (delayedUntilBuilder_ == null) {
          delayedUntil_ = null;
        } else {
          delayedUntil_ = null;
          delayedUntilBuilder_ = null;
        }
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RescheduleMaintenanceRequest_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest(this);
        result.clusterId_ = clusterId_;
        result.rescheduleType_ = rescheduleType_;
        if (delayedUntilBuilder_ == null) {
          result.delayedUntil_ = delayedUntil_;
        } else {
          result.delayedUntil_ = delayedUntilBuilder_.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.ClusterServiceOuterClass.RescheduleMaintenanceRequest) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        if (other.rescheduleType_ != 0) {
          setRescheduleTypeValue(other.getRescheduleTypeValue());
        }
        if (other.hasDelayedUntil()) {
          mergeDelayedUntil(other.getDelayedUntil());
        }
        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.ClusterServiceOuterClass.RescheduleMaintenanceRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * ID of the Redis cluster to reschedule the maintenance operation for.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to reschedule the maintenance operation for.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the Redis cluster to reschedule the maintenance operation for.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to reschedule the maintenance operation for.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the Redis cluster to reschedule the maintenance operation for.
       *  
       *
       * string cluster_id = 1 [(.yandex.cloud.required) = true, (.yandex.cloud.length) = "<=50"];
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      private int rescheduleType_ = 0;
      /**
       * 
       * The type of reschedule request.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest.RescheduleType reschedule_type = 2 [(.yandex.cloud.required) = true];
       * @return The enum numeric value on the wire for rescheduleType.
       */
      @java.lang.Override public int getRescheduleTypeValue() {
        return rescheduleType_;
      }
      /**
       * 
       * The type of reschedule request.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest.RescheduleType reschedule_type = 2 [(.yandex.cloud.required) = true];
       * @param value The enum numeric value on the wire for rescheduleType to set.
       * @return This builder for chaining.
       */
      public Builder setRescheduleTypeValue(int value) {
        
        rescheduleType_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * The type of reschedule request.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest.RescheduleType reschedule_type = 2 [(.yandex.cloud.required) = true];
       * @return The rescheduleType.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.RescheduleType getRescheduleType() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.RescheduleType result = yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.RescheduleType.valueOf(rescheduleType_);
        return result == null ? yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.RescheduleType.UNRECOGNIZED : result;
      }
      /**
       * 
       * The type of reschedule request.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest.RescheduleType reschedule_type = 2 [(.yandex.cloud.required) = true];
       * @param value The rescheduleType to set.
       * @return This builder for chaining.
       */
      public Builder setRescheduleType(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest.RescheduleType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        rescheduleType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * The type of reschedule request.
       *  
       *
       * .yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest.RescheduleType reschedule_type = 2 [(.yandex.cloud.required) = true];
       * @return This builder for chaining.
       */
      public Builder clearRescheduleType() {
        
        rescheduleType_ = 0;
        onChanged();
        return this;
      }
      private com.google.protobuf.Timestamp delayedUntil_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> delayedUntilBuilder_;
      /**
       * 
       * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 3;
       * @return Whether the delayedUntil field is set.
       */
      public boolean hasDelayedUntil() {
        return delayedUntilBuilder_ != null || delayedUntil_ != null;
      }
      /**
       * 
       * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 3;
       * @return The delayedUntil.
       */
      public com.google.protobuf.Timestamp getDelayedUntil() {
        if (delayedUntilBuilder_ == null) {
          return delayedUntil_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : delayedUntil_;
        } else {
          return delayedUntilBuilder_.getMessage();
        }
      }
      /**
       * 
       * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 3;
       */
      public Builder setDelayedUntil(com.google.protobuf.Timestamp value) {
        if (delayedUntilBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          delayedUntil_ = value;
          onChanged();
        } else {
          delayedUntilBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 3;
       */
      public Builder setDelayedUntil(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (delayedUntilBuilder_ == null) {
          delayedUntil_ = builderForValue.build();
          onChanged();
        } else {
          delayedUntilBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 3;
       */
      public Builder mergeDelayedUntil(com.google.protobuf.Timestamp value) {
        if (delayedUntilBuilder_ == null) {
          if (delayedUntil_ != null) {
            delayedUntil_ =
              com.google.protobuf.Timestamp.newBuilder(delayedUntil_).mergeFrom(value).buildPartial();
          } else {
            delayedUntil_ = value;
          }
          onChanged();
        } else {
          delayedUntilBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 3;
       */
      public Builder clearDelayedUntil() {
        if (delayedUntilBuilder_ == null) {
          delayedUntil_ = null;
          onChanged();
        } else {
          delayedUntil_ = null;
          delayedUntilBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 3;
       */
      public com.google.protobuf.Timestamp.Builder getDelayedUntilBuilder() {
        
        onChanged();
        return getDelayedUntilFieldBuilder().getBuilder();
      }
      /**
       * 
       * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 3;
       */
      public com.google.protobuf.TimestampOrBuilder getDelayedUntilOrBuilder() {
        if (delayedUntilBuilder_ != null) {
          return delayedUntilBuilder_.getMessageOrBuilder();
        } else {
          return delayedUntil_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : delayedUntil_;
        }
      }
      /**
       * 
       * The time until which this maintenance operation should be delayed. The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. The value can also point to the past moment of time if [reschedule_type.IMMEDIATE] reschedule type is chosen.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getDelayedUntilFieldBuilder() {
        if (delayedUntilBuilder_ == null) {
          delayedUntilBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getDelayedUntil(),
                  getParentForChildren(),
                  isClean());
          delayedUntil_ = null;
        }
        return delayedUntilBuilder_;
      }
      @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.RescheduleMaintenanceRequest)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.RescheduleMaintenanceRequest)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public RescheduleMaintenanceRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RescheduleMaintenanceRequest(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.ClusterServiceOuterClass.RescheduleMaintenanceRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface RescheduleMaintenanceMetadataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.RescheduleMaintenanceMetadata)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Required. ID of the Redis cluster.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * Required. ID of the Redis cluster.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
    /**
     * 
     * Required. The time until which this maintenance operation is to be delayed.
     *  
     *
     * .google.protobuf.Timestamp delayed_until = 4;
     * @return Whether the delayedUntil field is set.
     */
    boolean hasDelayedUntil();
    /**
     * 
     * Required. The time until which this maintenance operation is to be delayed.
     *  
     *
     * .google.protobuf.Timestamp delayed_until = 4;
     * @return The delayedUntil.
     */
    com.google.protobuf.Timestamp getDelayedUntil();
    /**
     * 
     * Required. The time until which this maintenance operation is to be delayed.
     *  
     *
     * .google.protobuf.Timestamp delayed_until = 4;
     */
    com.google.protobuf.TimestampOrBuilder getDelayedUntilOrBuilder();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.RescheduleMaintenanceMetadata}
   */
  public static final class RescheduleMaintenanceMetadata extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.RescheduleMaintenanceMetadata)
      RescheduleMaintenanceMetadataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RescheduleMaintenanceMetadata.newBuilder() to construct.
    private RescheduleMaintenanceMetadata(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private RescheduleMaintenanceMetadata() {
      clusterId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RescheduleMaintenanceMetadata();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RescheduleMaintenanceMetadata(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              break;
            }
            case 34: {
              com.google.protobuf.Timestamp.Builder subBuilder = null;
              if (delayedUntil_ != null) {
                subBuilder = delayedUntil_.toBuilder();
              }
              delayedUntil_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(delayedUntil_);
                delayedUntil_ = 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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RescheduleMaintenanceMetadata_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RescheduleMaintenanceMetadata_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata.Builder.class);
    }
    public static final int CLUSTER_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * Required. ID of the Redis cluster.
     *  
     *
     * string cluster_id = 1;
     * @return The clusterId.
     */
    @java.lang.Override
    public java.lang.String getClusterId() {
      java.lang.Object ref = clusterId_;
      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();
        clusterId_ = s;
        return s;
      }
    }
    /**
     * 
     * Required. ID of the Redis cluster.
     *  
     *
     * string cluster_id = 1;
     * @return The bytes for clusterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClusterIdBytes() {
      java.lang.Object ref = clusterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int DELAYED_UNTIL_FIELD_NUMBER = 4;
    private com.google.protobuf.Timestamp delayedUntil_;
    /**
     * 
     * Required. The time until which this maintenance operation is to be delayed.
     *  
     *
     * .google.protobuf.Timestamp delayed_until = 4;
     * @return Whether the delayedUntil field is set.
     */
    @java.lang.Override
    public boolean hasDelayedUntil() {
      return delayedUntil_ != null;
    }
    /**
     * 
     * Required. The time until which this maintenance operation is to be delayed.
     *  
     *
     * .google.protobuf.Timestamp delayed_until = 4;
     * @return The delayedUntil.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getDelayedUntil() {
      return delayedUntil_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : delayedUntil_;
    }
    /**
     * 
     * Required. The time until which this maintenance operation is to be delayed.
     *  
     *
     * .google.protobuf.Timestamp delayed_until = 4;
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getDelayedUntilOrBuilder() {
      return getDelayedUntil();
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterId_);
      }
      if (delayedUntil_ != null) {
        output.writeMessage(4, getDelayedUntil());
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterId_);
      }
      if (delayedUntil_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getDelayedUntil());
      }
      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.ClusterServiceOuterClass.RescheduleMaintenanceMetadata)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata) obj;
      if (!getClusterId()
          .equals(other.getClusterId())) return false;
      if (hasDelayedUntil() != other.hasDelayedUntil()) return false;
      if (hasDelayedUntil()) {
        if (!getDelayedUntil()
            .equals(other.getDelayedUntil())) 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) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      if (hasDelayedUntil()) {
        hash = (37 * hash) + DELAYED_UNTIL_FIELD_NUMBER;
        hash = (53 * hash) + getDelayedUntil().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata 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.ClusterServiceOuterClass.RescheduleMaintenanceMetadata parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata 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.ClusterServiceOuterClass.RescheduleMaintenanceMetadata parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata 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.ClusterServiceOuterClass.RescheduleMaintenanceMetadata 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.ClusterServiceOuterClass.RescheduleMaintenanceMetadata 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.ClusterServiceOuterClass.RescheduleMaintenanceMetadata 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.ClusterServiceOuterClass.RescheduleMaintenanceMetadata 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.ClusterServiceOuterClass.RescheduleMaintenanceMetadata 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.ClusterServiceOuterClass.RescheduleMaintenanceMetadata 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.ClusterServiceOuterClass.RescheduleMaintenanceMetadata 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.RescheduleMaintenanceMetadata}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.RescheduleMaintenanceMetadata)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RescheduleMaintenanceMetadata_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RescheduleMaintenanceMetadata_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata.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();
        clusterId_ = "";
        if (delayedUntilBuilder_ == null) {
          delayedUntil_ = null;
        } else {
          delayedUntil_ = null;
          delayedUntilBuilder_ = null;
        }
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_RescheduleMaintenanceMetadata_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata(this);
        result.clusterId_ = clusterId_;
        if (delayedUntilBuilder_ == null) {
          result.delayedUntil_ = delayedUntil_;
        } else {
          result.delayedUntil_ = delayedUntilBuilder_.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.ClusterServiceOuterClass.RescheduleMaintenanceMetadata) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata.getDefaultInstance()) return this;
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        if (other.hasDelayedUntil()) {
          mergeDelayedUntil(other.getDelayedUntil());
        }
        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.ClusterServiceOuterClass.RescheduleMaintenanceMetadata parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object clusterId_ = "";
      /**
       * 
       * Required. ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @return The clusterId.
       */
      public java.lang.String getClusterId() {
        java.lang.Object ref = clusterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clusterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * Required. ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @return The bytes for clusterId.
       */
      public com.google.protobuf.ByteString
          getClusterIdBytes() {
        java.lang.Object ref = clusterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * Required. ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @param value The clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        clusterId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Required. ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * Required. ID of the Redis cluster.
       *  
       *
       * string cluster_id = 1;
       * @param value The bytes for clusterId to set.
       * @return This builder for chaining.
       */
      public Builder setClusterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        clusterId_ = value;
        onChanged();
        return this;
      }
      private com.google.protobuf.Timestamp delayedUntil_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> delayedUntilBuilder_;
      /**
       * 
       * Required. The time until which this maintenance operation is to be delayed.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 4;
       * @return Whether the delayedUntil field is set.
       */
      public boolean hasDelayedUntil() {
        return delayedUntilBuilder_ != null || delayedUntil_ != null;
      }
      /**
       * 
       * Required. The time until which this maintenance operation is to be delayed.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 4;
       * @return The delayedUntil.
       */
      public com.google.protobuf.Timestamp getDelayedUntil() {
        if (delayedUntilBuilder_ == null) {
          return delayedUntil_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : delayedUntil_;
        } else {
          return delayedUntilBuilder_.getMessage();
        }
      }
      /**
       * 
       * Required. The time until which this maintenance operation is to be delayed.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 4;
       */
      public Builder setDelayedUntil(com.google.protobuf.Timestamp value) {
        if (delayedUntilBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          delayedUntil_ = value;
          onChanged();
        } else {
          delayedUntilBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Required. The time until which this maintenance operation is to be delayed.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 4;
       */
      public Builder setDelayedUntil(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (delayedUntilBuilder_ == null) {
          delayedUntil_ = builderForValue.build();
          onChanged();
        } else {
          delayedUntilBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Required. The time until which this maintenance operation is to be delayed.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 4;
       */
      public Builder mergeDelayedUntil(com.google.protobuf.Timestamp value) {
        if (delayedUntilBuilder_ == null) {
          if (delayedUntil_ != null) {
            delayedUntil_ =
              com.google.protobuf.Timestamp.newBuilder(delayedUntil_).mergeFrom(value).buildPartial();
          } else {
            delayedUntil_ = value;
          }
          onChanged();
        } else {
          delayedUntilBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Required. The time until which this maintenance operation is to be delayed.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 4;
       */
      public Builder clearDelayedUntil() {
        if (delayedUntilBuilder_ == null) {
          delayedUntil_ = null;
          onChanged();
        } else {
          delayedUntil_ = null;
          delayedUntilBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Required. The time until which this maintenance operation is to be delayed.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 4;
       */
      public com.google.protobuf.Timestamp.Builder getDelayedUntilBuilder() {
        
        onChanged();
        return getDelayedUntilFieldBuilder().getBuilder();
      }
      /**
       * 
       * Required. The time until which this maintenance operation is to be delayed.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 4;
       */
      public com.google.protobuf.TimestampOrBuilder getDelayedUntilOrBuilder() {
        if (delayedUntilBuilder_ != null) {
          return delayedUntilBuilder_.getMessageOrBuilder();
        } else {
          return delayedUntil_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : delayedUntil_;
        }
      }
      /**
       * 
       * Required. The time until which this maintenance operation is to be delayed.
       *  
       *
       * .google.protobuf.Timestamp delayed_until = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getDelayedUntilFieldBuilder() {
        if (delayedUntilBuilder_ == null) {
          delayedUntilBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getDelayedUntil(),
                  getParentForChildren(),
                  isClean());
          delayedUntil_ = null;
        }
        return delayedUntilBuilder_;
      }
      @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.RescheduleMaintenanceMetadata)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.RescheduleMaintenanceMetadata)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.RescheduleMaintenanceMetadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public RescheduleMaintenanceMetadata parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RescheduleMaintenanceMetadata(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.ClusterServiceOuterClass.RescheduleMaintenanceMetadata getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface LogRecordOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.LogRecord)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     *  
     *
     * .google.protobuf.Timestamp timestamp = 1;
     * @return Whether the timestamp field is set.
     */
    boolean hasTimestamp();
    /**
     * 
     * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     *  
     *
     * .google.protobuf.Timestamp timestamp = 1;
     * @return The timestamp.
     */
    com.google.protobuf.Timestamp getTimestamp();
    /**
     * 
     * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     *  
     *
     * .google.protobuf.Timestamp timestamp = 1;
     */
    com.google.protobuf.TimestampOrBuilder getTimestampOrBuilder();
    /**
     * 
     * Contents of the log record.
     *  
     *
     * map<string, string> message = 2;
     */
    int getMessageCount();
    /**
     * 
     * Contents of the log record.
     *  
     *
     * map<string, string> message = 2;
     */
    boolean containsMessage(
        java.lang.String key);
    /**
     * Use {@link #getMessageMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map
    getMessage();
    /**
     * 
     * Contents of the log record.
     *  
     *
     * map<string, string> message = 2;
     */
    java.util.Map
    getMessageMap();
    /**
     * 
     * Contents of the log record.
     *  
     *
     * map<string, string> message = 2;
     */
    java.lang.String getMessageOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * 
     * Contents of the log record.
     *  
     *
     * map<string, string> message = 2;
     */
    java.lang.String getMessageOrThrow(
        java.lang.String key);
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.LogRecord}
   */
  public static final class LogRecord extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.LogRecord)
      LogRecordOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LogRecord.newBuilder() to construct.
    private LogRecord(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private LogRecord() {
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new LogRecord();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private LogRecord(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      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.Timestamp.Builder subBuilder = null;
              if (timestamp_ != null) {
                subBuilder = timestamp_.toBuilder();
              }
              timestamp_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timestamp_);
                timestamp_ = subBuilder.buildPartial();
              }
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                message_ = com.google.protobuf.MapField.newMapField(
                    MessageDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry
              message__ = input.readMessage(
                  MessageDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              message_.getMutableMap().put(
                  message__.getKey(), message__.getValue());
              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.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_LogRecord_descriptor;
    }
    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 2:
          return internalGetMessage();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_LogRecord_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord.Builder.class);
    }
    public static final int TIMESTAMP_FIELD_NUMBER = 1;
    private com.google.protobuf.Timestamp timestamp_;
    /**
     * 
     * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     *  
     *
     * .google.protobuf.Timestamp timestamp = 1;
     * @return Whether the timestamp field is set.
     */
    @java.lang.Override
    public boolean hasTimestamp() {
      return timestamp_ != null;
    }
    /**
     * 
     * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     *  
     *
     * .google.protobuf.Timestamp timestamp = 1;
     * @return The timestamp.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getTimestamp() {
      return timestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timestamp_;
    }
    /**
     * 
     * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     *  
     *
     * .google.protobuf.Timestamp timestamp = 1;
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getTimestampOrBuilder() {
      return getTimestamp();
    }
    public static final int MESSAGE_FIELD_NUMBER = 2;
    private static final class MessageDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .newDefaultInstance(
                  yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_LogRecord_MessageEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> message_;
    private com.google.protobuf.MapField
    internalGetMessage() {
      if (message_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            MessageDefaultEntryHolder.defaultEntry);
      }
      return message_;
    }
    public int getMessageCount() {
      return internalGetMessage().getMap().size();
    }
    /**
     * 
     * Contents of the log record.
     *  
     *
     * map<string, string> message = 2;
     */
    @java.lang.Override
    public boolean containsMessage(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetMessage().getMap().containsKey(key);
    }
    /**
     * Use {@link #getMessageMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map getMessage() {
      return getMessageMap();
    }
    /**
     * 
     * Contents of the log record.
     *  
     *
     * map<string, string> message = 2;
     */
    @java.lang.Override
    public java.util.Map getMessageMap() {
      return internalGetMessage().getMap();
    }
    /**
     * 
     * Contents of the log record.
     *  
     *
     * map<string, string> message = 2;
     */
    @java.lang.Override
    public java.lang.String getMessageOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetMessage().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * 
     * Contents of the log record.
     *  
     *
     * map<string, string> message = 2;
     */
    @java.lang.Override
    public java.lang.String getMessageOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetMessage().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }
    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 (timestamp_ != null) {
        output.writeMessage(1, getTimestamp());
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetMessage(),
          MessageDefaultEntryHolder.defaultEntry,
          2);
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (timestamp_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getTimestamp());
      }
      for (java.util.Map.Entry entry
           : internalGetMessage().getMap().entrySet()) {
        com.google.protobuf.MapEntry
        message__ = MessageDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, message__);
      }
      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.ClusterServiceOuterClass.LogRecord)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord other = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord) obj;
      if (hasTimestamp() != other.hasTimestamp()) return false;
      if (hasTimestamp()) {
        if (!getTimestamp()
            .equals(other.getTimestamp())) return false;
      }
      if (!internalGetMessage().equals(
          other.internalGetMessage())) 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 (hasTimestamp()) {
        hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getTimestamp().hashCode();
      }
      if (!internalGetMessage().getMap().isEmpty()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + internalGetMessage().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord 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.ClusterServiceOuterClass.LogRecord parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord 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.ClusterServiceOuterClass.LogRecord parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord 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.ClusterServiceOuterClass.LogRecord 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.ClusterServiceOuterClass.LogRecord 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.ClusterServiceOuterClass.LogRecord 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.ClusterServiceOuterClass.LogRecord 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.ClusterServiceOuterClass.LogRecord 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.ClusterServiceOuterClass.LogRecord 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.ClusterServiceOuterClass.LogRecord 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.LogRecord}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.LogRecord)
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecordOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_LogRecord_descriptor;
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 2:
            return internalGetMessage();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 2:
            return internalGetMutableMessage();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_LogRecord_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord.class, yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord.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 (timestampBuilder_ == null) {
          timestamp_ = null;
        } else {
          timestamp_ = null;
          timestampBuilder_ = null;
        }
        internalGetMutableMessage().clear();
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.internal_static_yandex_cloud_mdb_redis_v1_LogRecord_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord build() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord buildPartial() {
        yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord result = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord(this);
        int from_bitField0_ = bitField0_;
        if (timestampBuilder_ == null) {
          result.timestamp_ = timestamp_;
        } else {
          result.timestamp_ = timestampBuilder_.build();
        }
        result.message_ = internalGetMessage();
        result.message_.makeImmutable();
        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.ClusterServiceOuterClass.LogRecord) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord other) {
        if (other == yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord.getDefaultInstance()) return this;
        if (other.hasTimestamp()) {
          mergeTimestamp(other.getTimestamp());
        }
        internalGetMutableMessage().mergeFrom(
            other.internalGetMessage());
        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.ClusterServiceOuterClass.LogRecord parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private com.google.protobuf.Timestamp timestamp_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> timestampBuilder_;
      /**
       * 
       * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       *  
       *
       * .google.protobuf.Timestamp timestamp = 1;
       * @return Whether the timestamp field is set.
       */
      public boolean hasTimestamp() {
        return timestampBuilder_ != null || timestamp_ != null;
      }
      /**
       * 
       * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       *  
       *
       * .google.protobuf.Timestamp timestamp = 1;
       * @return The timestamp.
       */
      public com.google.protobuf.Timestamp getTimestamp() {
        if (timestampBuilder_ == null) {
          return timestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timestamp_;
        } else {
          return timestampBuilder_.getMessage();
        }
      }
      /**
       * 
       * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       *  
       *
       * .google.protobuf.Timestamp timestamp = 1;
       */
      public Builder setTimestamp(com.google.protobuf.Timestamp value) {
        if (timestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timestamp_ = value;
          onChanged();
        } else {
          timestampBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       *  
       *
       * .google.protobuf.Timestamp timestamp = 1;
       */
      public Builder setTimestamp(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (timestampBuilder_ == null) {
          timestamp_ = builderForValue.build();
          onChanged();
        } else {
          timestampBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       *  
       *
       * .google.protobuf.Timestamp timestamp = 1;
       */
      public Builder mergeTimestamp(com.google.protobuf.Timestamp value) {
        if (timestampBuilder_ == null) {
          if (timestamp_ != null) {
            timestamp_ =
              com.google.protobuf.Timestamp.newBuilder(timestamp_).mergeFrom(value).buildPartial();
          } else {
            timestamp_ = value;
          }
          onChanged();
        } else {
          timestampBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       *  
       *
       * .google.protobuf.Timestamp timestamp = 1;
       */
      public Builder clearTimestamp() {
        if (timestampBuilder_ == null) {
          timestamp_ = null;
          onChanged();
        } else {
          timestamp_ = null;
          timestampBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       *  
       *
       * .google.protobuf.Timestamp timestamp = 1;
       */
      public com.google.protobuf.Timestamp.Builder getTimestampBuilder() {
        
        onChanged();
        return getTimestampFieldBuilder().getBuilder();
      }
      /**
       * 
       * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       *  
       *
       * .google.protobuf.Timestamp timestamp = 1;
       */
      public com.google.protobuf.TimestampOrBuilder getTimestampOrBuilder() {
        if (timestampBuilder_ != null) {
          return timestampBuilder_.getMessageOrBuilder();
        } else {
          return timestamp_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : timestamp_;
        }
      }
      /**
       * 
       * Log record timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       *  
       *
       * .google.protobuf.Timestamp timestamp = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getTimestampFieldBuilder() {
        if (timestampBuilder_ == null) {
          timestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getTimestamp(),
                  getParentForChildren(),
                  isClean());
          timestamp_ = null;
        }
        return timestampBuilder_;
      }
      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> message_;
      private com.google.protobuf.MapField
      internalGetMessage() {
        if (message_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              MessageDefaultEntryHolder.defaultEntry);
        }
        return message_;
      }
      private com.google.protobuf.MapField
      internalGetMutableMessage() {
        onChanged();;
        if (message_ == null) {
          message_ = com.google.protobuf.MapField.newMapField(
              MessageDefaultEntryHolder.defaultEntry);
        }
        if (!message_.isMutable()) {
          message_ = message_.copy();
        }
        return message_;
      }
      public int getMessageCount() {
        return internalGetMessage().getMap().size();
      }
      /**
       * 
       * Contents of the log record.
       *  
       *
       * map<string, string> message = 2;
       */
      @java.lang.Override
      public boolean containsMessage(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetMessage().getMap().containsKey(key);
      }
      /**
       * Use {@link #getMessageMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map getMessage() {
        return getMessageMap();
      }
      /**
       * 
       * Contents of the log record.
       *  
       *
       * map<string, string> message = 2;
       */
      @java.lang.Override
      public java.util.Map getMessageMap() {
        return internalGetMessage().getMap();
      }
      /**
       * 
       * Contents of the log record.
       *  
       *
       * map<string, string> message = 2;
       */
      @java.lang.Override
      public java.lang.String getMessageOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map =
            internalGetMessage().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * 
       * Contents of the log record.
       *  
       *
       * map<string, string> message = 2;
       */
      @java.lang.Override
      public java.lang.String getMessageOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map =
            internalGetMessage().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      public Builder clearMessage() {
        internalGetMutableMessage().getMutableMap()
            .clear();
        return this;
      }
      /**
       * 
       * Contents of the log record.
       *  
       *
       * map<string, string> message = 2;
       */
      public Builder removeMessage(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableMessage().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map
      getMutableMessage() {
        return internalGetMutableMessage().getMutableMap();
      }
      /**
       * 
       * Contents of the log record.
       *  
       *
       * map<string, string> message = 2;
       */
      public Builder putMessage(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) {
  throw new NullPointerException("map value");
}
        internalGetMutableMessage().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * 
       * Contents of the log record.
       *  
       *
       * map<string, string> message = 2;
       */
      public Builder putAllMessage(
          java.util.Map values) {
        internalGetMutableMessage().getMutableMap()
            .putAll(values);
        return this;
      }
      @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.LogRecord)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.LogRecord)
    private static final yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord();
    }
    public static yandex.cloud.api.mdb.redis.v1.ClusterServiceOuterClass.LogRecord getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public LogRecord parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new LogRecord(input, extensionRegistry);
      }
    };
    public static com.google.protobuf.Parser