yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass Maven / Gradle / Ivy
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: yandex/cloud/mdb/clickhouse/v1/cluster.proto
package yandex.cloud.api.mdb.clickhouse.v1;
public final class ClusterOuterClass {
  private ClusterOuterClass() {}
  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 ClusterOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.clickhouse.v1.Cluster)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the ClickHouse cluster.
     * This ID is assigned by MDB at creation time.
     * 
     *
     * string id = 1;
     * @return The id.
     */
    java.lang.String getId();
    /**
     * 
     * ID of the ClickHouse cluster.
     * This ID is assigned by MDB at creation time.
     * 
     *
     * string id = 1;
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();
    /**
     * 
     * ID of the folder that the ClickHouse cluster belongs to.
     * 
     *
     * string folder_id = 2;
     * @return The folderId.
     */
    java.lang.String getFolderId();
    /**
     * 
     * ID of the folder that the ClickHouse cluster belongs to.
     * 
     *
     * string folder_id = 2;
     * @return The bytes for folderId.
     */
    com.google.protobuf.ByteString
        getFolderIdBytes();
    /**
     * 
     * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     * 
     *
     * .google.protobuf.Timestamp created_at = 3;
     * @return Whether the createdAt field is set.
     */
    boolean hasCreatedAt();
    /**
     * 
     * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     * 
     *
     * .google.protobuf.Timestamp created_at = 3;
     * @return The createdAt.
     */
    com.google.protobuf.Timestamp getCreatedAt();
    /**
     * 
     * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     * 
     *
     * .google.protobuf.Timestamp created_at = 3;
     */
    com.google.protobuf.TimestampOrBuilder getCreatedAtOrBuilder();
    /**
     * 
     * Name of the ClickHouse cluster.
     * The name is unique within the folder. 1-63 characters long.
     * 
     *
     * string name = 4;
     * @return The name.
     */
    java.lang.String getName();
    /**
     * 
     * Name of the ClickHouse cluster.
     * The name is unique within the folder. 1-63 characters long.
     * 
     *
     * string name = 4;
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();
    /**
     * 
     * Description of the ClickHouse cluster. 0-256 characters long.
     * 
     *
     * string description = 5;
     * @return The description.
     */
    java.lang.String getDescription();
    /**
     * 
     * Description of the ClickHouse cluster. 0-256 characters long.
     * 
     *
     * string description = 5;
     * @return The bytes for description.
     */
    com.google.protobuf.ByteString
        getDescriptionBytes();
    /**
     * 
     * Custom labels for the ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
     * 
     *
     * map<string, string> labels = 6;
     */
    int getLabelsCount();
    /**
     * 
     * Custom labels for the ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
     * 
     *
     * map<string, string> labels = 6;
     */
    boolean containsLabels(
        java.lang.String key);
    /**
     * Use {@link #getLabelsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map
    getLabels();
    /**
     * 
     * Custom labels for the ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
     * 
     *
     * map<string, string> labels = 6;
     */
    java.util.Map
    getLabelsMap();
    /**
     * 
     * Custom labels for the ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
     * 
     *
     * map<string, string> labels = 6;
     */
    java.lang.String getLabelsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * 
     * Custom labels for the ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
     * 
     *
     * map<string, string> labels = 6;
     */
    java.lang.String getLabelsOrThrow(
        java.lang.String key);
    /**
     * 
     * Deployment environment of the ClickHouse cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Cluster.Environment environment = 7;
     * @return The enum numeric value on the wire for environment.
     */
    int getEnvironmentValue();
    /**
     * 
     * Deployment environment of the ClickHouse cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Cluster.Environment environment = 7;
     * @return The environment.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Environment getEnvironment();
    /**
     * 
     * Description of monitoring systems relevant to the ClickHouse cluster.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
     */
    java.util.List 
        getMonitoringList();
    /**
     * 
     * Description of monitoring systems relevant to the ClickHouse cluster.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring getMonitoring(int index);
    /**
     * 
     * Description of monitoring systems relevant to the ClickHouse cluster.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
     */
    int getMonitoringCount();
    /**
     * 
     * Description of monitoring systems relevant to the ClickHouse cluster.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
     */
    java.util.List extends yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.MonitoringOrBuilder> 
        getMonitoringOrBuilderList();
    /**
     * 
     * Description of monitoring systems relevant to the ClickHouse cluster.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.MonitoringOrBuilder getMonitoringOrBuilder(
        int index);
    /**
     * 
     * Configuration of the ClickHouse cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
     * @return Whether the config field is set.
     */
    boolean hasConfig();
    /**
     * 
     * Configuration of the ClickHouse cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
     * @return The config.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig getConfig();
    /**
     * 
     * Configuration of the ClickHouse cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfigOrBuilder getConfigOrBuilder();
    /**
     * 
     * ID of the network that the cluster belongs to.
     * 
     *
     * string network_id = 10;
     * @return The networkId.
     */
    java.lang.String getNetworkId();
    /**
     * 
     * ID of the network that the cluster belongs to.
     * 
     *
     * string network_id = 10;
     * @return The bytes for networkId.
     */
    com.google.protobuf.ByteString
        getNetworkIdBytes();
    /**
     * 
     * Aggregated cluster health.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Cluster.Health health = 11;
     * @return The enum numeric value on the wire for health.
     */
    int getHealthValue();
    /**
     * 
     * Aggregated cluster health.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Cluster.Health health = 11;
     * @return The health.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Health getHealth();
    /**
     * 
     * Current state of the cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Cluster.Status status = 12;
     * @return The enum numeric value on the wire for status.
     */
    int getStatusValue();
    /**
     * 
     * Current state of the cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Cluster.Status status = 12;
     * @return The status.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Status getStatus();
    /**
     * 
     * ID of the service account used for access to Object Storage.
     * 
     *
     * string service_account_id = 13;
     * @return The serviceAccountId.
     */
    java.lang.String getServiceAccountId();
    /**
     * 
     * ID of the service account used for access to Object Storage.
     * 
     *
     * string service_account_id = 13;
     * @return The bytes for serviceAccountId.
     */
    com.google.protobuf.ByteString
        getServiceAccountIdBytes();
    /**
     * 
     * Maintenance window for the cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
     * @return Whether the maintenanceWindow field is set.
     */
    boolean hasMaintenanceWindow();
    /**
     * 
     * Maintenance window for the cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
     * @return The maintenanceWindow.
     */
    yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow getMaintenanceWindow();
    /**
     * 
     * Maintenance window for the cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
     */
    yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindowOrBuilder getMaintenanceWindowOrBuilder();
    /**
     * 
     * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
     * @return Whether the plannedOperation field is set.
     */
    boolean hasPlannedOperation();
    /**
     * 
     * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
     * @return The plannedOperation.
     */
    yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation getPlannedOperation();
    /**
     * 
     * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
     */
    yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperationOrBuilder getPlannedOperationOrBuilder();
    /**
     * 
     * User security groups
     * 
     *
     * repeated string security_group_ids = 16;
     * @return A list containing the securityGroupIds.
     */
    java.util.List
        getSecurityGroupIdsList();
    /**
     * 
     * User security groups
     * 
     *
     * repeated string security_group_ids = 16;
     * @return The count of securityGroupIds.
     */
    int getSecurityGroupIdsCount();
    /**
     * 
     * User security groups
     * 
     *
     * repeated string security_group_ids = 16;
     * @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 = 16;
     * @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 = 17;
     * @return The deletionProtection.
     */
    boolean getDeletionProtection();
  }
  /**
   * 
   * A ClickHouse Cluster resource. For more information, see the
   * [Cluster](/docs/managed-clickhouse/concepts) section in the Developer's Guide.
   * 
   *
   * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.Cluster}
   */
  public static final class Cluster extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.clickhouse.v1.Cluster)
      ClusterOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Cluster.newBuilder() to construct.
    private Cluster(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private Cluster() {
      id_ = "";
      folderId_ = "";
      name_ = "";
      description_ = "";
      environment_ = 0;
      monitoring_ = java.util.Collections.emptyList();
      networkId_ = "";
      health_ = 0;
      status_ = 0;
      serviceAccountId_ = "";
      securityGroupIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Cluster();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Cluster(
        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();
              id_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              folderId_ = s;
              break;
            }
            case 26: {
              com.google.protobuf.Timestamp.Builder subBuilder = null;
              if (createdAt_ != null) {
                subBuilder = createdAt_.toBuilder();
              }
              createdAt_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(createdAt_);
                createdAt_ = subBuilder.buildPartial();
              }
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();
              name_ = s;
              break;
            }
            case 42: {
              java.lang.String s = input.readStringRequireUtf8();
              description_ = s;
              break;
            }
            case 50: {
              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 56: {
              int rawValue = input.readEnum();
              environment_ = rawValue;
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                monitoring_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              monitoring_.add(
                  input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.parser(), extensionRegistry));
              break;
            }
            case 74: {
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Builder subBuilder = null;
              if (config_ != null) {
                subBuilder = config_.toBuilder();
              }
              config_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(config_);
                config_ = subBuilder.buildPartial();
              }
              break;
            }
            case 82: {
              java.lang.String s = input.readStringRequireUtf8();
              networkId_ = s;
              break;
            }
            case 88: {
              int rawValue = input.readEnum();
              health_ = rawValue;
              break;
            }
            case 96: {
              int rawValue = input.readEnum();
              status_ = rawValue;
              break;
            }
            case 106: {
              java.lang.String s = input.readStringRequireUtf8();
              serviceAccountId_ = s;
              break;
            }
            case 114: {
              yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow.Builder subBuilder = null;
              if (maintenanceWindow_ != null) {
                subBuilder = maintenanceWindow_.toBuilder();
              }
              maintenanceWindow_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(maintenanceWindow_);
                maintenanceWindow_ = subBuilder.buildPartial();
              }
              break;
            }
            case 122: {
              yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation.Builder subBuilder = null;
              if (plannedOperation_ != null) {
                subBuilder = plannedOperation_.toBuilder();
              }
              plannedOperation_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(plannedOperation_);
                plannedOperation_ = subBuilder.buildPartial();
              }
              break;
            }
            case 130: {
              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 136: {
              deletionProtection_ = 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)) {
          monitoring_ = java.util.Collections.unmodifiableList(monitoring_);
        }
        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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_descriptor;
    }
    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 6:
          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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Builder.class);
    }
    /**
     * Protobuf enum {@code yandex.cloud.mdb.clickhouse.v1.Cluster.Environment}
     */
    public enum Environment
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * ENVIRONMENT_UNSPECIFIED = 0;
       */
      ENVIRONMENT_UNSPECIFIED(0),
      /**
       * 
       * Stable environment with a conservative update policy:
       * only hotfixes are applied during regular maintenance.
       * 
       *
       * PRODUCTION = 1;
       */
      PRODUCTION(1),
      /**
       * 
       * Environment with more aggressive update policy: new versions
       * are rolled out irrespective of backward compatibility.
       * 
       *
       * PRESTABLE = 2;
       */
      PRESTABLE(2),
      UNRECOGNIZED(-1),
      ;
      /**
       * ENVIRONMENT_UNSPECIFIED = 0;
       */
      public static final int ENVIRONMENT_UNSPECIFIED_VALUE = 0;
      /**
       * 
       * Stable environment with a conservative update policy:
       * only hotfixes are applied during regular maintenance.
       * 
       *
       * PRODUCTION = 1;
       */
      public static final int PRODUCTION_VALUE = 1;
      /**
       * 
       * Environment with more aggressive update policy: new versions
       * are rolled out irrespective of backward compatibility.
       * 
       *
       * PRESTABLE = 2;
       */
      public static final int PRESTABLE_VALUE = 2;
      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 Environment 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 Environment forNumber(int value) {
        switch (value) {
          case 0: return ENVIRONMENT_UNSPECIFIED;
          case 1: return PRODUCTION;
          case 2: return PRESTABLE;
          default: return null;
        }
      }
      public static com.google.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Environment> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap() {
              public Environment findValueByNumber(int number) {
                return Environment.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.clickhouse.v1.ClusterOuterClass.Cluster.getDescriptor().getEnumTypes().get(0);
      }
      private static final Environment[] VALUES = values();
      public static Environment 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 Environment(int value) {
        this.value = value;
      }
      // @@protoc_insertion_point(enum_scope:yandex.cloud.mdb.clickhouse.v1.Cluster.Environment)
    }
    /**
     * Protobuf enum {@code yandex.cloud.mdb.clickhouse.v1.Cluster.Health}
     */
    public enum Health
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * 
       * State of the cluster is unknown ([Host.health] for every host in the cluster is UNKNOWN).
       * 
       *
       * HEALTH_UNKNOWN = 0;
       */
      HEALTH_UNKNOWN(0),
      /**
       * 
       * Cluster is alive and well ([Host.health] for every host in the cluster is ALIVE).
       * 
       *
       * ALIVE = 1;
       */
      ALIVE(1),
      /**
       * 
       * Cluster is inoperable ([Host.health] for every host in the cluster is DEAD).
       * 
       *
       * DEAD = 2;
       */
      DEAD(2),
      /**
       * 
       * Cluster is working below capacity ([Host.health] for at least one host in the cluster is not ALIVE).
       * 
       *
       * DEGRADED = 3;
       */
      DEGRADED(3),
      UNRECOGNIZED(-1),
      ;
      /**
       * 
       * State of the cluster is unknown ([Host.health] for every host in the cluster is UNKNOWN).
       * 
       *
       * HEALTH_UNKNOWN = 0;
       */
      public static final int HEALTH_UNKNOWN_VALUE = 0;
      /**
       * 
       * Cluster is alive and well ([Host.health] for every host in the cluster is ALIVE).
       * 
       *
       * ALIVE = 1;
       */
      public static final int ALIVE_VALUE = 1;
      /**
       * 
       * Cluster is inoperable ([Host.health] for every host in the cluster is DEAD).
       * 
       *
       * DEAD = 2;
       */
      public static final int DEAD_VALUE = 2;
      /**
       * 
       * Cluster is working below capacity ([Host.health] for at least one host in the cluster is not ALIVE).
       * 
       *
       * DEGRADED = 3;
       */
      public static final int DEGRADED_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 Health 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 Health forNumber(int value) {
        switch (value) {
          case 0: return HEALTH_UNKNOWN;
          case 1: return ALIVE;
          case 2: return DEAD;
          case 3: return DEGRADED;
          default: return null;
        }
      }
      public static com.google.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Health> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap() {
              public Health findValueByNumber(int number) {
                return Health.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.clickhouse.v1.ClusterOuterClass.Cluster.getDescriptor().getEnumTypes().get(1);
      }
      private static final Health[] VALUES = values();
      public static Health 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 Health(int value) {
        this.value = value;
      }
      // @@protoc_insertion_point(enum_scope:yandex.cloud.mdb.clickhouse.v1.Cluster.Health)
    }
    /**
     * Protobuf enum {@code yandex.cloud.mdb.clickhouse.v1.Cluster.Status}
     */
    public enum Status
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * 
       * Cluster state is unknown.
       * 
       *
       * STATUS_UNKNOWN = 0;
       */
      STATUS_UNKNOWN(0),
      /**
       * 
       * Cluster is being created.
       * 
       *
       * CREATING = 1;
       */
      CREATING(1),
      /**
       * 
       * Cluster is running normally.
       * 
       *
       * RUNNING = 2;
       */
      RUNNING(2),
      /**
       * 
       * Cluster encountered a problem and cannot operate.
       * 
       *
       * ERROR = 3;
       */
      ERROR(3),
      /**
       * 
       * Cluster is being updated.
       * 
       *
       * UPDATING = 4;
       */
      UPDATING(4),
      /**
       * 
       * Cluster is stopping.
       * 
       *
       * STOPPING = 5;
       */
      STOPPING(5),
      /**
       * 
       * Cluster stopped.
       * 
       *
       * STOPPED = 6;
       */
      STOPPED(6),
      /**
       * 
       * Cluster is starting.
       * 
       *
       * STARTING = 7;
       */
      STARTING(7),
      UNRECOGNIZED(-1),
      ;
      /**
       * 
       * Cluster state is unknown.
       * 
       *
       * STATUS_UNKNOWN = 0;
       */
      public static final int STATUS_UNKNOWN_VALUE = 0;
      /**
       * 
       * Cluster is being created.
       * 
       *
       * CREATING = 1;
       */
      public static final int CREATING_VALUE = 1;
      /**
       * 
       * Cluster is running normally.
       * 
       *
       * RUNNING = 2;
       */
      public static final int RUNNING_VALUE = 2;
      /**
       * 
       * Cluster encountered a problem and cannot operate.
       * 
       *
       * ERROR = 3;
       */
      public static final int ERROR_VALUE = 3;
      /**
       * 
       * Cluster is being updated.
       * 
       *
       * UPDATING = 4;
       */
      public static final int UPDATING_VALUE = 4;
      /**
       * 
       * Cluster is stopping.
       * 
       *
       * STOPPING = 5;
       */
      public static final int STOPPING_VALUE = 5;
      /**
       * 
       * Cluster stopped.
       * 
       *
       * STOPPED = 6;
       */
      public static final int STOPPED_VALUE = 6;
      /**
       * 
       * Cluster is starting.
       * 
       *
       * STARTING = 7;
       */
      public static final int STARTING_VALUE = 7;
      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 Status 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 Status forNumber(int value) {
        switch (value) {
          case 0: return STATUS_UNKNOWN;
          case 1: return CREATING;
          case 2: return RUNNING;
          case 3: return ERROR;
          case 4: return UPDATING;
          case 5: return STOPPING;
          case 6: return STOPPED;
          case 7: return STARTING;
          default: return null;
        }
      }
      public static com.google.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Status> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap() {
              public Status findValueByNumber(int number) {
                return Status.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.clickhouse.v1.ClusterOuterClass.Cluster.getDescriptor().getEnumTypes().get(2);
      }
      private static final Status[] VALUES = values();
      public static Status 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 Status(int value) {
        this.value = value;
      }
      // @@protoc_insertion_point(enum_scope:yandex.cloud.mdb.clickhouse.v1.Cluster.Status)
    }
    public static final int ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object id_;
    /**
     * 
     * ID of the ClickHouse cluster.
     * This ID is assigned by MDB at creation time.
     * 
     *
     * string id = 1;
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      java.lang.Object ref = id_;
      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();
        id_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the ClickHouse cluster.
     * This ID is assigned by MDB at creation time.
     * 
     *
     * string id = 1;
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int FOLDER_ID_FIELD_NUMBER = 2;
    private volatile java.lang.Object folderId_;
    /**
     * 
     * ID of the folder that the ClickHouse cluster belongs to.
     * 
     *
     * string folder_id = 2;
     * @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 that the ClickHouse cluster belongs to.
     * 
     *
     * string folder_id = 2;
     * @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 CREATED_AT_FIELD_NUMBER = 3;
    private com.google.protobuf.Timestamp createdAt_;
    /**
     * 
     * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     * 
     *
     * .google.protobuf.Timestamp created_at = 3;
     * @return Whether the createdAt field is set.
     */
    @java.lang.Override
    public boolean hasCreatedAt() {
      return createdAt_ != null;
    }
    /**
     * 
     * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     * 
     *
     * .google.protobuf.Timestamp created_at = 3;
     * @return The createdAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getCreatedAt() {
      return createdAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : createdAt_;
    }
    /**
     * 
     * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     * 
     *
     * .google.protobuf.Timestamp created_at = 3;
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getCreatedAtOrBuilder() {
      return getCreatedAt();
    }
    public static final int NAME_FIELD_NUMBER = 4;
    private volatile java.lang.Object name_;
    /**
     * 
     * Name of the ClickHouse cluster.
     * The name is unique within the folder. 1-63 characters long.
     * 
     *
     * string name = 4;
     * @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 ClickHouse cluster.
     * The name is unique within the folder. 1-63 characters long.
     * 
     *
     * string name = 4;
     * @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 = 5;
    private volatile java.lang.Object description_;
    /**
     * 
     * Description of the ClickHouse cluster. 0-256 characters long.
     * 
     *
     * string description = 5;
     * @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 ClickHouse cluster. 0-256 characters long.
     * 
     *
     * string description = 5;
     * @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 = 6;
    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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_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 ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
     * 
     *
     * map<string, string> labels = 6;
     */
    @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 ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
     * 
     *
     * map<string, string> labels = 6;
     */
    @java.lang.Override
    public java.util.Map getLabelsMap() {
      return internalGetLabels().getMap();
    }
    /**
     * 
     * Custom labels for the ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
     * 
     *
     * map<string, string> labels = 6;
     */
    @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 ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
     * 
     *
     * map<string, string> labels = 6;
     */
    @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 = 7;
    private int environment_;
    /**
     * 
     * Deployment environment of the ClickHouse cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Cluster.Environment environment = 7;
     * @return The enum numeric value on the wire for environment.
     */
    @java.lang.Override public int getEnvironmentValue() {
      return environment_;
    }
    /**
     * 
     * Deployment environment of the ClickHouse cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Cluster.Environment environment = 7;
     * @return The environment.
     */
    @java.lang.Override public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Environment getEnvironment() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Environment result = yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Environment.valueOf(environment_);
      return result == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Environment.UNRECOGNIZED : result;
    }
    public static final int MONITORING_FIELD_NUMBER = 8;
    private java.util.List monitoring_;
    /**
     * 
     * Description of monitoring systems relevant to the ClickHouse cluster.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
     */
    @java.lang.Override
    public java.util.List getMonitoringList() {
      return monitoring_;
    }
    /**
     * 
     * Description of monitoring systems relevant to the ClickHouse cluster.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
     */
    @java.lang.Override
    public java.util.List extends yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.MonitoringOrBuilder> 
        getMonitoringOrBuilderList() {
      return monitoring_;
    }
    /**
     * 
     * Description of monitoring systems relevant to the ClickHouse cluster.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
     */
    @java.lang.Override
    public int getMonitoringCount() {
      return monitoring_.size();
    }
    /**
     * 
     * Description of monitoring systems relevant to the ClickHouse cluster.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring getMonitoring(int index) {
      return monitoring_.get(index);
    }
    /**
     * 
     * Description of monitoring systems relevant to the ClickHouse cluster.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.MonitoringOrBuilder getMonitoringOrBuilder(
        int index) {
      return monitoring_.get(index);
    }
    public static final int CONFIG_FIELD_NUMBER = 9;
    private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig config_;
    /**
     * 
     * Configuration of the ClickHouse cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
     * @return Whether the config field is set.
     */
    @java.lang.Override
    public boolean hasConfig() {
      return config_ != null;
    }
    /**
     * 
     * Configuration of the ClickHouse cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
     * @return The config.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig getConfig() {
      return config_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.getDefaultInstance() : config_;
    }
    /**
     * 
     * Configuration of the ClickHouse cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfigOrBuilder getConfigOrBuilder() {
      return getConfig();
    }
    public static final int NETWORK_ID_FIELD_NUMBER = 10;
    private volatile java.lang.Object networkId_;
    /**
     * 
     * ID of the network that the cluster belongs to.
     * 
     *
     * string network_id = 10;
     * @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 that the cluster belongs to.
     * 
     *
     * string network_id = 10;
     * @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 HEALTH_FIELD_NUMBER = 11;
    private int health_;
    /**
     * 
     * Aggregated cluster health.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Cluster.Health health = 11;
     * @return The enum numeric value on the wire for health.
     */
    @java.lang.Override public int getHealthValue() {
      return health_;
    }
    /**
     * 
     * Aggregated cluster health.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Cluster.Health health = 11;
     * @return The health.
     */
    @java.lang.Override public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Health getHealth() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Health result = yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Health.valueOf(health_);
      return result == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Health.UNRECOGNIZED : result;
    }
    public static final int STATUS_FIELD_NUMBER = 12;
    private int status_;
    /**
     * 
     * Current state of the cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Cluster.Status status = 12;
     * @return The enum numeric value on the wire for status.
     */
    @java.lang.Override public int getStatusValue() {
      return status_;
    }
    /**
     * 
     * Current state of the cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Cluster.Status status = 12;
     * @return The status.
     */
    @java.lang.Override public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Status getStatus() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Status result = yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Status.valueOf(status_);
      return result == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Status.UNRECOGNIZED : result;
    }
    public static final int SERVICE_ACCOUNT_ID_FIELD_NUMBER = 13;
    private volatile java.lang.Object serviceAccountId_;
    /**
     * 
     * ID of the service account used for access to Object Storage.
     * 
     *
     * string service_account_id = 13;
     * @return The serviceAccountId.
     */
    @java.lang.Override
    public java.lang.String getServiceAccountId() {
      java.lang.Object ref = serviceAccountId_;
      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();
        serviceAccountId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the service account used for access to Object Storage.
     * 
     *
     * string service_account_id = 13;
     * @return The bytes for serviceAccountId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getServiceAccountIdBytes() {
      java.lang.Object ref = serviceAccountId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        serviceAccountId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int MAINTENANCE_WINDOW_FIELD_NUMBER = 14;
    private yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow maintenanceWindow_;
    /**
     * 
     * Maintenance window for the cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
     * @return Whether the maintenanceWindow field is set.
     */
    @java.lang.Override
    public boolean hasMaintenanceWindow() {
      return maintenanceWindow_ != null;
    }
    /**
     * 
     * Maintenance window for the cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
     * @return The maintenanceWindow.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow getMaintenanceWindow() {
      return maintenanceWindow_ == null ? yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow.getDefaultInstance() : maintenanceWindow_;
    }
    /**
     * 
     * Maintenance window for the cluster.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindowOrBuilder getMaintenanceWindowOrBuilder() {
      return getMaintenanceWindow();
    }
    public static final int PLANNED_OPERATION_FIELD_NUMBER = 15;
    private yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation plannedOperation_;
    /**
     * 
     * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
     * @return Whether the plannedOperation field is set.
     */
    @java.lang.Override
    public boolean hasPlannedOperation() {
      return plannedOperation_ != null;
    }
    /**
     * 
     * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
     * @return The plannedOperation.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation getPlannedOperation() {
      return plannedOperation_ == null ? yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation.getDefaultInstance() : plannedOperation_;
    }
    /**
     * 
     * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperationOrBuilder getPlannedOperationOrBuilder() {
      return getPlannedOperation();
    }
    public static final int SECURITY_GROUP_IDS_FIELD_NUMBER = 16;
    private com.google.protobuf.LazyStringList securityGroupIds_;
    /**
     * 
     * User security groups
     * 
     *
     * repeated string security_group_ids = 16;
     * @return A list containing the securityGroupIds.
     */
    public com.google.protobuf.ProtocolStringList
        getSecurityGroupIdsList() {
      return securityGroupIds_;
    }
    /**
     * 
     * User security groups
     * 
     *
     * repeated string security_group_ids = 16;
     * @return The count of securityGroupIds.
     */
    public int getSecurityGroupIdsCount() {
      return securityGroupIds_.size();
    }
    /**
     * 
     * User security groups
     * 
     *
     * repeated string security_group_ids = 16;
     * @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 = 16;
     * @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 = 17;
    private boolean deletionProtection_;
    /**
     * 
     * Deletion Protection inhibits deletion of the cluster
     * 
     *
     * bool deletion_protection = 17;
     * @return The deletionProtection.
     */
    @java.lang.Override
    public boolean getDeletionProtection() {
      return deletionProtection_;
    }
    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(id_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(folderId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, folderId_);
      }
      if (createdAt_ != null) {
        output.writeMessage(3, getCreatedAt());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, description_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetLabels(),
          LabelsDefaultEntryHolder.defaultEntry,
          6);
      if (environment_ != yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Environment.ENVIRONMENT_UNSPECIFIED.getNumber()) {
        output.writeEnum(7, environment_);
      }
      for (int i = 0; i < monitoring_.size(); i++) {
        output.writeMessage(8, monitoring_.get(i));
      }
      if (config_ != null) {
        output.writeMessage(9, getConfig());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(networkId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, networkId_);
      }
      if (health_ != yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Health.HEALTH_UNKNOWN.getNumber()) {
        output.writeEnum(11, health_);
      }
      if (status_ != yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Status.STATUS_UNKNOWN.getNumber()) {
        output.writeEnum(12, status_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serviceAccountId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, serviceAccountId_);
      }
      if (maintenanceWindow_ != null) {
        output.writeMessage(14, getMaintenanceWindow());
      }
      if (plannedOperation_ != null) {
        output.writeMessage(15, getPlannedOperation());
      }
      for (int i = 0; i < securityGroupIds_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 16, securityGroupIds_.getRaw(i));
      }
      if (deletionProtection_ != false) {
        output.writeBool(17, deletionProtection_);
      }
      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(id_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(folderId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, folderId_);
      }
      if (createdAt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getCreatedAt());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, 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(6, labels__);
      }
      if (environment_ != yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Environment.ENVIRONMENT_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(7, environment_);
      }
      for (int i = 0; i < monitoring_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, monitoring_.get(i));
      }
      if (config_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getConfig());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(networkId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, networkId_);
      }
      if (health_ != yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Health.HEALTH_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(11, health_);
      }
      if (status_ != yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Status.STATUS_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(12, status_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serviceAccountId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, serviceAccountId_);
      }
      if (maintenanceWindow_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, getMaintenanceWindow());
      }
      if (plannedOperation_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, getPlannedOperation());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < securityGroupIds_.size(); i++) {
          dataSize += computeStringSizeNoTag(securityGroupIds_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getSecurityGroupIdsList().size();
      }
      if (deletionProtection_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(17, deletionProtection_);
      }
      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.clickhouse.v1.ClusterOuterClass.Cluster)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster other = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster) obj;
      if (!getId()
          .equals(other.getId())) return false;
      if (!getFolderId()
          .equals(other.getFolderId())) return false;
      if (hasCreatedAt() != other.hasCreatedAt()) return false;
      if (hasCreatedAt()) {
        if (!getCreatedAt()
            .equals(other.getCreatedAt())) 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 (!getMonitoringList()
          .equals(other.getMonitoringList())) return false;
      if (hasConfig() != other.hasConfig()) return false;
      if (hasConfig()) {
        if (!getConfig()
            .equals(other.getConfig())) return false;
      }
      if (!getNetworkId()
          .equals(other.getNetworkId())) return false;
      if (health_ != other.health_) return false;
      if (status_ != other.status_) return false;
      if (!getServiceAccountId()
          .equals(other.getServiceAccountId())) return false;
      if (hasMaintenanceWindow() != other.hasMaintenanceWindow()) return false;
      if (hasMaintenanceWindow()) {
        if (!getMaintenanceWindow()
            .equals(other.getMaintenanceWindow())) return false;
      }
      if (hasPlannedOperation() != other.hasPlannedOperation()) return false;
      if (hasPlannedOperation()) {
        if (!getPlannedOperation()
            .equals(other.getPlannedOperation())) return false;
      }
      if (!getSecurityGroupIdsList()
          .equals(other.getSecurityGroupIdsList())) return false;
      if (getDeletionProtection()
          != other.getDeletionProtection()) 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) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId().hashCode();
      hash = (37 * hash) + FOLDER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getFolderId().hashCode();
      if (hasCreatedAt()) {
        hash = (37 * hash) + CREATED_AT_FIELD_NUMBER;
        hash = (53 * hash) + getCreatedAt().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 (getMonitoringCount() > 0) {
        hash = (37 * hash) + MONITORING_FIELD_NUMBER;
        hash = (53 * hash) + getMonitoringList().hashCode();
      }
      if (hasConfig()) {
        hash = (37 * hash) + CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getConfig().hashCode();
      }
      hash = (37 * hash) + NETWORK_ID_FIELD_NUMBER;
      hash = (53 * hash) + getNetworkId().hashCode();
      hash = (37 * hash) + HEALTH_FIELD_NUMBER;
      hash = (53 * hash) + health_;
      hash = (37 * hash) + STATUS_FIELD_NUMBER;
      hash = (53 * hash) + status_;
      hash = (37 * hash) + SERVICE_ACCOUNT_ID_FIELD_NUMBER;
      hash = (53 * hash) + getServiceAccountId().hashCode();
      if (hasMaintenanceWindow()) {
        hash = (37 * hash) + MAINTENANCE_WINDOW_FIELD_NUMBER;
        hash = (53 * hash) + getMaintenanceWindow().hashCode();
      }
      if (hasPlannedOperation()) {
        hash = (37 * hash) + PLANNED_OPERATION_FIELD_NUMBER;
        hash = (53 * hash) + getPlannedOperation().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 = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster 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.clickhouse.v1.ClusterOuterClass.Cluster parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster 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.clickhouse.v1.ClusterOuterClass.Cluster parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster 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.clickhouse.v1.ClusterOuterClass.Cluster parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster 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.clickhouse.v1.ClusterOuterClass.Cluster parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster 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.clickhouse.v1.ClusterOuterClass.Cluster 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;
    }
    /**
     * 
     * A ClickHouse Cluster resource. For more information, see the
     * [Cluster](/docs/managed-clickhouse/concepts) section in the Developer's Guide.
     * 
     *
     * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.Cluster}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.clickhouse.v1.Cluster)
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_descriptor;
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 6:
            return internalGetLabels();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 6:
            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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getMonitoringFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        id_ = "";
        folderId_ = "";
        if (createdAtBuilder_ == null) {
          createdAt_ = null;
        } else {
          createdAt_ = null;
          createdAtBuilder_ = null;
        }
        name_ = "";
        description_ = "";
        internalGetMutableLabels().clear();
        environment_ = 0;
        if (monitoringBuilder_ == null) {
          monitoring_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          monitoringBuilder_.clear();
        }
        if (configBuilder_ == null) {
          config_ = null;
        } else {
          config_ = null;
          configBuilder_ = null;
        }
        networkId_ = "";
        health_ = 0;
        status_ = 0;
        serviceAccountId_ = "";
        if (maintenanceWindowBuilder_ == null) {
          maintenanceWindow_ = null;
        } else {
          maintenanceWindow_ = null;
          maintenanceWindowBuilder_ = null;
        }
        if (plannedOperationBuilder_ == null) {
          plannedOperation_ = null;
        } else {
          plannedOperation_ = null;
          plannedOperationBuilder_ = null;
        }
        securityGroupIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        deletionProtection_ = false;
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster build() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster buildPartial() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster result = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster(this);
        int from_bitField0_ = bitField0_;
        result.id_ = id_;
        result.folderId_ = folderId_;
        if (createdAtBuilder_ == null) {
          result.createdAt_ = createdAt_;
        } else {
          result.createdAt_ = createdAtBuilder_.build();
        }
        result.name_ = name_;
        result.description_ = description_;
        result.labels_ = internalGetLabels();
        result.labels_.makeImmutable();
        result.environment_ = environment_;
        if (monitoringBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            monitoring_ = java.util.Collections.unmodifiableList(monitoring_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.monitoring_ = monitoring_;
        } else {
          result.monitoring_ = monitoringBuilder_.build();
        }
        if (configBuilder_ == null) {
          result.config_ = config_;
        } else {
          result.config_ = configBuilder_.build();
        }
        result.networkId_ = networkId_;
        result.health_ = health_;
        result.status_ = status_;
        result.serviceAccountId_ = serviceAccountId_;
        if (maintenanceWindowBuilder_ == null) {
          result.maintenanceWindow_ = maintenanceWindow_;
        } else {
          result.maintenanceWindow_ = maintenanceWindowBuilder_.build();
        }
        if (plannedOperationBuilder_ == null) {
          result.plannedOperation_ = plannedOperation_;
        } else {
          result.plannedOperation_ = plannedOperationBuilder_.build();
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          securityGroupIds_ = securityGroupIds_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.securityGroupIds_ = securityGroupIds_;
        result.deletionProtection_ = deletionProtection_;
        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.clickhouse.v1.ClusterOuterClass.Cluster) {
          return mergeFrom((yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster other) {
        if (other == yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.getDefaultInstance()) return this;
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          onChanged();
        }
        if (!other.getFolderId().isEmpty()) {
          folderId_ = other.folderId_;
          onChanged();
        }
        if (other.hasCreatedAt()) {
          mergeCreatedAt(other.getCreatedAt());
        }
        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 (monitoringBuilder_ == null) {
          if (!other.monitoring_.isEmpty()) {
            if (monitoring_.isEmpty()) {
              monitoring_ = other.monitoring_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureMonitoringIsMutable();
              monitoring_.addAll(other.monitoring_);
            }
            onChanged();
          }
        } else {
          if (!other.monitoring_.isEmpty()) {
            if (monitoringBuilder_.isEmpty()) {
              monitoringBuilder_.dispose();
              monitoringBuilder_ = null;
              monitoring_ = other.monitoring_;
              bitField0_ = (bitField0_ & ~0x00000002);
              monitoringBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getMonitoringFieldBuilder() : null;
            } else {
              monitoringBuilder_.addAllMessages(other.monitoring_);
            }
          }
        }
        if (other.hasConfig()) {
          mergeConfig(other.getConfig());
        }
        if (!other.getNetworkId().isEmpty()) {
          networkId_ = other.networkId_;
          onChanged();
        }
        if (other.health_ != 0) {
          setHealthValue(other.getHealthValue());
        }
        if (other.status_ != 0) {
          setStatusValue(other.getStatusValue());
        }
        if (!other.getServiceAccountId().isEmpty()) {
          serviceAccountId_ = other.serviceAccountId_;
          onChanged();
        }
        if (other.hasMaintenanceWindow()) {
          mergeMaintenanceWindow(other.getMaintenanceWindow());
        }
        if (other.hasPlannedOperation()) {
          mergePlannedOperation(other.getPlannedOperation());
        }
        if (!other.securityGroupIds_.isEmpty()) {
          if (securityGroupIds_.isEmpty()) {
            securityGroupIds_ = other.securityGroupIds_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureSecurityGroupIdsIsMutable();
            securityGroupIds_.addAll(other.securityGroupIds_);
          }
          onChanged();
        }
        if (other.getDeletionProtection() != false) {
          setDeletionProtection(other.getDeletionProtection());
        }
        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.clickhouse.v1.ClusterOuterClass.Cluster parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private java.lang.Object id_ = "";
      /**
       * 
       * ID of the ClickHouse cluster.
       * This ID is assigned by MDB at creation time.
       * 
       *
       * string id = 1;
       * @return The id.
       */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          id_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the ClickHouse cluster.
       * This ID is assigned by MDB at creation time.
       * 
       *
       * string id = 1;
       * @return The bytes for id.
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the ClickHouse cluster.
       * This ID is assigned by MDB at creation time.
       * 
       *
       * string id = 1;
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the ClickHouse cluster.
       * This ID is assigned by MDB at creation time.
       * 
       *
       * string id = 1;
       * @return This builder for chaining.
       */
      public Builder clearId() {
        
        id_ = getDefaultInstance().getId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the ClickHouse cluster.
       * This ID is assigned by MDB at creation time.
       * 
       *
       * string id = 1;
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        id_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object folderId_ = "";
      /**
       * 
       * ID of the folder that the ClickHouse cluster belongs to.
       * 
       *
       * string folder_id = 2;
       * @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 that the ClickHouse cluster belongs to.
       * 
       *
       * string folder_id = 2;
       * @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 that the ClickHouse cluster belongs to.
       * 
       *
       * string folder_id = 2;
       * @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 that the ClickHouse cluster belongs to.
       * 
       *
       * string folder_id = 2;
       * @return This builder for chaining.
       */
      public Builder clearFolderId() {
        
        folderId_ = getDefaultInstance().getFolderId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the folder that the ClickHouse cluster belongs to.
       * 
       *
       * string folder_id = 2;
       * @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.Timestamp createdAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> createdAtBuilder_;
      /**
       * 
       * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       * 
       *
       * .google.protobuf.Timestamp created_at = 3;
       * @return Whether the createdAt field is set.
       */
      public boolean hasCreatedAt() {
        return createdAtBuilder_ != null || createdAt_ != null;
      }
      /**
       * 
       * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       * 
       *
       * .google.protobuf.Timestamp created_at = 3;
       * @return The createdAt.
       */
      public com.google.protobuf.Timestamp getCreatedAt() {
        if (createdAtBuilder_ == null) {
          return createdAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : createdAt_;
        } else {
          return createdAtBuilder_.getMessage();
        }
      }
      /**
       * 
       * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       * 
       *
       * .google.protobuf.Timestamp created_at = 3;
       */
      public Builder setCreatedAt(com.google.protobuf.Timestamp value) {
        if (createdAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          createdAt_ = value;
          onChanged();
        } else {
          createdAtBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       * 
       *
       * .google.protobuf.Timestamp created_at = 3;
       */
      public Builder setCreatedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (createdAtBuilder_ == null) {
          createdAt_ = builderForValue.build();
          onChanged();
        } else {
          createdAtBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       * 
       *
       * .google.protobuf.Timestamp created_at = 3;
       */
      public Builder mergeCreatedAt(com.google.protobuf.Timestamp value) {
        if (createdAtBuilder_ == null) {
          if (createdAt_ != null) {
            createdAt_ =
              com.google.protobuf.Timestamp.newBuilder(createdAt_).mergeFrom(value).buildPartial();
          } else {
            createdAt_ = value;
          }
          onChanged();
        } else {
          createdAtBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       * 
       *
       * .google.protobuf.Timestamp created_at = 3;
       */
      public Builder clearCreatedAt() {
        if (createdAtBuilder_ == null) {
          createdAt_ = null;
          onChanged();
        } else {
          createdAt_ = null;
          createdAtBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       * 
       *
       * .google.protobuf.Timestamp created_at = 3;
       */
      public com.google.protobuf.Timestamp.Builder getCreatedAtBuilder() {
        
        onChanged();
        return getCreatedAtFieldBuilder().getBuilder();
      }
      /**
       * 
       * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       * 
       *
       * .google.protobuf.Timestamp created_at = 3;
       */
      public com.google.protobuf.TimestampOrBuilder getCreatedAtOrBuilder() {
        if (createdAtBuilder_ != null) {
          return createdAtBuilder_.getMessageOrBuilder();
        } else {
          return createdAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : createdAt_;
        }
      }
      /**
       * 
       * Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       * 
       *
       * .google.protobuf.Timestamp created_at = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getCreatedAtFieldBuilder() {
        if (createdAtBuilder_ == null) {
          createdAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getCreatedAt(),
                  getParentForChildren(),
                  isClean());
          createdAt_ = null;
        }
        return createdAtBuilder_;
      }
      private java.lang.Object name_ = "";
      /**
       * 
       * Name of the ClickHouse cluster.
       * The name is unique within the folder. 1-63 characters long.
       * 
       *
       * string name = 4;
       * @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 ClickHouse cluster.
       * The name is unique within the folder. 1-63 characters long.
       * 
       *
       * string name = 4;
       * @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 ClickHouse cluster.
       * The name is unique within the folder. 1-63 characters long.
       * 
       *
       * string name = 4;
       * @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 ClickHouse cluster.
       * The name is unique within the folder. 1-63 characters long.
       * 
       *
       * string name = 4;
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * 
       * Name of the ClickHouse cluster.
       * The name is unique within the folder. 1-63 characters long.
       * 
       *
       * string name = 4;
       * @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 ClickHouse cluster. 0-256 characters long.
       * 
       *
       * string description = 5;
       * @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 ClickHouse cluster. 0-256 characters long.
       * 
       *
       * string description = 5;
       * @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 ClickHouse cluster. 0-256 characters long.
       * 
       *
       * string description = 5;
       * @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 ClickHouse cluster. 0-256 characters long.
       * 
       *
       * string description = 5;
       * @return This builder for chaining.
       */
      public Builder clearDescription() {
        
        description_ = getDefaultInstance().getDescription();
        onChanged();
        return this;
      }
      /**
       * 
       * Description of the ClickHouse cluster. 0-256 characters long.
       * 
       *
       * string description = 5;
       * @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 ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
       * 
       *
       * map<string, string> labels = 6;
       */
      @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 ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
       * 
       *
       * map<string, string> labels = 6;
       */
      @java.lang.Override
      public java.util.Map getLabelsMap() {
        return internalGetLabels().getMap();
      }
      /**
       * 
       * Custom labels for the ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
       * 
       *
       * map<string, string> labels = 6;
       */
      @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 ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
       * 
       *
       * map<string, string> labels = 6;
       */
      @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 ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
       * 
       *
       * map<string, string> labels = 6;
       */
      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 ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
       * 
       *
       * map<string, string> labels = 6;
       */
      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 ClickHouse cluster as `key:value` pairs. Maximum 64 per resource.
       * 
       *
       * map<string, string> labels = 6;
       */
      public Builder putAllLabels(
          java.util.Map values) {
        internalGetMutableLabels().getMutableMap()
            .putAll(values);
        return this;
      }
      private int environment_ = 0;
      /**
       * 
       * Deployment environment of the ClickHouse cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Environment environment = 7;
       * @return The enum numeric value on the wire for environment.
       */
      @java.lang.Override public int getEnvironmentValue() {
        return environment_;
      }
      /**
       * 
       * Deployment environment of the ClickHouse cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Environment environment = 7;
       * @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 ClickHouse cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Environment environment = 7;
       * @return The environment.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Environment getEnvironment() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Environment result = yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Environment.valueOf(environment_);
        return result == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Environment.UNRECOGNIZED : result;
      }
      /**
       * 
       * Deployment environment of the ClickHouse cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Environment environment = 7;
       * @param value The environment to set.
       * @return This builder for chaining.
       */
      public Builder setEnvironment(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Environment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        environment_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Deployment environment of the ClickHouse cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Environment environment = 7;
       * @return This builder for chaining.
       */
      public Builder clearEnvironment() {
        
        environment_ = 0;
        onChanged();
        return this;
      }
      private java.util.List monitoring_ =
        java.util.Collections.emptyList();
      private void ensureMonitoringIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          monitoring_ = new java.util.ArrayList(monitoring_);
          bitField0_ |= 0x00000002;
         }
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.MonitoringOrBuilder> monitoringBuilder_;
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public java.util.List getMonitoringList() {
        if (monitoringBuilder_ == null) {
          return java.util.Collections.unmodifiableList(monitoring_);
        } else {
          return monitoringBuilder_.getMessageList();
        }
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public int getMonitoringCount() {
        if (monitoringBuilder_ == null) {
          return monitoring_.size();
        } else {
          return monitoringBuilder_.getCount();
        }
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring getMonitoring(int index) {
        if (monitoringBuilder_ == null) {
          return monitoring_.get(index);
        } else {
          return monitoringBuilder_.getMessage(index);
        }
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public Builder setMonitoring(
          int index, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring value) {
        if (monitoringBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMonitoringIsMutable();
          monitoring_.set(index, value);
          onChanged();
        } else {
          monitoringBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public Builder setMonitoring(
          int index, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.Builder builderForValue) {
        if (monitoringBuilder_ == null) {
          ensureMonitoringIsMutable();
          monitoring_.set(index, builderForValue.build());
          onChanged();
        } else {
          monitoringBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public Builder addMonitoring(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring value) {
        if (monitoringBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMonitoringIsMutable();
          monitoring_.add(value);
          onChanged();
        } else {
          monitoringBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public Builder addMonitoring(
          int index, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring value) {
        if (monitoringBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMonitoringIsMutable();
          monitoring_.add(index, value);
          onChanged();
        } else {
          monitoringBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public Builder addMonitoring(
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.Builder builderForValue) {
        if (monitoringBuilder_ == null) {
          ensureMonitoringIsMutable();
          monitoring_.add(builderForValue.build());
          onChanged();
        } else {
          monitoringBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public Builder addMonitoring(
          int index, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.Builder builderForValue) {
        if (monitoringBuilder_ == null) {
          ensureMonitoringIsMutable();
          monitoring_.add(index, builderForValue.build());
          onChanged();
        } else {
          monitoringBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public Builder addAllMonitoring(
          java.lang.Iterable extends yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring> values) {
        if (monitoringBuilder_ == null) {
          ensureMonitoringIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, monitoring_);
          onChanged();
        } else {
          monitoringBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public Builder clearMonitoring() {
        if (monitoringBuilder_ == null) {
          monitoring_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          monitoringBuilder_.clear();
        }
        return this;
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public Builder removeMonitoring(int index) {
        if (monitoringBuilder_ == null) {
          ensureMonitoringIsMutable();
          monitoring_.remove(index);
          onChanged();
        } else {
          monitoringBuilder_.remove(index);
        }
        return this;
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.Builder getMonitoringBuilder(
          int index) {
        return getMonitoringFieldBuilder().getBuilder(index);
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.MonitoringOrBuilder getMonitoringOrBuilder(
          int index) {
        if (monitoringBuilder_ == null) {
          return monitoring_.get(index);  } else {
          return monitoringBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public java.util.List extends yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.MonitoringOrBuilder> 
           getMonitoringOrBuilderList() {
        if (monitoringBuilder_ != null) {
          return monitoringBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(monitoring_);
        }
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.Builder addMonitoringBuilder() {
        return getMonitoringFieldBuilder().addBuilder(
            yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.getDefaultInstance());
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.Builder addMonitoringBuilder(
          int index) {
        return getMonitoringFieldBuilder().addBuilder(
            index, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.getDefaultInstance());
      }
      /**
       * 
       * Description of monitoring systems relevant to the ClickHouse cluster.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Monitoring monitoring = 8;
       */
      public java.util.List 
           getMonitoringBuilderList() {
        return getMonitoringFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.MonitoringOrBuilder> 
          getMonitoringFieldBuilder() {
        if (monitoringBuilder_ == null) {
          monitoringBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.MonitoringOrBuilder>(
                  monitoring_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          monitoring_ = null;
        }
        return monitoringBuilder_;
      }
      private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig config_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfigOrBuilder> configBuilder_;
      /**
       * 
       * Configuration of the ClickHouse cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
       * @return Whether the config field is set.
       */
      public boolean hasConfig() {
        return configBuilder_ != null || config_ != null;
      }
      /**
       * 
       * Configuration of the ClickHouse cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
       * @return The config.
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig getConfig() {
        if (configBuilder_ == null) {
          return config_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.getDefaultInstance() : config_;
        } else {
          return configBuilder_.getMessage();
        }
      }
      /**
       * 
       * Configuration of the ClickHouse cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
       */
      public Builder setConfig(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig value) {
        if (configBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          config_ = value;
          onChanged();
        } else {
          configBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Configuration of the ClickHouse cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
       */
      public Builder setConfig(
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Builder builderForValue) {
        if (configBuilder_ == null) {
          config_ = builderForValue.build();
          onChanged();
        } else {
          configBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Configuration of the ClickHouse cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
       */
      public Builder mergeConfig(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig value) {
        if (configBuilder_ == null) {
          if (config_ != null) {
            config_ =
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.newBuilder(config_).mergeFrom(value).buildPartial();
          } else {
            config_ = value;
          }
          onChanged();
        } else {
          configBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Configuration of the ClickHouse cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
       */
      public Builder clearConfig() {
        if (configBuilder_ == null) {
          config_ = null;
          onChanged();
        } else {
          config_ = null;
          configBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Configuration of the ClickHouse cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Builder getConfigBuilder() {
        
        onChanged();
        return getConfigFieldBuilder().getBuilder();
      }
      /**
       * 
       * Configuration of the ClickHouse cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfigOrBuilder getConfigOrBuilder() {
        if (configBuilder_ != null) {
          return configBuilder_.getMessageOrBuilder();
        } else {
          return config_ == null ?
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.getDefaultInstance() : config_;
        }
      }
      /**
       * 
       * Configuration of the ClickHouse cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig config = 9;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfigOrBuilder> 
          getConfigFieldBuilder() {
        if (configBuilder_ == null) {
          configBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfigOrBuilder>(
                  getConfig(),
                  getParentForChildren(),
                  isClean());
          config_ = null;
        }
        return configBuilder_;
      }
      private java.lang.Object networkId_ = "";
      /**
       * 
       * ID of the network that the cluster belongs to.
       * 
       *
       * string network_id = 10;
       * @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 that the cluster belongs to.
       * 
       *
       * string network_id = 10;
       * @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 that the cluster belongs to.
       * 
       *
       * string network_id = 10;
       * @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 that the cluster belongs to.
       * 
       *
       * string network_id = 10;
       * @return This builder for chaining.
       */
      public Builder clearNetworkId() {
        
        networkId_ = getDefaultInstance().getNetworkId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the network that the cluster belongs to.
       * 
       *
       * string network_id = 10;
       * @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 int health_ = 0;
      /**
       * 
       * Aggregated cluster health.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Health health = 11;
       * @return The enum numeric value on the wire for health.
       */
      @java.lang.Override public int getHealthValue() {
        return health_;
      }
      /**
       * 
       * Aggregated cluster health.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Health health = 11;
       * @param value The enum numeric value on the wire for health to set.
       * @return This builder for chaining.
       */
      public Builder setHealthValue(int value) {
        
        health_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Aggregated cluster health.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Health health = 11;
       * @return The health.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Health getHealth() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Health result = yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Health.valueOf(health_);
        return result == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Health.UNRECOGNIZED : result;
      }
      /**
       * 
       * Aggregated cluster health.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Health health = 11;
       * @param value The health to set.
       * @return This builder for chaining.
       */
      public Builder setHealth(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Health value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        health_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Aggregated cluster health.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Health health = 11;
       * @return This builder for chaining.
       */
      public Builder clearHealth() {
        
        health_ = 0;
        onChanged();
        return this;
      }
      private int status_ = 0;
      /**
       * 
       * Current state of the cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Status status = 12;
       * @return The enum numeric value on the wire for status.
       */
      @java.lang.Override public int getStatusValue() {
        return status_;
      }
      /**
       * 
       * Current state of the cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Status status = 12;
       * @param value The enum numeric value on the wire for status to set.
       * @return This builder for chaining.
       */
      public Builder setStatusValue(int value) {
        
        status_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Current state of the cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Status status = 12;
       * @return The status.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Status getStatus() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Status result = yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Status.valueOf(status_);
        return result == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Status.UNRECOGNIZED : result;
      }
      /**
       * 
       * Current state of the cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Status status = 12;
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        status_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Current state of the cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Cluster.Status status = 12;
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        
        status_ = 0;
        onChanged();
        return this;
      }
      private java.lang.Object serviceAccountId_ = "";
      /**
       * 
       * ID of the service account used for access to Object Storage.
       * 
       *
       * string service_account_id = 13;
       * @return The serviceAccountId.
       */
      public java.lang.String getServiceAccountId() {
        java.lang.Object ref = serviceAccountId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          serviceAccountId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the service account used for access to Object Storage.
       * 
       *
       * string service_account_id = 13;
       * @return The bytes for serviceAccountId.
       */
      public com.google.protobuf.ByteString
          getServiceAccountIdBytes() {
        java.lang.Object ref = serviceAccountId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          serviceAccountId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the service account used for access to Object Storage.
       * 
       *
       * string service_account_id = 13;
       * @param value The serviceAccountId to set.
       * @return This builder for chaining.
       */
      public Builder setServiceAccountId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        serviceAccountId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the service account used for access to Object Storage.
       * 
       *
       * string service_account_id = 13;
       * @return This builder for chaining.
       */
      public Builder clearServiceAccountId() {
        
        serviceAccountId_ = getDefaultInstance().getServiceAccountId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the service account used for access to Object Storage.
       * 
       *
       * string service_account_id = 13;
       * @param value The bytes for serviceAccountId to set.
       * @return This builder for chaining.
       */
      public Builder setServiceAccountIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        serviceAccountId_ = value;
        onChanged();
        return this;
      }
      private yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow maintenanceWindow_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow, yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow.Builder, yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindowOrBuilder> maintenanceWindowBuilder_;
      /**
       * 
       * Maintenance window for the cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
       * @return Whether the maintenanceWindow field is set.
       */
      public boolean hasMaintenanceWindow() {
        return maintenanceWindowBuilder_ != null || maintenanceWindow_ != null;
      }
      /**
       * 
       * Maintenance window for the cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
       * @return The maintenanceWindow.
       */
      public yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow getMaintenanceWindow() {
        if (maintenanceWindowBuilder_ == null) {
          return maintenanceWindow_ == null ? yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow.getDefaultInstance() : maintenanceWindow_;
        } else {
          return maintenanceWindowBuilder_.getMessage();
        }
      }
      /**
       * 
       * Maintenance window for the cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
       */
      public Builder setMaintenanceWindow(yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow value) {
        if (maintenanceWindowBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          maintenanceWindow_ = value;
          onChanged();
        } else {
          maintenanceWindowBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Maintenance window for the cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
       */
      public Builder setMaintenanceWindow(
          yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow.Builder builderForValue) {
        if (maintenanceWindowBuilder_ == null) {
          maintenanceWindow_ = builderForValue.build();
          onChanged();
        } else {
          maintenanceWindowBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Maintenance window for the cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
       */
      public Builder mergeMaintenanceWindow(yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow value) {
        if (maintenanceWindowBuilder_ == null) {
          if (maintenanceWindow_ != null) {
            maintenanceWindow_ =
              yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow.newBuilder(maintenanceWindow_).mergeFrom(value).buildPartial();
          } else {
            maintenanceWindow_ = value;
          }
          onChanged();
        } else {
          maintenanceWindowBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Maintenance window for the cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
       */
      public Builder clearMaintenanceWindow() {
        if (maintenanceWindowBuilder_ == null) {
          maintenanceWindow_ = null;
          onChanged();
        } else {
          maintenanceWindow_ = null;
          maintenanceWindowBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Maintenance window for the cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow.Builder getMaintenanceWindowBuilder() {
        
        onChanged();
        return getMaintenanceWindowFieldBuilder().getBuilder();
      }
      /**
       * 
       * Maintenance window for the cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindowOrBuilder getMaintenanceWindowOrBuilder() {
        if (maintenanceWindowBuilder_ != null) {
          return maintenanceWindowBuilder_.getMessageOrBuilder();
        } else {
          return maintenanceWindow_ == null ?
              yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow.getDefaultInstance() : maintenanceWindow_;
        }
      }
      /**
       * 
       * Maintenance window for the cluster.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceWindow maintenance_window = 14;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow, yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow.Builder, yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindowOrBuilder> 
          getMaintenanceWindowFieldBuilder() {
        if (maintenanceWindowBuilder_ == null) {
          maintenanceWindowBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow, yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindow.Builder, yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceWindowOrBuilder>(
                  getMaintenanceWindow(),
                  getParentForChildren(),
                  isClean());
          maintenanceWindow_ = null;
        }
        return maintenanceWindowBuilder_;
      }
      private yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation plannedOperation_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation, yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation.Builder, yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperationOrBuilder> plannedOperationBuilder_;
      /**
       * 
       * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
       * @return Whether the plannedOperation field is set.
       */
      public boolean hasPlannedOperation() {
        return plannedOperationBuilder_ != null || plannedOperation_ != null;
      }
      /**
       * 
       * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
       * @return The plannedOperation.
       */
      public yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation getPlannedOperation() {
        if (plannedOperationBuilder_ == null) {
          return plannedOperation_ == null ? yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation.getDefaultInstance() : plannedOperation_;
        } else {
          return plannedOperationBuilder_.getMessage();
        }
      }
      /**
       * 
       * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
       */
      public Builder setPlannedOperation(yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation value) {
        if (plannedOperationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          plannedOperation_ = value;
          onChanged();
        } else {
          plannedOperationBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
       */
      public Builder setPlannedOperation(
          yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation.Builder builderForValue) {
        if (plannedOperationBuilder_ == null) {
          plannedOperation_ = builderForValue.build();
          onChanged();
        } else {
          plannedOperationBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
       */
      public Builder mergePlannedOperation(yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation value) {
        if (plannedOperationBuilder_ == null) {
          if (plannedOperation_ != null) {
            plannedOperation_ =
              yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation.newBuilder(plannedOperation_).mergeFrom(value).buildPartial();
          } else {
            plannedOperation_ = value;
          }
          onChanged();
        } else {
          plannedOperationBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
       */
      public Builder clearPlannedOperation() {
        if (plannedOperationBuilder_ == null) {
          plannedOperation_ = null;
          onChanged();
        } else {
          plannedOperation_ = null;
          plannedOperationBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation.Builder getPlannedOperationBuilder() {
        
        onChanged();
        return getPlannedOperationFieldBuilder().getBuilder();
      }
      /**
       * 
       * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperationOrBuilder getPlannedOperationOrBuilder() {
        if (plannedOperationBuilder_ != null) {
          return plannedOperationBuilder_.getMessageOrBuilder();
        } else {
          return plannedOperation_ == null ?
              yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation.getDefaultInstance() : plannedOperation_;
        }
      }
      /**
       * 
       * Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.MaintenanceOperation planned_operation = 15;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation, yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation.Builder, yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperationOrBuilder> 
          getPlannedOperationFieldBuilder() {
        if (plannedOperationBuilder_ == null) {
          plannedOperationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation, yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperation.Builder, yandex.cloud.api.mdb.clickhouse.v1.Maintenance.MaintenanceOperationOrBuilder>(
                  getPlannedOperation(),
                  getParentForChildren(),
                  isClean());
          plannedOperation_ = null;
        }
        return plannedOperationBuilder_;
      }
      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 = 16;
       * @return A list containing the securityGroupIds.
       */
      public com.google.protobuf.ProtocolStringList
          getSecurityGroupIdsList() {
        return securityGroupIds_.getUnmodifiableView();
      }
      /**
       * 
       * User security groups
       * 
       *
       * repeated string security_group_ids = 16;
       * @return The count of securityGroupIds.
       */
      public int getSecurityGroupIdsCount() {
        return securityGroupIds_.size();
      }
      /**
       * 
       * User security groups
       * 
       *
       * repeated string security_group_ids = 16;
       * @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 = 16;
       * @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 = 16;
       * @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 = 16;
       * @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 = 16;
       * @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 = 16;
       * @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 = 16;
       * @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 = 17;
       * @return The deletionProtection.
       */
      @java.lang.Override
      public boolean getDeletionProtection() {
        return deletionProtection_;
      }
      /**
       * 
       * Deletion Protection inhibits deletion of the cluster
       * 
       *
       * bool deletion_protection = 17;
       * @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 = 17;
       * @return This builder for chaining.
       */
      public Builder clearDeletionProtection() {
        
        deletionProtection_ = 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.clickhouse.v1.Cluster)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.clickhouse.v1.Cluster)
    private static final yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster();
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Cluster getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public Cluster parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Cluster(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.clickhouse.v1.ClusterOuterClass.Cluster getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface MonitoringOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.clickhouse.v1.Monitoring)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Name of the monitoring system.
     * 
     *
     * string name = 1;
     * @return The name.
     */
    java.lang.String getName();
    /**
     * 
     * Name of the monitoring system.
     * 
     *
     * string name = 1;
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();
    /**
     * 
     * Description of the monitoring system.
     * 
     *
     * string description = 2;
     * @return The description.
     */
    java.lang.String getDescription();
    /**
     * 
     * Description of the monitoring system.
     * 
     *
     * string description = 2;
     * @return The bytes for description.
     */
    com.google.protobuf.ByteString
        getDescriptionBytes();
    /**
     * 
     * Link to the monitoring system charts for the ClickHouse cluster.
     * 
     *
     * string link = 3;
     * @return The link.
     */
    java.lang.String getLink();
    /**
     * 
     * Link to the monitoring system charts for the ClickHouse cluster.
     * 
     *
     * string link = 3;
     * @return The bytes for link.
     */
    com.google.protobuf.ByteString
        getLinkBytes();
  }
  /**
   * 
   * Monitoring system metadata.
   * 
   *
   * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.Monitoring}
   */
  public static final class Monitoring extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.clickhouse.v1.Monitoring)
      MonitoringOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Monitoring.newBuilder() to construct.
    private Monitoring(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private Monitoring() {
      name_ = "";
      description_ = "";
      link_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Monitoring();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Monitoring(
        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();
              name_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              description_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              link_ = 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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Monitoring_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Monitoring_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.Builder.class);
    }
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * 
     * Name of the monitoring system.
     * 
     *
     * string name = 1;
     * @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 monitoring system.
     * 
     *
     * string name = 1;
     * @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 = 2;
    private volatile java.lang.Object description_;
    /**
     * 
     * Description of the monitoring system.
     * 
     *
     * string description = 2;
     * @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 monitoring system.
     * 
     *
     * string description = 2;
     * @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 LINK_FIELD_NUMBER = 3;
    private volatile java.lang.Object link_;
    /**
     * 
     * Link to the monitoring system charts for the ClickHouse cluster.
     * 
     *
     * string link = 3;
     * @return The link.
     */
    @java.lang.Override
    public java.lang.String getLink() {
      java.lang.Object ref = link_;
      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();
        link_ = s;
        return s;
      }
    }
    /**
     * 
     * Link to the monitoring system charts for the ClickHouse cluster.
     * 
     *
     * string link = 3;
     * @return The bytes for link.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLinkBytes() {
      java.lang.Object ref = link_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        link_ = 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(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, description_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(link_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, link_);
      }
      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(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, description_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(link_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, link_);
      }
      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.clickhouse.v1.ClusterOuterClass.Monitoring)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring other = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring) obj;
      if (!getName()
          .equals(other.getName())) return false;
      if (!getDescription()
          .equals(other.getDescription())) return false;
      if (!getLink()
          .equals(other.getLink())) 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) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
      hash = (53 * hash) + getDescription().hashCode();
      hash = (37 * hash) + LINK_FIELD_NUMBER;
      hash = (53 * hash) + getLink().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring 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.clickhouse.v1.ClusterOuterClass.Monitoring parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring 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.clickhouse.v1.ClusterOuterClass.Monitoring parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring 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.clickhouse.v1.ClusterOuterClass.Monitoring parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring 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.clickhouse.v1.ClusterOuterClass.Monitoring parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring 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.clickhouse.v1.ClusterOuterClass.Monitoring 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;
    }
    /**
     * 
     * Monitoring system metadata.
     * 
     *
     * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.Monitoring}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.clickhouse.v1.Monitoring)
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.MonitoringOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Monitoring_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Monitoring_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.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();
        name_ = "";
        description_ = "";
        link_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Monitoring_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring build() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring buildPartial() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring result = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring(this);
        result.name_ = name_;
        result.description_ = description_;
        result.link_ = link_;
        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.clickhouse.v1.ClusterOuterClass.Monitoring) {
          return mergeFrom((yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring other) {
        if (other == yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring.getDefaultInstance()) return this;
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (!other.getDescription().isEmpty()) {
          description_ = other.description_;
          onChanged();
        }
        if (!other.getLink().isEmpty()) {
          link_ = other.link_;
          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.clickhouse.v1.ClusterOuterClass.Monitoring parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object name_ = "";
      /**
       * 
       * Name of the monitoring system.
       * 
       *
       * string name = 1;
       * @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 monitoring system.
       * 
       *
       * string name = 1;
       * @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 monitoring system.
       * 
       *
       * string name = 1;
       * @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 monitoring system.
       * 
       *
       * string name = 1;
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * 
       * Name of the monitoring system.
       * 
       *
       * string name = 1;
       * @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 monitoring system.
       * 
       *
       * string description = 2;
       * @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 monitoring system.
       * 
       *
       * string description = 2;
       * @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 monitoring system.
       * 
       *
       * string description = 2;
       * @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 monitoring system.
       * 
       *
       * string description = 2;
       * @return This builder for chaining.
       */
      public Builder clearDescription() {
        
        description_ = getDefaultInstance().getDescription();
        onChanged();
        return this;
      }
      /**
       * 
       * Description of the monitoring system.
       * 
       *
       * string description = 2;
       * @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 java.lang.Object link_ = "";
      /**
       * 
       * Link to the monitoring system charts for the ClickHouse cluster.
       * 
       *
       * string link = 3;
       * @return The link.
       */
      public java.lang.String getLink() {
        java.lang.Object ref = link_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          link_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * Link to the monitoring system charts for the ClickHouse cluster.
       * 
       *
       * string link = 3;
       * @return The bytes for link.
       */
      public com.google.protobuf.ByteString
          getLinkBytes() {
        java.lang.Object ref = link_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          link_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * Link to the monitoring system charts for the ClickHouse cluster.
       * 
       *
       * string link = 3;
       * @param value The link to set.
       * @return This builder for chaining.
       */
      public Builder setLink(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        link_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Link to the monitoring system charts for the ClickHouse cluster.
       * 
       *
       * string link = 3;
       * @return This builder for chaining.
       */
      public Builder clearLink() {
        
        link_ = getDefaultInstance().getLink();
        onChanged();
        return this;
      }
      /**
       * 
       * Link to the monitoring system charts for the ClickHouse cluster.
       * 
       *
       * string link = 3;
       * @param value The bytes for link to set.
       * @return This builder for chaining.
       */
      public Builder setLinkBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        link_ = 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.clickhouse.v1.Monitoring)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.clickhouse.v1.Monitoring)
    private static final yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring();
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Monitoring getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public Monitoring parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Monitoring(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.clickhouse.v1.ClusterOuterClass.Monitoring getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface ClusterConfigOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.clickhouse.v1.ClusterConfig)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Version of the ClickHouse server software.
     * 
     *
     * string version = 1;
     * @return The version.
     */
    java.lang.String getVersion();
    /**
     * 
     * Version of the ClickHouse server software.
     * 
     *
     * string version = 1;
     * @return The bytes for version.
     */
    com.google.protobuf.ByteString
        getVersionBytes();
    /**
     * 
     * Configuration and resource allocation for ClickHouse hosts.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
     * @return Whether the clickhouse field is set.
     */
    boolean hasClickhouse();
    /**
     * 
     * Configuration and resource allocation for ClickHouse hosts.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
     * @return The clickhouse.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse getClickhouse();
    /**
     * 
     * Configuration and resource allocation for ClickHouse hosts.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.ClickhouseOrBuilder getClickhouseOrBuilder();
    /**
     * 
     * Configuration and resource allocation for ZooKeeper hosts.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
     * @return Whether the zookeeper field is set.
     */
    boolean hasZookeeper();
    /**
     * 
     * Configuration and resource allocation for ZooKeeper hosts.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
     * @return The zookeeper.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper getZookeeper();
    /**
     * 
     * Configuration and resource allocation for ZooKeeper hosts.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.ZookeeperOrBuilder getZookeeperOrBuilder();
    /**
     * 
     * Time to start the daily backup, in the UTC timezone.
     * 
     *
     * .google.type.TimeOfDay backup_window_start = 4;
     * @return Whether the backupWindowStart field is set.
     */
    boolean hasBackupWindowStart();
    /**
     * 
     * Time to start the daily backup, in the UTC timezone.
     * 
     *
     * .google.type.TimeOfDay backup_window_start = 4;
     * @return The backupWindowStart.
     */
    com.google.type.TimeOfDay getBackupWindowStart();
    /**
     * 
     * Time to start the daily backup, in the UTC timezone.
     * 
     *
     * .google.type.TimeOfDay backup_window_start = 4;
     */
    com.google.type.TimeOfDayOrBuilder getBackupWindowStartOrBuilder();
    /**
     * 
     * Access policy for external services.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
     * @return Whether the access field is set.
     */
    boolean hasAccess();
    /**
     * 
     * Access policy for external services.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
     * @return The access.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access getAccess();
    /**
     * 
     * Access policy for external services.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.AccessOrBuilder getAccessOrBuilder();
    /**
     * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
     * @return Whether the cloudStorage field is set.
     */
    boolean hasCloudStorage();
    /**
     * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
     * @return The cloudStorage.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage getCloudStorage();
    /**
     * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorageOrBuilder getCloudStorageOrBuilder();
    /**
     * 
     * Whether database management through SQL commands is enabled.
     * 
     *
     * .google.protobuf.BoolValue sql_database_management = 7;
     * @return Whether the sqlDatabaseManagement field is set.
     */
    boolean hasSqlDatabaseManagement();
    /**
     * 
     * Whether database management through SQL commands is enabled.
     * 
     *
     * .google.protobuf.BoolValue sql_database_management = 7;
     * @return The sqlDatabaseManagement.
     */
    com.google.protobuf.BoolValue getSqlDatabaseManagement();
    /**
     * 
     * Whether database management through SQL commands is enabled.
     * 
     *
     * .google.protobuf.BoolValue sql_database_management = 7;
     */
    com.google.protobuf.BoolValueOrBuilder getSqlDatabaseManagementOrBuilder();
    /**
     * 
     * Whether user management through SQL commands is enabled.
     * 
     *
     * .google.protobuf.BoolValue sql_user_management = 8;
     * @return Whether the sqlUserManagement field is set.
     */
    boolean hasSqlUserManagement();
    /**
     * 
     * Whether user management through SQL commands is enabled.
     * 
     *
     * .google.protobuf.BoolValue sql_user_management = 8;
     * @return The sqlUserManagement.
     */
    com.google.protobuf.BoolValue getSqlUserManagement();
    /**
     * 
     * Whether user management through SQL commands is enabled.
     * 
     *
     * .google.protobuf.BoolValue sql_user_management = 8;
     */
    com.google.protobuf.BoolValueOrBuilder getSqlUserManagementOrBuilder();
    /**
     * 
     * Whether cluster should use embedded Keeper instead of Zookeeper.
     * 
     *
     * .google.protobuf.BoolValue embedded_keeper = 9;
     * @return Whether the embeddedKeeper field is set.
     */
    boolean hasEmbeddedKeeper();
    /**
     * 
     * Whether cluster should use embedded Keeper instead of Zookeeper.
     * 
     *
     * .google.protobuf.BoolValue embedded_keeper = 9;
     * @return The embeddedKeeper.
     */
    com.google.protobuf.BoolValue getEmbeddedKeeper();
    /**
     * 
     * Whether cluster should use embedded Keeper instead of Zookeeper.
     * 
     *
     * .google.protobuf.BoolValue embedded_keeper = 9;
     */
    com.google.protobuf.BoolValueOrBuilder getEmbeddedKeeperOrBuilder();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.ClusterConfig}
   */
  public static final class ClusterConfig extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.clickhouse.v1.ClusterConfig)
      ClusterConfigOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ClusterConfig.newBuilder() to construct.
    private ClusterConfig(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private ClusterConfig() {
      version_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ClusterConfig();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ClusterConfig(
        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();
              version_ = s;
              break;
            }
            case 18: {
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.Builder subBuilder = null;
              if (clickhouse_ != null) {
                subBuilder = clickhouse_.toBuilder();
              }
              clickhouse_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(clickhouse_);
                clickhouse_ = subBuilder.buildPartial();
              }
              break;
            }
            case 26: {
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.Builder subBuilder = null;
              if (zookeeper_ != null) {
                subBuilder = zookeeper_.toBuilder();
              }
              zookeeper_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(zookeeper_);
                zookeeper_ = subBuilder.buildPartial();
              }
              break;
            }
            case 34: {
              com.google.type.TimeOfDay.Builder subBuilder = null;
              if (backupWindowStart_ != null) {
                subBuilder = backupWindowStart_.toBuilder();
              }
              backupWindowStart_ = input.readMessage(com.google.type.TimeOfDay.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(backupWindowStart_);
                backupWindowStart_ = subBuilder.buildPartial();
              }
              break;
            }
            case 42: {
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.Builder subBuilder = null;
              if (access_ != null) {
                subBuilder = access_.toBuilder();
              }
              access_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(access_);
                access_ = subBuilder.buildPartial();
              }
              break;
            }
            case 50: {
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.Builder subBuilder = null;
              if (cloudStorage_ != null) {
                subBuilder = cloudStorage_.toBuilder();
              }
              cloudStorage_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(cloudStorage_);
                cloudStorage_ = subBuilder.buildPartial();
              }
              break;
            }
            case 58: {
              com.google.protobuf.BoolValue.Builder subBuilder = null;
              if (sqlDatabaseManagement_ != null) {
                subBuilder = sqlDatabaseManagement_.toBuilder();
              }
              sqlDatabaseManagement_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(sqlDatabaseManagement_);
                sqlDatabaseManagement_ = subBuilder.buildPartial();
              }
              break;
            }
            case 66: {
              com.google.protobuf.BoolValue.Builder subBuilder = null;
              if (sqlUserManagement_ != null) {
                subBuilder = sqlUserManagement_.toBuilder();
              }
              sqlUserManagement_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(sqlUserManagement_);
                sqlUserManagement_ = subBuilder.buildPartial();
              }
              break;
            }
            case 74: {
              com.google.protobuf.BoolValue.Builder subBuilder = null;
              if (embeddedKeeper_ != null) {
                subBuilder = embeddedKeeper_.toBuilder();
              }
              embeddedKeeper_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(embeddedKeeper_);
                embeddedKeeper_ = 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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Builder.class);
    }
    public interface ClickhouseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse)
        com.google.protobuf.MessageOrBuilder {
      /**
       * 
       * Configuration settings of a ClickHouse server.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
       * @return Whether the config field is set.
       */
      boolean hasConfig();
      /**
       * 
       * Configuration settings of a ClickHouse server.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
       * @return The config.
       */
      yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet getConfig();
      /**
       * 
       * Configuration settings of a ClickHouse server.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
       */
      yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSetOrBuilder getConfigOrBuilder();
      /**
       * 
       * Resources allocated to ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
       * @return Whether the resources field is set.
       */
      boolean hasResources();
      /**
       * 
       * Resources allocated to ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
       * @return The resources.
       */
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources getResources();
      /**
       * 
       * Resources allocated to ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
       */
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder getResourcesOrBuilder();
    }
    /**
     * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse}
     */
    public static final class Clickhouse extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse)
        ClickhouseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Clickhouse.newBuilder() to construct.
      private Clickhouse(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
        super(builder);
      }
      private Clickhouse() {
      }
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Clickhouse();
      }
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Clickhouse(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.Builder subBuilder = null;
                if (config_ != null) {
                  subBuilder = config_.toBuilder();
                }
                config_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(config_);
                  config_ = subBuilder.buildPartial();
                }
                break;
              }
              case 18: {
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder subBuilder = null;
                if (resources_ != null) {
                  subBuilder = resources_.toBuilder();
                }
                resources_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(resources_);
                  resources_ = 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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Clickhouse_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Clickhouse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.Builder.class);
      }
      public static final int CONFIG_FIELD_NUMBER = 1;
      private yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet config_;
      /**
       * 
       * Configuration settings of a ClickHouse server.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
       * @return Whether the config field is set.
       */
      @java.lang.Override
      public boolean hasConfig() {
        return config_ != null;
      }
      /**
       * 
       * Configuration settings of a ClickHouse server.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
       * @return The config.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet getConfig() {
        return config_ == null ? yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.getDefaultInstance() : config_;
      }
      /**
       * 
       * Configuration settings of a ClickHouse server.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSetOrBuilder getConfigOrBuilder() {
        return getConfig();
      }
      public static final int RESOURCES_FIELD_NUMBER = 2;
      private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources resources_;
      /**
       * 
       * Resources allocated to ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
       * @return Whether the resources field is set.
       */
      @java.lang.Override
      public boolean hasResources() {
        return resources_ != null;
      }
      /**
       * 
       * Resources allocated to ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
       * @return The resources.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources getResources() {
        return resources_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.getDefaultInstance() : resources_;
      }
      /**
       * 
       * Resources allocated to ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder getResourcesOrBuilder() {
        return getResources();
      }
      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 (config_ != null) {
          output.writeMessage(1, getConfig());
        }
        if (resources_ != null) {
          output.writeMessage(2, getResources());
        }
        unknownFields.writeTo(output);
      }
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
        size = 0;
        if (config_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getConfig());
        }
        if (resources_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getResources());
        }
        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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse)) {
          return super.equals(obj);
        }
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse other = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse) obj;
        if (hasConfig() != other.hasConfig()) return false;
        if (hasConfig()) {
          if (!getConfig()
              .equals(other.getConfig())) return false;
        }
        if (hasResources() != other.hasResources()) return false;
        if (hasResources()) {
          if (!getResources()
              .equals(other.getResources())) 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 (hasConfig()) {
          hash = (37 * hash) + CONFIG_FIELD_NUMBER;
          hash = (53 * hash) + getConfig().hashCode();
        }
        if (hasResources()) {
          hash = (37 * hash) + RESOURCES_FIELD_NUMBER;
          hash = (53 * hash) + getResources().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse 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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse 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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse 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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse 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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse 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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse 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.clickhouse.v1.ClusterConfig.Clickhouse}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse)
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.ClickhouseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Clickhouse_descriptor;
        }
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Clickhouse_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.Builder.class);
        }
        // Construct using yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.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 (configBuilder_ == null) {
            config_ = null;
          } else {
            config_ = null;
            configBuilder_ = null;
          }
          if (resourcesBuilder_ == null) {
            resources_ = null;
          } else {
            resources_ = null;
            resourcesBuilder_ = null;
          }
          return this;
        }
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Clickhouse_descriptor;
        }
        @java.lang.Override
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse getDefaultInstanceForType() {
          return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.getDefaultInstance();
        }
        @java.lang.Override
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse build() {
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        @java.lang.Override
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse buildPartial() {
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse result = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse(this);
          if (configBuilder_ == null) {
            result.config_ = config_;
          } else {
            result.config_ = configBuilder_.build();
          }
          if (resourcesBuilder_ == null) {
            result.resources_ = resources_;
          } else {
            result.resources_ = resourcesBuilder_.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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse) {
            return mergeFrom((yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        public Builder mergeFrom(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse other) {
          if (other == yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.getDefaultInstance()) return this;
          if (other.hasConfig()) {
            mergeConfig(other.getConfig());
          }
          if (other.hasResources()) {
            mergeResources(other.getResources());
          }
          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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet config_;
        private com.google.protobuf.SingleFieldBuilderV3<
            yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet, yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.Builder, yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSetOrBuilder> configBuilder_;
        /**
         * 
         * Configuration settings of a ClickHouse server.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         * @return Whether the config field is set.
         */
        public boolean hasConfig() {
          return configBuilder_ != null || config_ != null;
        }
        /**
         * 
         * Configuration settings of a ClickHouse server.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         * @return The config.
         */
        public yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet getConfig() {
          if (configBuilder_ == null) {
            return config_ == null ? yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.getDefaultInstance() : config_;
          } else {
            return configBuilder_.getMessage();
          }
        }
        /**
         * 
         * Configuration settings of a ClickHouse server.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         */
        public Builder setConfig(yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet value) {
          if (configBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            config_ = value;
            onChanged();
          } else {
            configBuilder_.setMessage(value);
          }
          return this;
        }
        /**
         * 
         * Configuration settings of a ClickHouse server.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         */
        public Builder setConfig(
            yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.Builder builderForValue) {
          if (configBuilder_ == null) {
            config_ = builderForValue.build();
            onChanged();
          } else {
            configBuilder_.setMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * 
         * Configuration settings of a ClickHouse server.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         */
        public Builder mergeConfig(yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet value) {
          if (configBuilder_ == null) {
            if (config_ != null) {
              config_ =
                yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.newBuilder(config_).mergeFrom(value).buildPartial();
            } else {
              config_ = value;
            }
            onChanged();
          } else {
            configBuilder_.mergeFrom(value);
          }
          return this;
        }
        /**
         * 
         * Configuration settings of a ClickHouse server.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         */
        public Builder clearConfig() {
          if (configBuilder_ == null) {
            config_ = null;
            onChanged();
          } else {
            config_ = null;
            configBuilder_ = null;
          }
          return this;
        }
        /**
         * 
         * Configuration settings of a ClickHouse server.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         */
        public yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.Builder getConfigBuilder() {
          
          onChanged();
          return getConfigFieldBuilder().getBuilder();
        }
        /**
         * 
         * Configuration settings of a ClickHouse server.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         */
        public yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSetOrBuilder getConfigOrBuilder() {
          if (configBuilder_ != null) {
            return configBuilder_.getMessageOrBuilder();
          } else {
            return config_ == null ?
                yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.getDefaultInstance() : config_;
          }
        }
        /**
         * 
         * Configuration settings of a ClickHouse server.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet, yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.Builder, yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSetOrBuilder> 
            getConfigFieldBuilder() {
          if (configBuilder_ == null) {
            configBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet, yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.Builder, yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSetOrBuilder>(
                    getConfig(),
                    getParentForChildren(),
                    isClean());
            config_ = null;
          }
          return configBuilder_;
        }
        private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources resources_;
        private com.google.protobuf.SingleFieldBuilderV3<
            yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder> resourcesBuilder_;
        /**
         * 
         * Resources allocated to ClickHouse hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         * @return Whether the resources field is set.
         */
        public boolean hasResources() {
          return resourcesBuilder_ != null || resources_ != null;
        }
        /**
         * 
         * Resources allocated to ClickHouse hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         * @return The resources.
         */
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources getResources() {
          if (resourcesBuilder_ == null) {
            return resources_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.getDefaultInstance() : resources_;
          } else {
            return resourcesBuilder_.getMessage();
          }
        }
        /**
         * 
         * Resources allocated to ClickHouse hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         */
        public Builder setResources(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources value) {
          if (resourcesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            resources_ = value;
            onChanged();
          } else {
            resourcesBuilder_.setMessage(value);
          }
          return this;
        }
        /**
         * 
         * Resources allocated to ClickHouse hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         */
        public Builder setResources(
            yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder builderForValue) {
          if (resourcesBuilder_ == null) {
            resources_ = builderForValue.build();
            onChanged();
          } else {
            resourcesBuilder_.setMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * 
         * Resources allocated to ClickHouse hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         */
        public Builder mergeResources(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources value) {
          if (resourcesBuilder_ == null) {
            if (resources_ != null) {
              resources_ =
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.newBuilder(resources_).mergeFrom(value).buildPartial();
            } else {
              resources_ = value;
            }
            onChanged();
          } else {
            resourcesBuilder_.mergeFrom(value);
          }
          return this;
        }
        /**
         * 
         * Resources allocated to ClickHouse hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         */
        public Builder clearResources() {
          if (resourcesBuilder_ == null) {
            resources_ = null;
            onChanged();
          } else {
            resources_ = null;
            resourcesBuilder_ = null;
          }
          return this;
        }
        /**
         * 
         * Resources allocated to ClickHouse hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         */
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder getResourcesBuilder() {
          
          onChanged();
          return getResourcesFieldBuilder().getBuilder();
        }
        /**
         * 
         * Resources allocated to ClickHouse hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         */
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder getResourcesOrBuilder() {
          if (resourcesBuilder_ != null) {
            return resourcesBuilder_.getMessageOrBuilder();
          } else {
            return resources_ == null ?
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.getDefaultInstance() : resources_;
          }
        }
        /**
         * 
         * Resources allocated to ClickHouse hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder> 
            getResourcesFieldBuilder() {
          if (resourcesBuilder_ == null) {
            resourcesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder>(
                    getResources(),
                    getParentForChildren(),
                    isClean());
            resources_ = null;
          }
          return resourcesBuilder_;
        }
        @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.clickhouse.v1.ClusterConfig.Clickhouse)
      }
      // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse)
      private static final yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse();
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public Clickhouse parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Clickhouse(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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
    }
    public interface ZookeeperOrBuilder extends
        // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper)
        com.google.protobuf.MessageOrBuilder {
      /**
       * 
       * Resources allocated to ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
       * @return Whether the resources field is set.
       */
      boolean hasResources();
      /**
       * 
       * Resources allocated to ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
       * @return The resources.
       */
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources getResources();
      /**
       * 
       * Resources allocated to ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
       */
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder getResourcesOrBuilder();
    }
    /**
     * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper}
     */
    public static final class Zookeeper extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper)
        ZookeeperOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Zookeeper.newBuilder() to construct.
      private Zookeeper(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
        super(builder);
      }
      private Zookeeper() {
      }
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Zookeeper();
      }
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Zookeeper(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder subBuilder = null;
                if (resources_ != null) {
                  subBuilder = resources_.toBuilder();
                }
                resources_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(resources_);
                  resources_ = 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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Zookeeper_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Zookeeper_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.Builder.class);
      }
      public static final int RESOURCES_FIELD_NUMBER = 1;
      private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources resources_;
      /**
       * 
       * Resources allocated to ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
       * @return Whether the resources field is set.
       */
      @java.lang.Override
      public boolean hasResources() {
        return resources_ != null;
      }
      /**
       * 
       * Resources allocated to ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
       * @return The resources.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources getResources() {
        return resources_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.getDefaultInstance() : resources_;
      }
      /**
       * 
       * Resources allocated to ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder getResourcesOrBuilder() {
        return getResources();
      }
      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 (resources_ != null) {
          output.writeMessage(1, getResources());
        }
        unknownFields.writeTo(output);
      }
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
        size = 0;
        if (resources_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getResources());
        }
        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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper)) {
          return super.equals(obj);
        }
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper other = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper) obj;
        if (hasResources() != other.hasResources()) return false;
        if (hasResources()) {
          if (!getResources()
              .equals(other.getResources())) 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 (hasResources()) {
          hash = (37 * hash) + RESOURCES_FIELD_NUMBER;
          hash = (53 * hash) + getResources().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper 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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper 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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper 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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper 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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper 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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper 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.clickhouse.v1.ClusterConfig.Zookeeper}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper)
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.ZookeeperOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Zookeeper_descriptor;
        }
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Zookeeper_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.Builder.class);
        }
        // Construct using yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.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 (resourcesBuilder_ == null) {
            resources_ = null;
          } else {
            resources_ = null;
            resourcesBuilder_ = null;
          }
          return this;
        }
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Zookeeper_descriptor;
        }
        @java.lang.Override
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper getDefaultInstanceForType() {
          return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.getDefaultInstance();
        }
        @java.lang.Override
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper build() {
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        @java.lang.Override
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper buildPartial() {
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper result = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper(this);
          if (resourcesBuilder_ == null) {
            result.resources_ = resources_;
          } else {
            result.resources_ = resourcesBuilder_.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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper) {
            return mergeFrom((yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        public Builder mergeFrom(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper other) {
          if (other == yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.getDefaultInstance()) return this;
          if (other.hasResources()) {
            mergeResources(other.getResources());
          }
          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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources resources_;
        private com.google.protobuf.SingleFieldBuilderV3<
            yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder> resourcesBuilder_;
        /**
         * 
         * Resources allocated to ZooKeeper hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
         * @return Whether the resources field is set.
         */
        public boolean hasResources() {
          return resourcesBuilder_ != null || resources_ != null;
        }
        /**
         * 
         * Resources allocated to ZooKeeper hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
         * @return The resources.
         */
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources getResources() {
          if (resourcesBuilder_ == null) {
            return resources_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.getDefaultInstance() : resources_;
          } else {
            return resourcesBuilder_.getMessage();
          }
        }
        /**
         * 
         * Resources allocated to ZooKeeper hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
         */
        public Builder setResources(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources value) {
          if (resourcesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            resources_ = value;
            onChanged();
          } else {
            resourcesBuilder_.setMessage(value);
          }
          return this;
        }
        /**
         * 
         * Resources allocated to ZooKeeper hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
         */
        public Builder setResources(
            yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder builderForValue) {
          if (resourcesBuilder_ == null) {
            resources_ = builderForValue.build();
            onChanged();
          } else {
            resourcesBuilder_.setMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * 
         * Resources allocated to ZooKeeper hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
         */
        public Builder mergeResources(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources value) {
          if (resourcesBuilder_ == null) {
            if (resources_ != null) {
              resources_ =
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.newBuilder(resources_).mergeFrom(value).buildPartial();
            } else {
              resources_ = value;
            }
            onChanged();
          } else {
            resourcesBuilder_.mergeFrom(value);
          }
          return this;
        }
        /**
         * 
         * Resources allocated to ZooKeeper hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
         */
        public Builder clearResources() {
          if (resourcesBuilder_ == null) {
            resources_ = null;
            onChanged();
          } else {
            resources_ = null;
            resourcesBuilder_ = null;
          }
          return this;
        }
        /**
         * 
         * Resources allocated to ZooKeeper hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
         */
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder getResourcesBuilder() {
          
          onChanged();
          return getResourcesFieldBuilder().getBuilder();
        }
        /**
         * 
         * Resources allocated to ZooKeeper hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
         */
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder getResourcesOrBuilder() {
          if (resourcesBuilder_ != null) {
            return resourcesBuilder_.getMessageOrBuilder();
          } else {
            return resources_ == null ?
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.getDefaultInstance() : resources_;
          }
        }
        /**
         * 
         * Resources allocated to ZooKeeper hosts.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 1;
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder> 
            getResourcesFieldBuilder() {
          if (resourcesBuilder_ == null) {
            resourcesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder>(
                    getResources(),
                    getParentForChildren(),
                    isClean());
            resources_ = null;
          }
          return resourcesBuilder_;
        }
        @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.clickhouse.v1.ClusterConfig.Zookeeper)
      }
      // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper)
      private static final yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper();
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public Zookeeper parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Zookeeper(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.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
    }
    public static final int VERSION_FIELD_NUMBER = 1;
    private volatile java.lang.Object version_;
    /**
     * 
     * Version of the ClickHouse server software.
     * 
     *
     * string version = 1;
     * @return The version.
     */
    @java.lang.Override
    public java.lang.String getVersion() {
      java.lang.Object ref = version_;
      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();
        version_ = s;
        return s;
      }
    }
    /**
     * 
     * Version of the ClickHouse server software.
     * 
     *
     * string version = 1;
     * @return The bytes for version.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVersionBytes() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        version_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int CLICKHOUSE_FIELD_NUMBER = 2;
    private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse clickhouse_;
    /**
     * 
     * Configuration and resource allocation for ClickHouse hosts.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
     * @return Whether the clickhouse field is set.
     */
    @java.lang.Override
    public boolean hasClickhouse() {
      return clickhouse_ != null;
    }
    /**
     * 
     * Configuration and resource allocation for ClickHouse hosts.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
     * @return The clickhouse.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse getClickhouse() {
      return clickhouse_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.getDefaultInstance() : clickhouse_;
    }
    /**
     * 
     * Configuration and resource allocation for ClickHouse hosts.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.ClickhouseOrBuilder getClickhouseOrBuilder() {
      return getClickhouse();
    }
    public static final int ZOOKEEPER_FIELD_NUMBER = 3;
    private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper zookeeper_;
    /**
     * 
     * Configuration and resource allocation for ZooKeeper hosts.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
     * @return Whether the zookeeper field is set.
     */
    @java.lang.Override
    public boolean hasZookeeper() {
      return zookeeper_ != null;
    }
    /**
     * 
     * Configuration and resource allocation for ZooKeeper hosts.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
     * @return The zookeeper.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper getZookeeper() {
      return zookeeper_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.getDefaultInstance() : zookeeper_;
    }
    /**
     * 
     * Configuration and resource allocation for ZooKeeper hosts.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.ZookeeperOrBuilder getZookeeperOrBuilder() {
      return getZookeeper();
    }
    public static final int BACKUP_WINDOW_START_FIELD_NUMBER = 4;
    private com.google.type.TimeOfDay backupWindowStart_;
    /**
     * 
     * Time to start the daily backup, in the UTC timezone.
     * 
     *
     * .google.type.TimeOfDay backup_window_start = 4;
     * @return Whether the backupWindowStart field is set.
     */
    @java.lang.Override
    public boolean hasBackupWindowStart() {
      return backupWindowStart_ != null;
    }
    /**
     * 
     * Time to start the daily backup, in the UTC timezone.
     * 
     *
     * .google.type.TimeOfDay backup_window_start = 4;
     * @return The backupWindowStart.
     */
    @java.lang.Override
    public com.google.type.TimeOfDay getBackupWindowStart() {
      return backupWindowStart_ == null ? com.google.type.TimeOfDay.getDefaultInstance() : backupWindowStart_;
    }
    /**
     * 
     * Time to start the daily backup, in the UTC timezone.
     * 
     *
     * .google.type.TimeOfDay backup_window_start = 4;
     */
    @java.lang.Override
    public com.google.type.TimeOfDayOrBuilder getBackupWindowStartOrBuilder() {
      return getBackupWindowStart();
    }
    public static final int ACCESS_FIELD_NUMBER = 5;
    private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access access_;
    /**
     * 
     * Access policy for external services.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
     * @return Whether the access field is set.
     */
    @java.lang.Override
    public boolean hasAccess() {
      return access_ != null;
    }
    /**
     * 
     * Access policy for external services.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
     * @return The access.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access getAccess() {
      return access_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.getDefaultInstance() : access_;
    }
    /**
     * 
     * Access policy for external services.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.AccessOrBuilder getAccessOrBuilder() {
      return getAccess();
    }
    public static final int CLOUD_STORAGE_FIELD_NUMBER = 6;
    private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage cloudStorage_;
    /**
     * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
     * @return Whether the cloudStorage field is set.
     */
    @java.lang.Override
    public boolean hasCloudStorage() {
      return cloudStorage_ != null;
    }
    /**
     * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
     * @return The cloudStorage.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage getCloudStorage() {
      return cloudStorage_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.getDefaultInstance() : cloudStorage_;
    }
    /**
     * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorageOrBuilder getCloudStorageOrBuilder() {
      return getCloudStorage();
    }
    public static final int SQL_DATABASE_MANAGEMENT_FIELD_NUMBER = 7;
    private com.google.protobuf.BoolValue sqlDatabaseManagement_;
    /**
     * 
     * Whether database management through SQL commands is enabled.
     * 
     *
     * .google.protobuf.BoolValue sql_database_management = 7;
     * @return Whether the sqlDatabaseManagement field is set.
     */
    @java.lang.Override
    public boolean hasSqlDatabaseManagement() {
      return sqlDatabaseManagement_ != null;
    }
    /**
     * 
     * Whether database management through SQL commands is enabled.
     * 
     *
     * .google.protobuf.BoolValue sql_database_management = 7;
     * @return The sqlDatabaseManagement.
     */
    @java.lang.Override
    public com.google.protobuf.BoolValue getSqlDatabaseManagement() {
      return sqlDatabaseManagement_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : sqlDatabaseManagement_;
    }
    /**
     * 
     * Whether database management through SQL commands is enabled.
     * 
     *
     * .google.protobuf.BoolValue sql_database_management = 7;
     */
    @java.lang.Override
    public com.google.protobuf.BoolValueOrBuilder getSqlDatabaseManagementOrBuilder() {
      return getSqlDatabaseManagement();
    }
    public static final int SQL_USER_MANAGEMENT_FIELD_NUMBER = 8;
    private com.google.protobuf.BoolValue sqlUserManagement_;
    /**
     * 
     * Whether user management through SQL commands is enabled.
     * 
     *
     * .google.protobuf.BoolValue sql_user_management = 8;
     * @return Whether the sqlUserManagement field is set.
     */
    @java.lang.Override
    public boolean hasSqlUserManagement() {
      return sqlUserManagement_ != null;
    }
    /**
     * 
     * Whether user management through SQL commands is enabled.
     * 
     *
     * .google.protobuf.BoolValue sql_user_management = 8;
     * @return The sqlUserManagement.
     */
    @java.lang.Override
    public com.google.protobuf.BoolValue getSqlUserManagement() {
      return sqlUserManagement_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : sqlUserManagement_;
    }
    /**
     * 
     * Whether user management through SQL commands is enabled.
     * 
     *
     * .google.protobuf.BoolValue sql_user_management = 8;
     */
    @java.lang.Override
    public com.google.protobuf.BoolValueOrBuilder getSqlUserManagementOrBuilder() {
      return getSqlUserManagement();
    }
    public static final int EMBEDDED_KEEPER_FIELD_NUMBER = 9;
    private com.google.protobuf.BoolValue embeddedKeeper_;
    /**
     * 
     * Whether cluster should use embedded Keeper instead of Zookeeper.
     * 
     *
     * .google.protobuf.BoolValue embedded_keeper = 9;
     * @return Whether the embeddedKeeper field is set.
     */
    @java.lang.Override
    public boolean hasEmbeddedKeeper() {
      return embeddedKeeper_ != null;
    }
    /**
     * 
     * Whether cluster should use embedded Keeper instead of Zookeeper.
     * 
     *
     * .google.protobuf.BoolValue embedded_keeper = 9;
     * @return The embeddedKeeper.
     */
    @java.lang.Override
    public com.google.protobuf.BoolValue getEmbeddedKeeper() {
      return embeddedKeeper_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : embeddedKeeper_;
    }
    /**
     * 
     * Whether cluster should use embedded Keeper instead of Zookeeper.
     * 
     *
     * .google.protobuf.BoolValue embedded_keeper = 9;
     */
    @java.lang.Override
    public com.google.protobuf.BoolValueOrBuilder getEmbeddedKeeperOrBuilder() {
      return getEmbeddedKeeper();
    }
    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(version_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, version_);
      }
      if (clickhouse_ != null) {
        output.writeMessage(2, getClickhouse());
      }
      if (zookeeper_ != null) {
        output.writeMessage(3, getZookeeper());
      }
      if (backupWindowStart_ != null) {
        output.writeMessage(4, getBackupWindowStart());
      }
      if (access_ != null) {
        output.writeMessage(5, getAccess());
      }
      if (cloudStorage_ != null) {
        output.writeMessage(6, getCloudStorage());
      }
      if (sqlDatabaseManagement_ != null) {
        output.writeMessage(7, getSqlDatabaseManagement());
      }
      if (sqlUserManagement_ != null) {
        output.writeMessage(8, getSqlUserManagement());
      }
      if (embeddedKeeper_ != null) {
        output.writeMessage(9, getEmbeddedKeeper());
      }
      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(version_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, version_);
      }
      if (clickhouse_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getClickhouse());
      }
      if (zookeeper_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getZookeeper());
      }
      if (backupWindowStart_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getBackupWindowStart());
      }
      if (access_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getAccess());
      }
      if (cloudStorage_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getCloudStorage());
      }
      if (sqlDatabaseManagement_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getSqlDatabaseManagement());
      }
      if (sqlUserManagement_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getSqlUserManagement());
      }
      if (embeddedKeeper_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getEmbeddedKeeper());
      }
      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.clickhouse.v1.ClusterOuterClass.ClusterConfig)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig other = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig) obj;
      if (!getVersion()
          .equals(other.getVersion())) return false;
      if (hasClickhouse() != other.hasClickhouse()) return false;
      if (hasClickhouse()) {
        if (!getClickhouse()
            .equals(other.getClickhouse())) return false;
      }
      if (hasZookeeper() != other.hasZookeeper()) return false;
      if (hasZookeeper()) {
        if (!getZookeeper()
            .equals(other.getZookeeper())) return false;
      }
      if (hasBackupWindowStart() != other.hasBackupWindowStart()) return false;
      if (hasBackupWindowStart()) {
        if (!getBackupWindowStart()
            .equals(other.getBackupWindowStart())) return false;
      }
      if (hasAccess() != other.hasAccess()) return false;
      if (hasAccess()) {
        if (!getAccess()
            .equals(other.getAccess())) return false;
      }
      if (hasCloudStorage() != other.hasCloudStorage()) return false;
      if (hasCloudStorage()) {
        if (!getCloudStorage()
            .equals(other.getCloudStorage())) return false;
      }
      if (hasSqlDatabaseManagement() != other.hasSqlDatabaseManagement()) return false;
      if (hasSqlDatabaseManagement()) {
        if (!getSqlDatabaseManagement()
            .equals(other.getSqlDatabaseManagement())) return false;
      }
      if (hasSqlUserManagement() != other.hasSqlUserManagement()) return false;
      if (hasSqlUserManagement()) {
        if (!getSqlUserManagement()
            .equals(other.getSqlUserManagement())) return false;
      }
      if (hasEmbeddedKeeper() != other.hasEmbeddedKeeper()) return false;
      if (hasEmbeddedKeeper()) {
        if (!getEmbeddedKeeper()
            .equals(other.getEmbeddedKeeper())) 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) + VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getVersion().hashCode();
      if (hasClickhouse()) {
        hash = (37 * hash) + CLICKHOUSE_FIELD_NUMBER;
        hash = (53 * hash) + getClickhouse().hashCode();
      }
      if (hasZookeeper()) {
        hash = (37 * hash) + ZOOKEEPER_FIELD_NUMBER;
        hash = (53 * hash) + getZookeeper().hashCode();
      }
      if (hasBackupWindowStart()) {
        hash = (37 * hash) + BACKUP_WINDOW_START_FIELD_NUMBER;
        hash = (53 * hash) + getBackupWindowStart().hashCode();
      }
      if (hasAccess()) {
        hash = (37 * hash) + ACCESS_FIELD_NUMBER;
        hash = (53 * hash) + getAccess().hashCode();
      }
      if (hasCloudStorage()) {
        hash = (37 * hash) + CLOUD_STORAGE_FIELD_NUMBER;
        hash = (53 * hash) + getCloudStorage().hashCode();
      }
      if (hasSqlDatabaseManagement()) {
        hash = (37 * hash) + SQL_DATABASE_MANAGEMENT_FIELD_NUMBER;
        hash = (53 * hash) + getSqlDatabaseManagement().hashCode();
      }
      if (hasSqlUserManagement()) {
        hash = (37 * hash) + SQL_USER_MANAGEMENT_FIELD_NUMBER;
        hash = (53 * hash) + getSqlUserManagement().hashCode();
      }
      if (hasEmbeddedKeeper()) {
        hash = (37 * hash) + EMBEDDED_KEEPER_FIELD_NUMBER;
        hash = (53 * hash) + getEmbeddedKeeper().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig 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.clickhouse.v1.ClusterOuterClass.ClusterConfig parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig 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.clickhouse.v1.ClusterOuterClass.ClusterConfig parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig 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.clickhouse.v1.ClusterOuterClass.ClusterConfig parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig 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.clickhouse.v1.ClusterOuterClass.ClusterConfig parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig 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.clickhouse.v1.ClusterOuterClass.ClusterConfig 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.clickhouse.v1.ClusterConfig}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.clickhouse.v1.ClusterConfig)
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.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();
        version_ = "";
        if (clickhouseBuilder_ == null) {
          clickhouse_ = null;
        } else {
          clickhouse_ = null;
          clickhouseBuilder_ = null;
        }
        if (zookeeperBuilder_ == null) {
          zookeeper_ = null;
        } else {
          zookeeper_ = null;
          zookeeperBuilder_ = null;
        }
        if (backupWindowStartBuilder_ == null) {
          backupWindowStart_ = null;
        } else {
          backupWindowStart_ = null;
          backupWindowStartBuilder_ = null;
        }
        if (accessBuilder_ == null) {
          access_ = null;
        } else {
          access_ = null;
          accessBuilder_ = null;
        }
        if (cloudStorageBuilder_ == null) {
          cloudStorage_ = null;
        } else {
          cloudStorage_ = null;
          cloudStorageBuilder_ = null;
        }
        if (sqlDatabaseManagementBuilder_ == null) {
          sqlDatabaseManagement_ = null;
        } else {
          sqlDatabaseManagement_ = null;
          sqlDatabaseManagementBuilder_ = null;
        }
        if (sqlUserManagementBuilder_ == null) {
          sqlUserManagement_ = null;
        } else {
          sqlUserManagement_ = null;
          sqlUserManagementBuilder_ = null;
        }
        if (embeddedKeeperBuilder_ == null) {
          embeddedKeeper_ = null;
        } else {
          embeddedKeeper_ = null;
          embeddedKeeperBuilder_ = null;
        }
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig build() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig buildPartial() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig result = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig(this);
        result.version_ = version_;
        if (clickhouseBuilder_ == null) {
          result.clickhouse_ = clickhouse_;
        } else {
          result.clickhouse_ = clickhouseBuilder_.build();
        }
        if (zookeeperBuilder_ == null) {
          result.zookeeper_ = zookeeper_;
        } else {
          result.zookeeper_ = zookeeperBuilder_.build();
        }
        if (backupWindowStartBuilder_ == null) {
          result.backupWindowStart_ = backupWindowStart_;
        } else {
          result.backupWindowStart_ = backupWindowStartBuilder_.build();
        }
        if (accessBuilder_ == null) {
          result.access_ = access_;
        } else {
          result.access_ = accessBuilder_.build();
        }
        if (cloudStorageBuilder_ == null) {
          result.cloudStorage_ = cloudStorage_;
        } else {
          result.cloudStorage_ = cloudStorageBuilder_.build();
        }
        if (sqlDatabaseManagementBuilder_ == null) {
          result.sqlDatabaseManagement_ = sqlDatabaseManagement_;
        } else {
          result.sqlDatabaseManagement_ = sqlDatabaseManagementBuilder_.build();
        }
        if (sqlUserManagementBuilder_ == null) {
          result.sqlUserManagement_ = sqlUserManagement_;
        } else {
          result.sqlUserManagement_ = sqlUserManagementBuilder_.build();
        }
        if (embeddedKeeperBuilder_ == null) {
          result.embeddedKeeper_ = embeddedKeeper_;
        } else {
          result.embeddedKeeper_ = embeddedKeeperBuilder_.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.clickhouse.v1.ClusterOuterClass.ClusterConfig) {
          return mergeFrom((yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig other) {
        if (other == yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.getDefaultInstance()) return this;
        if (!other.getVersion().isEmpty()) {
          version_ = other.version_;
          onChanged();
        }
        if (other.hasClickhouse()) {
          mergeClickhouse(other.getClickhouse());
        }
        if (other.hasZookeeper()) {
          mergeZookeeper(other.getZookeeper());
        }
        if (other.hasBackupWindowStart()) {
          mergeBackupWindowStart(other.getBackupWindowStart());
        }
        if (other.hasAccess()) {
          mergeAccess(other.getAccess());
        }
        if (other.hasCloudStorage()) {
          mergeCloudStorage(other.getCloudStorage());
        }
        if (other.hasSqlDatabaseManagement()) {
          mergeSqlDatabaseManagement(other.getSqlDatabaseManagement());
        }
        if (other.hasSqlUserManagement()) {
          mergeSqlUserManagement(other.getSqlUserManagement());
        }
        if (other.hasEmbeddedKeeper()) {
          mergeEmbeddedKeeper(other.getEmbeddedKeeper());
        }
        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.clickhouse.v1.ClusterOuterClass.ClusterConfig parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object version_ = "";
      /**
       * 
       * Version of the ClickHouse server software.
       * 
       *
       * string version = 1;
       * @return The version.
       */
      public java.lang.String getVersion() {
        java.lang.Object ref = version_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          version_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * Version of the ClickHouse server software.
       * 
       *
       * string version = 1;
       * @return The bytes for version.
       */
      public com.google.protobuf.ByteString
          getVersionBytes() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          version_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * Version of the ClickHouse server software.
       * 
       *
       * string version = 1;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Version of the ClickHouse server software.
       * 
       *
       * string version = 1;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        
        version_ = getDefaultInstance().getVersion();
        onChanged();
        return this;
      }
      /**
       * 
       * Version of the ClickHouse server software.
       * 
       *
       * string version = 1;
       * @param value The bytes for version to set.
       * @return This builder for chaining.
       */
      public Builder setVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        version_ = value;
        onChanged();
        return this;
      }
      private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse clickhouse_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.ClickhouseOrBuilder> clickhouseBuilder_;
      /**
       * 
       * Configuration and resource allocation for ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
       * @return Whether the clickhouse field is set.
       */
      public boolean hasClickhouse() {
        return clickhouseBuilder_ != null || clickhouse_ != null;
      }
      /**
       * 
       * Configuration and resource allocation for ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
       * @return The clickhouse.
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse getClickhouse() {
        if (clickhouseBuilder_ == null) {
          return clickhouse_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.getDefaultInstance() : clickhouse_;
        } else {
          return clickhouseBuilder_.getMessage();
        }
      }
      /**
       * 
       * Configuration and resource allocation for ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
       */
      public Builder setClickhouse(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse value) {
        if (clickhouseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          clickhouse_ = value;
          onChanged();
        } else {
          clickhouseBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Configuration and resource allocation for ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
       */
      public Builder setClickhouse(
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.Builder builderForValue) {
        if (clickhouseBuilder_ == null) {
          clickhouse_ = builderForValue.build();
          onChanged();
        } else {
          clickhouseBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Configuration and resource allocation for ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
       */
      public Builder mergeClickhouse(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse value) {
        if (clickhouseBuilder_ == null) {
          if (clickhouse_ != null) {
            clickhouse_ =
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.newBuilder(clickhouse_).mergeFrom(value).buildPartial();
          } else {
            clickhouse_ = value;
          }
          onChanged();
        } else {
          clickhouseBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Configuration and resource allocation for ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
       */
      public Builder clearClickhouse() {
        if (clickhouseBuilder_ == null) {
          clickhouse_ = null;
          onChanged();
        } else {
          clickhouse_ = null;
          clickhouseBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Configuration and resource allocation for ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.Builder getClickhouseBuilder() {
        
        onChanged();
        return getClickhouseFieldBuilder().getBuilder();
      }
      /**
       * 
       * Configuration and resource allocation for ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.ClickhouseOrBuilder getClickhouseOrBuilder() {
        if (clickhouseBuilder_ != null) {
          return clickhouseBuilder_.getMessageOrBuilder();
        } else {
          return clickhouse_ == null ?
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.getDefaultInstance() : clickhouse_;
        }
      }
      /**
       * 
       * Configuration and resource allocation for ClickHouse hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Clickhouse clickhouse = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.ClickhouseOrBuilder> 
          getClickhouseFieldBuilder() {
        if (clickhouseBuilder_ == null) {
          clickhouseBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Clickhouse.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.ClickhouseOrBuilder>(
                  getClickhouse(),
                  getParentForChildren(),
                  isClean());
          clickhouse_ = null;
        }
        return clickhouseBuilder_;
      }
      private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper zookeeper_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.ZookeeperOrBuilder> zookeeperBuilder_;
      /**
       * 
       * Configuration and resource allocation for ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
       * @return Whether the zookeeper field is set.
       */
      public boolean hasZookeeper() {
        return zookeeperBuilder_ != null || zookeeper_ != null;
      }
      /**
       * 
       * Configuration and resource allocation for ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
       * @return The zookeeper.
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper getZookeeper() {
        if (zookeeperBuilder_ == null) {
          return zookeeper_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.getDefaultInstance() : zookeeper_;
        } else {
          return zookeeperBuilder_.getMessage();
        }
      }
      /**
       * 
       * Configuration and resource allocation for ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
       */
      public Builder setZookeeper(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper value) {
        if (zookeeperBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          zookeeper_ = value;
          onChanged();
        } else {
          zookeeperBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Configuration and resource allocation for ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
       */
      public Builder setZookeeper(
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.Builder builderForValue) {
        if (zookeeperBuilder_ == null) {
          zookeeper_ = builderForValue.build();
          onChanged();
        } else {
          zookeeperBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Configuration and resource allocation for ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
       */
      public Builder mergeZookeeper(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper value) {
        if (zookeeperBuilder_ == null) {
          if (zookeeper_ != null) {
            zookeeper_ =
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.newBuilder(zookeeper_).mergeFrom(value).buildPartial();
          } else {
            zookeeper_ = value;
          }
          onChanged();
        } else {
          zookeeperBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Configuration and resource allocation for ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
       */
      public Builder clearZookeeper() {
        if (zookeeperBuilder_ == null) {
          zookeeper_ = null;
          onChanged();
        } else {
          zookeeper_ = null;
          zookeeperBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Configuration and resource allocation for ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.Builder getZookeeperBuilder() {
        
        onChanged();
        return getZookeeperFieldBuilder().getBuilder();
      }
      /**
       * 
       * Configuration and resource allocation for ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.ZookeeperOrBuilder getZookeeperOrBuilder() {
        if (zookeeperBuilder_ != null) {
          return zookeeperBuilder_.getMessageOrBuilder();
        } else {
          return zookeeper_ == null ?
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.getDefaultInstance() : zookeeper_;
        }
      }
      /**
       * 
       * Configuration and resource allocation for ZooKeeper hosts.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ClusterConfig.Zookeeper zookeeper = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.ZookeeperOrBuilder> 
          getZookeeperFieldBuilder() {
        if (zookeeperBuilder_ == null) {
          zookeeperBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.Zookeeper.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig.ZookeeperOrBuilder>(
                  getZookeeper(),
                  getParentForChildren(),
                  isClean());
          zookeeper_ = null;
        }
        return zookeeperBuilder_;
      }
      private com.google.type.TimeOfDay backupWindowStart_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.type.TimeOfDay, com.google.type.TimeOfDay.Builder, com.google.type.TimeOfDayOrBuilder> backupWindowStartBuilder_;
      /**
       * 
       * Time to start the daily backup, in the UTC timezone.
       * 
       *
       * .google.type.TimeOfDay backup_window_start = 4;
       * @return Whether the backupWindowStart field is set.
       */
      public boolean hasBackupWindowStart() {
        return backupWindowStartBuilder_ != null || backupWindowStart_ != null;
      }
      /**
       * 
       * Time to start the daily backup, in the UTC timezone.
       * 
       *
       * .google.type.TimeOfDay backup_window_start = 4;
       * @return The backupWindowStart.
       */
      public com.google.type.TimeOfDay getBackupWindowStart() {
        if (backupWindowStartBuilder_ == null) {
          return backupWindowStart_ == null ? com.google.type.TimeOfDay.getDefaultInstance() : backupWindowStart_;
        } else {
          return backupWindowStartBuilder_.getMessage();
        }
      }
      /**
       * 
       * Time to start the daily backup, in the UTC timezone.
       * 
       *
       * .google.type.TimeOfDay backup_window_start = 4;
       */
      public Builder setBackupWindowStart(com.google.type.TimeOfDay value) {
        if (backupWindowStartBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          backupWindowStart_ = value;
          onChanged();
        } else {
          backupWindowStartBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Time to start the daily backup, in the UTC timezone.
       * 
       *
       * .google.type.TimeOfDay backup_window_start = 4;
       */
      public Builder setBackupWindowStart(
          com.google.type.TimeOfDay.Builder builderForValue) {
        if (backupWindowStartBuilder_ == null) {
          backupWindowStart_ = builderForValue.build();
          onChanged();
        } else {
          backupWindowStartBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Time to start the daily backup, in the UTC timezone.
       * 
       *
       * .google.type.TimeOfDay backup_window_start = 4;
       */
      public Builder mergeBackupWindowStart(com.google.type.TimeOfDay value) {
        if (backupWindowStartBuilder_ == null) {
          if (backupWindowStart_ != null) {
            backupWindowStart_ =
              com.google.type.TimeOfDay.newBuilder(backupWindowStart_).mergeFrom(value).buildPartial();
          } else {
            backupWindowStart_ = value;
          }
          onChanged();
        } else {
          backupWindowStartBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Time to start the daily backup, in the UTC timezone.
       * 
       *
       * .google.type.TimeOfDay backup_window_start = 4;
       */
      public Builder clearBackupWindowStart() {
        if (backupWindowStartBuilder_ == null) {
          backupWindowStart_ = null;
          onChanged();
        } else {
          backupWindowStart_ = null;
          backupWindowStartBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Time to start the daily backup, in the UTC timezone.
       * 
       *
       * .google.type.TimeOfDay backup_window_start = 4;
       */
      public com.google.type.TimeOfDay.Builder getBackupWindowStartBuilder() {
        
        onChanged();
        return getBackupWindowStartFieldBuilder().getBuilder();
      }
      /**
       * 
       * Time to start the daily backup, in the UTC timezone.
       * 
       *
       * .google.type.TimeOfDay backup_window_start = 4;
       */
      public com.google.type.TimeOfDayOrBuilder getBackupWindowStartOrBuilder() {
        if (backupWindowStartBuilder_ != null) {
          return backupWindowStartBuilder_.getMessageOrBuilder();
        } else {
          return backupWindowStart_ == null ?
              com.google.type.TimeOfDay.getDefaultInstance() : backupWindowStart_;
        }
      }
      /**
       * 
       * Time to start the daily backup, in the UTC timezone.
       * 
       *
       * .google.type.TimeOfDay backup_window_start = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.type.TimeOfDay, com.google.type.TimeOfDay.Builder, com.google.type.TimeOfDayOrBuilder> 
          getBackupWindowStartFieldBuilder() {
        if (backupWindowStartBuilder_ == null) {
          backupWindowStartBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.type.TimeOfDay, com.google.type.TimeOfDay.Builder, com.google.type.TimeOfDayOrBuilder>(
                  getBackupWindowStart(),
                  getParentForChildren(),
                  isClean());
          backupWindowStart_ = null;
        }
        return backupWindowStartBuilder_;
      }
      private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access access_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.AccessOrBuilder> accessBuilder_;
      /**
       * 
       * Access policy for external services.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
       * @return Whether the access field is set.
       */
      public boolean hasAccess() {
        return accessBuilder_ != null || access_ != null;
      }
      /**
       * 
       * Access policy for external services.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
       * @return The access.
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access getAccess() {
        if (accessBuilder_ == null) {
          return access_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.getDefaultInstance() : access_;
        } else {
          return accessBuilder_.getMessage();
        }
      }
      /**
       * 
       * Access policy for external services.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
       */
      public Builder setAccess(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access value) {
        if (accessBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          access_ = value;
          onChanged();
        } else {
          accessBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Access policy for external services.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
       */
      public Builder setAccess(
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.Builder builderForValue) {
        if (accessBuilder_ == null) {
          access_ = builderForValue.build();
          onChanged();
        } else {
          accessBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Access policy for external services.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
       */
      public Builder mergeAccess(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access value) {
        if (accessBuilder_ == null) {
          if (access_ != null) {
            access_ =
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.newBuilder(access_).mergeFrom(value).buildPartial();
          } else {
            access_ = value;
          }
          onChanged();
        } else {
          accessBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Access policy for external services.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
       */
      public Builder clearAccess() {
        if (accessBuilder_ == null) {
          access_ = null;
          onChanged();
        } else {
          access_ = null;
          accessBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Access policy for external services.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.Builder getAccessBuilder() {
        
        onChanged();
        return getAccessFieldBuilder().getBuilder();
      }
      /**
       * 
       * Access policy for external services.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.AccessOrBuilder getAccessOrBuilder() {
        if (accessBuilder_ != null) {
          return accessBuilder_.getMessageOrBuilder();
        } else {
          return access_ == null ?
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.getDefaultInstance() : access_;
        }
      }
      /**
       * 
       * Access policy for external services.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Access access = 5;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.AccessOrBuilder> 
          getAccessFieldBuilder() {
        if (accessBuilder_ == null) {
          accessBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.AccessOrBuilder>(
                  getAccess(),
                  getParentForChildren(),
                  isClean());
          access_ = null;
        }
        return accessBuilder_;
      }
      private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage cloudStorage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorageOrBuilder> cloudStorageBuilder_;
      /**
       * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
       * @return Whether the cloudStorage field is set.
       */
      public boolean hasCloudStorage() {
        return cloudStorageBuilder_ != null || cloudStorage_ != null;
      }
      /**
       * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
       * @return The cloudStorage.
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage getCloudStorage() {
        if (cloudStorageBuilder_ == null) {
          return cloudStorage_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.getDefaultInstance() : cloudStorage_;
        } else {
          return cloudStorageBuilder_.getMessage();
        }
      }
      /**
       * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
       */
      public Builder setCloudStorage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage value) {
        if (cloudStorageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          cloudStorage_ = value;
          onChanged();
        } else {
          cloudStorageBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
       */
      public Builder setCloudStorage(
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.Builder builderForValue) {
        if (cloudStorageBuilder_ == null) {
          cloudStorage_ = builderForValue.build();
          onChanged();
        } else {
          cloudStorageBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
       */
      public Builder mergeCloudStorage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage value) {
        if (cloudStorageBuilder_ == null) {
          if (cloudStorage_ != null) {
            cloudStorage_ =
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.newBuilder(cloudStorage_).mergeFrom(value).buildPartial();
          } else {
            cloudStorage_ = value;
          }
          onChanged();
        } else {
          cloudStorageBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
       */
      public Builder clearCloudStorage() {
        if (cloudStorageBuilder_ == null) {
          cloudStorage_ = null;
          onChanged();
        } else {
          cloudStorage_ = null;
          cloudStorageBuilder_ = null;
        }
        return this;
      }
      /**
       * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.Builder getCloudStorageBuilder() {
        
        onChanged();
        return getCloudStorageFieldBuilder().getBuilder();
      }
      /**
       * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorageOrBuilder getCloudStorageOrBuilder() {
        if (cloudStorageBuilder_ != null) {
          return cloudStorageBuilder_.getMessageOrBuilder();
        } else {
          return cloudStorage_ == null ?
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.getDefaultInstance() : cloudStorage_;
        }
      }
      /**
       * .yandex.cloud.mdb.clickhouse.v1.CloudStorage cloud_storage = 6;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorageOrBuilder> 
          getCloudStorageFieldBuilder() {
        if (cloudStorageBuilder_ == null) {
          cloudStorageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorageOrBuilder>(
                  getCloudStorage(),
                  getParentForChildren(),
                  isClean());
          cloudStorage_ = null;
        }
        return cloudStorageBuilder_;
      }
      private com.google.protobuf.BoolValue sqlDatabaseManagement_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> sqlDatabaseManagementBuilder_;
      /**
       * 
       * Whether database management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_database_management = 7;
       * @return Whether the sqlDatabaseManagement field is set.
       */
      public boolean hasSqlDatabaseManagement() {
        return sqlDatabaseManagementBuilder_ != null || sqlDatabaseManagement_ != null;
      }
      /**
       * 
       * Whether database management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_database_management = 7;
       * @return The sqlDatabaseManagement.
       */
      public com.google.protobuf.BoolValue getSqlDatabaseManagement() {
        if (sqlDatabaseManagementBuilder_ == null) {
          return sqlDatabaseManagement_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : sqlDatabaseManagement_;
        } else {
          return sqlDatabaseManagementBuilder_.getMessage();
        }
      }
      /**
       * 
       * Whether database management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_database_management = 7;
       */
      public Builder setSqlDatabaseManagement(com.google.protobuf.BoolValue value) {
        if (sqlDatabaseManagementBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sqlDatabaseManagement_ = value;
          onChanged();
        } else {
          sqlDatabaseManagementBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Whether database management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_database_management = 7;
       */
      public Builder setSqlDatabaseManagement(
          com.google.protobuf.BoolValue.Builder builderForValue) {
        if (sqlDatabaseManagementBuilder_ == null) {
          sqlDatabaseManagement_ = builderForValue.build();
          onChanged();
        } else {
          sqlDatabaseManagementBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Whether database management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_database_management = 7;
       */
      public Builder mergeSqlDatabaseManagement(com.google.protobuf.BoolValue value) {
        if (sqlDatabaseManagementBuilder_ == null) {
          if (sqlDatabaseManagement_ != null) {
            sqlDatabaseManagement_ =
              com.google.protobuf.BoolValue.newBuilder(sqlDatabaseManagement_).mergeFrom(value).buildPartial();
          } else {
            sqlDatabaseManagement_ = value;
          }
          onChanged();
        } else {
          sqlDatabaseManagementBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Whether database management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_database_management = 7;
       */
      public Builder clearSqlDatabaseManagement() {
        if (sqlDatabaseManagementBuilder_ == null) {
          sqlDatabaseManagement_ = null;
          onChanged();
        } else {
          sqlDatabaseManagement_ = null;
          sqlDatabaseManagementBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Whether database management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_database_management = 7;
       */
      public com.google.protobuf.BoolValue.Builder getSqlDatabaseManagementBuilder() {
        
        onChanged();
        return getSqlDatabaseManagementFieldBuilder().getBuilder();
      }
      /**
       * 
       * Whether database management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_database_management = 7;
       */
      public com.google.protobuf.BoolValueOrBuilder getSqlDatabaseManagementOrBuilder() {
        if (sqlDatabaseManagementBuilder_ != null) {
          return sqlDatabaseManagementBuilder_.getMessageOrBuilder();
        } else {
          return sqlDatabaseManagement_ == null ?
              com.google.protobuf.BoolValue.getDefaultInstance() : sqlDatabaseManagement_;
        }
      }
      /**
       * 
       * Whether database management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_database_management = 7;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> 
          getSqlDatabaseManagementFieldBuilder() {
        if (sqlDatabaseManagementBuilder_ == null) {
          sqlDatabaseManagementBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>(
                  getSqlDatabaseManagement(),
                  getParentForChildren(),
                  isClean());
          sqlDatabaseManagement_ = null;
        }
        return sqlDatabaseManagementBuilder_;
      }
      private com.google.protobuf.BoolValue sqlUserManagement_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> sqlUserManagementBuilder_;
      /**
       * 
       * Whether user management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_user_management = 8;
       * @return Whether the sqlUserManagement field is set.
       */
      public boolean hasSqlUserManagement() {
        return sqlUserManagementBuilder_ != null || sqlUserManagement_ != null;
      }
      /**
       * 
       * Whether user management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_user_management = 8;
       * @return The sqlUserManagement.
       */
      public com.google.protobuf.BoolValue getSqlUserManagement() {
        if (sqlUserManagementBuilder_ == null) {
          return sqlUserManagement_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : sqlUserManagement_;
        } else {
          return sqlUserManagementBuilder_.getMessage();
        }
      }
      /**
       * 
       * Whether user management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_user_management = 8;
       */
      public Builder setSqlUserManagement(com.google.protobuf.BoolValue value) {
        if (sqlUserManagementBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sqlUserManagement_ = value;
          onChanged();
        } else {
          sqlUserManagementBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Whether user management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_user_management = 8;
       */
      public Builder setSqlUserManagement(
          com.google.protobuf.BoolValue.Builder builderForValue) {
        if (sqlUserManagementBuilder_ == null) {
          sqlUserManagement_ = builderForValue.build();
          onChanged();
        } else {
          sqlUserManagementBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Whether user management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_user_management = 8;
       */
      public Builder mergeSqlUserManagement(com.google.protobuf.BoolValue value) {
        if (sqlUserManagementBuilder_ == null) {
          if (sqlUserManagement_ != null) {
            sqlUserManagement_ =
              com.google.protobuf.BoolValue.newBuilder(sqlUserManagement_).mergeFrom(value).buildPartial();
          } else {
            sqlUserManagement_ = value;
          }
          onChanged();
        } else {
          sqlUserManagementBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Whether user management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_user_management = 8;
       */
      public Builder clearSqlUserManagement() {
        if (sqlUserManagementBuilder_ == null) {
          sqlUserManagement_ = null;
          onChanged();
        } else {
          sqlUserManagement_ = null;
          sqlUserManagementBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Whether user management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_user_management = 8;
       */
      public com.google.protobuf.BoolValue.Builder getSqlUserManagementBuilder() {
        
        onChanged();
        return getSqlUserManagementFieldBuilder().getBuilder();
      }
      /**
       * 
       * Whether user management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_user_management = 8;
       */
      public com.google.protobuf.BoolValueOrBuilder getSqlUserManagementOrBuilder() {
        if (sqlUserManagementBuilder_ != null) {
          return sqlUserManagementBuilder_.getMessageOrBuilder();
        } else {
          return sqlUserManagement_ == null ?
              com.google.protobuf.BoolValue.getDefaultInstance() : sqlUserManagement_;
        }
      }
      /**
       * 
       * Whether user management through SQL commands is enabled.
       * 
       *
       * .google.protobuf.BoolValue sql_user_management = 8;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> 
          getSqlUserManagementFieldBuilder() {
        if (sqlUserManagementBuilder_ == null) {
          sqlUserManagementBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>(
                  getSqlUserManagement(),
                  getParentForChildren(),
                  isClean());
          sqlUserManagement_ = null;
        }
        return sqlUserManagementBuilder_;
      }
      private com.google.protobuf.BoolValue embeddedKeeper_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> embeddedKeeperBuilder_;
      /**
       * 
       * Whether cluster should use embedded Keeper instead of Zookeeper.
       * 
       *
       * .google.protobuf.BoolValue embedded_keeper = 9;
       * @return Whether the embeddedKeeper field is set.
       */
      public boolean hasEmbeddedKeeper() {
        return embeddedKeeperBuilder_ != null || embeddedKeeper_ != null;
      }
      /**
       * 
       * Whether cluster should use embedded Keeper instead of Zookeeper.
       * 
       *
       * .google.protobuf.BoolValue embedded_keeper = 9;
       * @return The embeddedKeeper.
       */
      public com.google.protobuf.BoolValue getEmbeddedKeeper() {
        if (embeddedKeeperBuilder_ == null) {
          return embeddedKeeper_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : embeddedKeeper_;
        } else {
          return embeddedKeeperBuilder_.getMessage();
        }
      }
      /**
       * 
       * Whether cluster should use embedded Keeper instead of Zookeeper.
       * 
       *
       * .google.protobuf.BoolValue embedded_keeper = 9;
       */
      public Builder setEmbeddedKeeper(com.google.protobuf.BoolValue value) {
        if (embeddedKeeperBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          embeddedKeeper_ = value;
          onChanged();
        } else {
          embeddedKeeperBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Whether cluster should use embedded Keeper instead of Zookeeper.
       * 
       *
       * .google.protobuf.BoolValue embedded_keeper = 9;
       */
      public Builder setEmbeddedKeeper(
          com.google.protobuf.BoolValue.Builder builderForValue) {
        if (embeddedKeeperBuilder_ == null) {
          embeddedKeeper_ = builderForValue.build();
          onChanged();
        } else {
          embeddedKeeperBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Whether cluster should use embedded Keeper instead of Zookeeper.
       * 
       *
       * .google.protobuf.BoolValue embedded_keeper = 9;
       */
      public Builder mergeEmbeddedKeeper(com.google.protobuf.BoolValue value) {
        if (embeddedKeeperBuilder_ == null) {
          if (embeddedKeeper_ != null) {
            embeddedKeeper_ =
              com.google.protobuf.BoolValue.newBuilder(embeddedKeeper_).mergeFrom(value).buildPartial();
          } else {
            embeddedKeeper_ = value;
          }
          onChanged();
        } else {
          embeddedKeeperBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Whether cluster should use embedded Keeper instead of Zookeeper.
       * 
       *
       * .google.protobuf.BoolValue embedded_keeper = 9;
       */
      public Builder clearEmbeddedKeeper() {
        if (embeddedKeeperBuilder_ == null) {
          embeddedKeeper_ = null;
          onChanged();
        } else {
          embeddedKeeper_ = null;
          embeddedKeeperBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Whether cluster should use embedded Keeper instead of Zookeeper.
       * 
       *
       * .google.protobuf.BoolValue embedded_keeper = 9;
       */
      public com.google.protobuf.BoolValue.Builder getEmbeddedKeeperBuilder() {
        
        onChanged();
        return getEmbeddedKeeperFieldBuilder().getBuilder();
      }
      /**
       * 
       * Whether cluster should use embedded Keeper instead of Zookeeper.
       * 
       *
       * .google.protobuf.BoolValue embedded_keeper = 9;
       */
      public com.google.protobuf.BoolValueOrBuilder getEmbeddedKeeperOrBuilder() {
        if (embeddedKeeperBuilder_ != null) {
          return embeddedKeeperBuilder_.getMessageOrBuilder();
        } else {
          return embeddedKeeper_ == null ?
              com.google.protobuf.BoolValue.getDefaultInstance() : embeddedKeeper_;
        }
      }
      /**
       * 
       * Whether cluster should use embedded Keeper instead of Zookeeper.
       * 
       *
       * .google.protobuf.BoolValue embedded_keeper = 9;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> 
          getEmbeddedKeeperFieldBuilder() {
        if (embeddedKeeperBuilder_ == null) {
          embeddedKeeperBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>(
                  getEmbeddedKeeper(),
                  getParentForChildren(),
                  isClean());
          embeddedKeeper_ = null;
        }
        return embeddedKeeperBuilder_;
      }
      @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.clickhouse.v1.ClusterConfig)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.clickhouse.v1.ClusterConfig)
    private static final yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig();
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ClusterConfig getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public ClusterConfig parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ClusterConfig(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.clickhouse.v1.ClusterOuterClass.ClusterConfig getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface ShardOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.clickhouse.v1.Shard)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Name of the shard.
     * 
     *
     * string name = 1;
     * @return The name.
     */
    java.lang.String getName();
    /**
     * 
     * Name of the shard.
     * 
     *
     * string name = 1;
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();
    /**
     * 
     * ID of the cluster that the shard belongs to.
     * 
     *
     * string cluster_id = 2;
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the cluster that the shard belongs to.
     * 
     *
     * string cluster_id = 2;
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
    /**
     * 
     * Configuration of the shard.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
     * @return Whether the config field is set.
     */
    boolean hasConfig();
    /**
     * 
     * Configuration of the shard.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
     * @return The config.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig getConfig();
    /**
     * 
     * Configuration of the shard.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfigOrBuilder getConfigOrBuilder();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.Shard}
   */
  public static final class Shard extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.clickhouse.v1.Shard)
      ShardOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Shard.newBuilder() to construct.
    private Shard(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private Shard() {
      name_ = "";
      clusterId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Shard();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Shard(
        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();
              name_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              break;
            }
            case 26: {
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Builder subBuilder = null;
              if (config_ != null) {
                subBuilder = config_.toBuilder();
              }
              config_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(config_);
                config_ = 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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Shard_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Shard_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard.Builder.class);
    }
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * 
     * Name of the shard.
     * 
     *
     * string name = 1;
     * @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 shard.
     * 
     *
     * string name = 1;
     * @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 CLUSTER_ID_FIELD_NUMBER = 2;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the cluster that the shard belongs to.
     * 
     *
     * string cluster_id = 2;
     * @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 cluster that the shard belongs to.
     * 
     *
     * string cluster_id = 2;
     * @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 CONFIG_FIELD_NUMBER = 3;
    private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig config_;
    /**
     * 
     * Configuration of the shard.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
     * @return Whether the config field is set.
     */
    @java.lang.Override
    public boolean hasConfig() {
      return config_ != null;
    }
    /**
     * 
     * Configuration of the shard.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
     * @return The config.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig getConfig() {
      return config_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.getDefaultInstance() : config_;
    }
    /**
     * 
     * Configuration of the shard.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfigOrBuilder getConfigOrBuilder() {
      return getConfig();
    }
    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(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, clusterId_);
      }
      if (config_ != null) {
        output.writeMessage(3, getConfig());
      }
      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(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, clusterId_);
      }
      if (config_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getConfig());
      }
      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.clickhouse.v1.ClusterOuterClass.Shard)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard other = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard) obj;
      if (!getName()
          .equals(other.getName())) return false;
      if (!getClusterId()
          .equals(other.getClusterId())) return false;
      if (hasConfig() != other.hasConfig()) return false;
      if (hasConfig()) {
        if (!getConfig()
            .equals(other.getConfig())) 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) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      if (hasConfig()) {
        hash = (37 * hash) + CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getConfig().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard 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.clickhouse.v1.ClusterOuterClass.Shard parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard 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.clickhouse.v1.ClusterOuterClass.Shard parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard 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.clickhouse.v1.ClusterOuterClass.Shard parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard 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.clickhouse.v1.ClusterOuterClass.Shard parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard 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.clickhouse.v1.ClusterOuterClass.Shard 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.clickhouse.v1.Shard}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.clickhouse.v1.Shard)
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Shard_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Shard_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard.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();
        name_ = "";
        clusterId_ = "";
        if (configBuilder_ == null) {
          config_ = null;
        } else {
          config_ = null;
          configBuilder_ = null;
        }
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Shard_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard build() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard buildPartial() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard result = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard(this);
        result.name_ = name_;
        result.clusterId_ = clusterId_;
        if (configBuilder_ == null) {
          result.config_ = config_;
        } else {
          result.config_ = configBuilder_.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.clickhouse.v1.ClusterOuterClass.Shard) {
          return mergeFrom((yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard other) {
        if (other == yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard.getDefaultInstance()) return this;
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        if (other.hasConfig()) {
          mergeConfig(other.getConfig());
        }
        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.clickhouse.v1.ClusterOuterClass.Shard parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object name_ = "";
      /**
       * 
       * Name of the shard.
       * 
       *
       * string name = 1;
       * @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 shard.
       * 
       *
       * string name = 1;
       * @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 shard.
       * 
       *
       * string name = 1;
       * @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 shard.
       * 
       *
       * string name = 1;
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * 
       * Name of the shard.
       * 
       *
       * string name = 1;
       * @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 clusterId_ = "";
      /**
       * 
       * ID of the cluster that the shard belongs to.
       * 
       *
       * string cluster_id = 2;
       * @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 cluster that the shard belongs to.
       * 
       *
       * string cluster_id = 2;
       * @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 cluster that the shard belongs to.
       * 
       *
       * string cluster_id = 2;
       * @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 cluster that the shard belongs to.
       * 
       *
       * string cluster_id = 2;
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the cluster that the shard belongs to.
       * 
       *
       * string cluster_id = 2;
       * @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 yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig config_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfigOrBuilder> configBuilder_;
      /**
       * 
       * Configuration of the shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
       * @return Whether the config field is set.
       */
      public boolean hasConfig() {
        return configBuilder_ != null || config_ != null;
      }
      /**
       * 
       * Configuration of the shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
       * @return The config.
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig getConfig() {
        if (configBuilder_ == null) {
          return config_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.getDefaultInstance() : config_;
        } else {
          return configBuilder_.getMessage();
        }
      }
      /**
       * 
       * Configuration of the shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
       */
      public Builder setConfig(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig value) {
        if (configBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          config_ = value;
          onChanged();
        } else {
          configBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Configuration of the shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
       */
      public Builder setConfig(
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Builder builderForValue) {
        if (configBuilder_ == null) {
          config_ = builderForValue.build();
          onChanged();
        } else {
          configBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Configuration of the shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
       */
      public Builder mergeConfig(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig value) {
        if (configBuilder_ == null) {
          if (config_ != null) {
            config_ =
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.newBuilder(config_).mergeFrom(value).buildPartial();
          } else {
            config_ = value;
          }
          onChanged();
        } else {
          configBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Configuration of the shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
       */
      public Builder clearConfig() {
        if (configBuilder_ == null) {
          config_ = null;
          onChanged();
        } else {
          config_ = null;
          configBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Configuration of the shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Builder getConfigBuilder() {
        
        onChanged();
        return getConfigFieldBuilder().getBuilder();
      }
      /**
       * 
       * Configuration of the shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfigOrBuilder getConfigOrBuilder() {
        if (configBuilder_ != null) {
          return configBuilder_.getMessageOrBuilder();
        } else {
          return config_ == null ?
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.getDefaultInstance() : config_;
        }
      }
      /**
       * 
       * Configuration of the shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig config = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfigOrBuilder> 
          getConfigFieldBuilder() {
        if (configBuilder_ == null) {
          configBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfigOrBuilder>(
                  getConfig(),
                  getParentForChildren(),
                  isClean());
          config_ = null;
        }
        return configBuilder_;
      }
      @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.clickhouse.v1.Shard)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.clickhouse.v1.Shard)
    private static final yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard();
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Shard getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public Shard parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Shard(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.clickhouse.v1.ClusterOuterClass.Shard getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface ShardGroupOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.clickhouse.v1.ShardGroup)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Name of the shard group.
     * 
     *
     * string name = 1;
     * @return The name.
     */
    java.lang.String getName();
    /**
     * 
     * Name of the shard group.
     * 
     *
     * string name = 1;
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();
    /**
     * 
     * ID of the ClickHouse cluster that the shard group belongs to.
     * 
     *
     * string cluster_id = 2;
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the ClickHouse cluster that the shard group belongs to.
     * 
     *
     * string cluster_id = 2;
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
    /**
     * 
     * Description of the shard group. 0-256 characters long.
     * 
     *
     * string description = 3;
     * @return The description.
     */
    java.lang.String getDescription();
    /**
     * 
     * Description of the shard group. 0-256 characters long.
     * 
     *
     * string description = 3;
     * @return The bytes for description.
     */
    com.google.protobuf.ByteString
        getDescriptionBytes();
    /**
     * 
     * List of shard names contained in the shard group.
     * 
     *
     * repeated string shard_names = 4;
     * @return A list containing the shardNames.
     */
    java.util.List
        getShardNamesList();
    /**
     * 
     * List of shard names contained in the shard group.
     * 
     *
     * repeated string shard_names = 4;
     * @return The count of shardNames.
     */
    int getShardNamesCount();
    /**
     * 
     * List of shard names contained in the shard group.
     * 
     *
     * repeated string shard_names = 4;
     * @param index The index of the element to return.
     * @return The shardNames at the given index.
     */
    java.lang.String getShardNames(int index);
    /**
     * 
     * List of shard names contained in the shard group.
     * 
     *
     * repeated string shard_names = 4;
     * @param index The index of the value to return.
     * @return The bytes of the shardNames at the given index.
     */
    com.google.protobuf.ByteString
        getShardNamesBytes(int index);
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.ShardGroup}
   */
  public static final class ShardGroup extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.clickhouse.v1.ShardGroup)
      ShardGroupOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ShardGroup.newBuilder() to construct.
    private ShardGroup(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private ShardGroup() {
      name_ = "";
      clusterId_ = "";
      description_ = "";
      shardNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ShardGroup();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ShardGroup(
        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();
              name_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              description_ = s;
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                shardNames_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              shardNames_.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)) {
          shardNames_ = shardNames_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardGroup_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardGroup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup.Builder.class);
    }
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * 
     * Name of the shard group.
     * 
     *
     * string name = 1;
     * @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 shard group.
     * 
     *
     * string name = 1;
     * @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 CLUSTER_ID_FIELD_NUMBER = 2;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the ClickHouse cluster that the shard group belongs to.
     * 
     *
     * string cluster_id = 2;
     * @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 ClickHouse cluster that the shard group belongs to.
     * 
     *
     * string cluster_id = 2;
     * @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 DESCRIPTION_FIELD_NUMBER = 3;
    private volatile java.lang.Object description_;
    /**
     * 
     * Description of the shard group. 0-256 characters long.
     * 
     *
     * string description = 3;
     * @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 shard group. 0-256 characters long.
     * 
     *
     * string description = 3;
     * @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 SHARD_NAMES_FIELD_NUMBER = 4;
    private com.google.protobuf.LazyStringList shardNames_;
    /**
     * 
     * List of shard names contained in the shard group.
     * 
     *
     * repeated string shard_names = 4;
     * @return A list containing the shardNames.
     */
    public com.google.protobuf.ProtocolStringList
        getShardNamesList() {
      return shardNames_;
    }
    /**
     * 
     * List of shard names contained in the shard group.
     * 
     *
     * repeated string shard_names = 4;
     * @return The count of shardNames.
     */
    public int getShardNamesCount() {
      return shardNames_.size();
    }
    /**
     * 
     * List of shard names contained in the shard group.
     * 
     *
     * repeated string shard_names = 4;
     * @param index The index of the element to return.
     * @return The shardNames at the given index.
     */
    public java.lang.String getShardNames(int index) {
      return shardNames_.get(index);
    }
    /**
     * 
     * List of shard names contained in the shard group.
     * 
     *
     * repeated string shard_names = 4;
     * @param index The index of the value to return.
     * @return The bytes of the shardNames at the given index.
     */
    public com.google.protobuf.ByteString
        getShardNamesBytes(int index) {
      return shardNames_.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(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, clusterId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, description_);
      }
      for (int i = 0; i < shardNames_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, shardNames_.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(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, clusterId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, description_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < shardNames_.size(); i++) {
          dataSize += computeStringSizeNoTag(shardNames_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getShardNamesList().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.clickhouse.v1.ClusterOuterClass.ShardGroup)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup other = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup) obj;
      if (!getName()
          .equals(other.getName())) return false;
      if (!getClusterId()
          .equals(other.getClusterId())) return false;
      if (!getDescription()
          .equals(other.getDescription())) return false;
      if (!getShardNamesList()
          .equals(other.getShardNamesList())) 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) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
      hash = (53 * hash) + getDescription().hashCode();
      if (getShardNamesCount() > 0) {
        hash = (37 * hash) + SHARD_NAMES_FIELD_NUMBER;
        hash = (53 * hash) + getShardNamesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup 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.clickhouse.v1.ClusterOuterClass.ShardGroup parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup 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.clickhouse.v1.ClusterOuterClass.ShardGroup parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup 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.clickhouse.v1.ClusterOuterClass.ShardGroup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup 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.clickhouse.v1.ClusterOuterClass.ShardGroup parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup 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.clickhouse.v1.ClusterOuterClass.ShardGroup 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.clickhouse.v1.ShardGroup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.clickhouse.v1.ShardGroup)
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardGroup_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardGroup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup.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();
        name_ = "";
        clusterId_ = "";
        description_ = "";
        shardNames_ = 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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardGroup_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup build() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup buildPartial() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup result = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup(this);
        int from_bitField0_ = bitField0_;
        result.name_ = name_;
        result.clusterId_ = clusterId_;
        result.description_ = description_;
        if (((bitField0_ & 0x00000001) != 0)) {
          shardNames_ = shardNames_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.shardNames_ = shardNames_;
        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.clickhouse.v1.ClusterOuterClass.ShardGroup) {
          return mergeFrom((yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup other) {
        if (other == yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup.getDefaultInstance()) return this;
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        if (!other.getDescription().isEmpty()) {
          description_ = other.description_;
          onChanged();
        }
        if (!other.shardNames_.isEmpty()) {
          if (shardNames_.isEmpty()) {
            shardNames_ = other.shardNames_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureShardNamesIsMutable();
            shardNames_.addAll(other.shardNames_);
          }
          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.clickhouse.v1.ClusterOuterClass.ShardGroup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private java.lang.Object name_ = "";
      /**
       * 
       * Name of the shard group.
       * 
       *
       * string name = 1;
       * @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 shard group.
       * 
       *
       * string name = 1;
       * @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 shard group.
       * 
       *
       * string name = 1;
       * @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 shard group.
       * 
       *
       * string name = 1;
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * 
       * Name of the shard group.
       * 
       *
       * string name = 1;
       * @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 clusterId_ = "";
      /**
       * 
       * ID of the ClickHouse cluster that the shard group belongs to.
       * 
       *
       * string cluster_id = 2;
       * @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 ClickHouse cluster that the shard group belongs to.
       * 
       *
       * string cluster_id = 2;
       * @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 ClickHouse cluster that the shard group belongs to.
       * 
       *
       * string cluster_id = 2;
       * @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 ClickHouse cluster that the shard group belongs to.
       * 
       *
       * string cluster_id = 2;
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the ClickHouse cluster that the shard group belongs to.
       * 
       *
       * string cluster_id = 2;
       * @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 description_ = "";
      /**
       * 
       * Description of the shard group. 0-256 characters long.
       * 
       *
       * string description = 3;
       * @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 shard group. 0-256 characters long.
       * 
       *
       * string description = 3;
       * @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 shard group. 0-256 characters long.
       * 
       *
       * string description = 3;
       * @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 shard group. 0-256 characters long.
       * 
       *
       * string description = 3;
       * @return This builder for chaining.
       */
      public Builder clearDescription() {
        
        description_ = getDefaultInstance().getDescription();
        onChanged();
        return this;
      }
      /**
       * 
       * Description of the shard group. 0-256 characters long.
       * 
       *
       * string description = 3;
       * @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.LazyStringList shardNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureShardNamesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          shardNames_ = new com.google.protobuf.LazyStringArrayList(shardNames_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * 
       * List of shard names contained in the shard group.
       * 
       *
       * repeated string shard_names = 4;
       * @return A list containing the shardNames.
       */
      public com.google.protobuf.ProtocolStringList
          getShardNamesList() {
        return shardNames_.getUnmodifiableView();
      }
      /**
       * 
       * List of shard names contained in the shard group.
       * 
       *
       * repeated string shard_names = 4;
       * @return The count of shardNames.
       */
      public int getShardNamesCount() {
        return shardNames_.size();
      }
      /**
       * 
       * List of shard names contained in the shard group.
       * 
       *
       * repeated string shard_names = 4;
       * @param index The index of the element to return.
       * @return The shardNames at the given index.
       */
      public java.lang.String getShardNames(int index) {
        return shardNames_.get(index);
      }
      /**
       * 
       * List of shard names contained in the shard group.
       * 
       *
       * repeated string shard_names = 4;
       * @param index The index of the value to return.
       * @return The bytes of the shardNames at the given index.
       */
      public com.google.protobuf.ByteString
          getShardNamesBytes(int index) {
        return shardNames_.getByteString(index);
      }
      /**
       * 
       * List of shard names contained in the shard group.
       * 
       *
       * repeated string shard_names = 4;
       * @param index The index to set the value at.
       * @param value The shardNames to set.
       * @return This builder for chaining.
       */
      public Builder setShardNames(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureShardNamesIsMutable();
        shardNames_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * 
       * List of shard names contained in the shard group.
       * 
       *
       * repeated string shard_names = 4;
       * @param value The shardNames to add.
       * @return This builder for chaining.
       */
      public Builder addShardNames(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureShardNamesIsMutable();
        shardNames_.add(value);
        onChanged();
        return this;
      }
      /**
       * 
       * List of shard names contained in the shard group.
       * 
       *
       * repeated string shard_names = 4;
       * @param values The shardNames to add.
       * @return This builder for chaining.
       */
      public Builder addAllShardNames(
          java.lang.Iterable values) {
        ensureShardNamesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, shardNames_);
        onChanged();
        return this;
      }
      /**
       * 
       * List of shard names contained in the shard group.
       * 
       *
       * repeated string shard_names = 4;
       * @return This builder for chaining.
       */
      public Builder clearShardNames() {
        shardNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * 
       * List of shard names contained in the shard group.
       * 
       *
       * repeated string shard_names = 4;
       * @param value The bytes of the shardNames to add.
       * @return This builder for chaining.
       */
      public Builder addShardNamesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureShardNamesIsMutable();
        shardNames_.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.clickhouse.v1.ShardGroup)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.clickhouse.v1.ShardGroup)
    private static final yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup();
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardGroup getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public ShardGroup parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ShardGroup(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.clickhouse.v1.ClusterOuterClass.ShardGroup getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface ShardConfigOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.clickhouse.v1.ShardConfig)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ClickHouse configuration for a shard.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
     * @return Whether the clickhouse field is set.
     */
    boolean hasClickhouse();
    /**
     * 
     * ClickHouse configuration for a shard.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
     * @return The clickhouse.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse getClickhouse();
    /**
     * 
     * ClickHouse configuration for a shard.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.ClickhouseOrBuilder getClickhouseOrBuilder();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.ShardConfig}
   */
  public static final class ShardConfig extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.clickhouse.v1.ShardConfig)
      ShardConfigOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ShardConfig.newBuilder() to construct.
    private ShardConfig(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private ShardConfig() {
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ShardConfig();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ShardConfig(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.Builder subBuilder = null;
              if (clickhouse_ != null) {
                subBuilder = clickhouse_.toBuilder();
              }
              clickhouse_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(clickhouse_);
                clickhouse_ = 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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Builder.class);
    }
    public interface ClickhouseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse)
        com.google.protobuf.MessageOrBuilder {
      /**
       * 
       * ClickHouse settings for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
       * @return Whether the config field is set.
       */
      boolean hasConfig();
      /**
       * 
       * ClickHouse settings for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
       * @return The config.
       */
      yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet getConfig();
      /**
       * 
       * ClickHouse settings for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
       */
      yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSetOrBuilder getConfigOrBuilder();
      /**
       * 
       * Computational resources for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
       * @return Whether the resources field is set.
       */
      boolean hasResources();
      /**
       * 
       * Computational resources for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
       * @return The resources.
       */
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources getResources();
      /**
       * 
       * Computational resources for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
       */
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder getResourcesOrBuilder();
      /**
       * 
       * Relative weight of a shard considered when writing data to the cluster.
       * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
       * 
       *
       * .google.protobuf.Int64Value weight = 3;
       * @return Whether the weight field is set.
       */
      boolean hasWeight();
      /**
       * 
       * Relative weight of a shard considered when writing data to the cluster.
       * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
       * 
       *
       * .google.protobuf.Int64Value weight = 3;
       * @return The weight.
       */
      com.google.protobuf.Int64Value getWeight();
      /**
       * 
       * Relative weight of a shard considered when writing data to the cluster.
       * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
       * 
       *
       * .google.protobuf.Int64Value weight = 3;
       */
      com.google.protobuf.Int64ValueOrBuilder getWeightOrBuilder();
    }
    /**
     * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse}
     */
    public static final class Clickhouse extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse)
        ClickhouseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Clickhouse.newBuilder() to construct.
      private Clickhouse(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
        super(builder);
      }
      private Clickhouse() {
      }
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Clickhouse();
      }
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Clickhouse(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.Builder subBuilder = null;
                if (config_ != null) {
                  subBuilder = config_.toBuilder();
                }
                config_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(config_);
                  config_ = subBuilder.buildPartial();
                }
                break;
              }
              case 18: {
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder subBuilder = null;
                if (resources_ != null) {
                  subBuilder = resources_.toBuilder();
                }
                resources_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(resources_);
                  resources_ = subBuilder.buildPartial();
                }
                break;
              }
              case 26: {
                com.google.protobuf.Int64Value.Builder subBuilder = null;
                if (weight_ != null) {
                  subBuilder = weight_.toBuilder();
                }
                weight_ = input.readMessage(com.google.protobuf.Int64Value.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(weight_);
                  weight_ = 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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_Clickhouse_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_Clickhouse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.Builder.class);
      }
      public static final int CONFIG_FIELD_NUMBER = 1;
      private yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet config_;
      /**
       * 
       * ClickHouse settings for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
       * @return Whether the config field is set.
       */
      @java.lang.Override
      public boolean hasConfig() {
        return config_ != null;
      }
      /**
       * 
       * ClickHouse settings for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
       * @return The config.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet getConfig() {
        return config_ == null ? yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.getDefaultInstance() : config_;
      }
      /**
       * 
       * ClickHouse settings for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSetOrBuilder getConfigOrBuilder() {
        return getConfig();
      }
      public static final int RESOURCES_FIELD_NUMBER = 2;
      private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources resources_;
      /**
       * 
       * Computational resources for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
       * @return Whether the resources field is set.
       */
      @java.lang.Override
      public boolean hasResources() {
        return resources_ != null;
      }
      /**
       * 
       * Computational resources for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
       * @return The resources.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources getResources() {
        return resources_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.getDefaultInstance() : resources_;
      }
      /**
       * 
       * Computational resources for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder getResourcesOrBuilder() {
        return getResources();
      }
      public static final int WEIGHT_FIELD_NUMBER = 3;
      private com.google.protobuf.Int64Value weight_;
      /**
       * 
       * Relative weight of a shard considered when writing data to the cluster.
       * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
       * 
       *
       * .google.protobuf.Int64Value weight = 3;
       * @return Whether the weight field is set.
       */
      @java.lang.Override
      public boolean hasWeight() {
        return weight_ != null;
      }
      /**
       * 
       * Relative weight of a shard considered when writing data to the cluster.
       * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
       * 
       *
       * .google.protobuf.Int64Value weight = 3;
       * @return The weight.
       */
      @java.lang.Override
      public com.google.protobuf.Int64Value getWeight() {
        return weight_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : weight_;
      }
      /**
       * 
       * Relative weight of a shard considered when writing data to the cluster.
       * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
       * 
       *
       * .google.protobuf.Int64Value weight = 3;
       */
      @java.lang.Override
      public com.google.protobuf.Int64ValueOrBuilder getWeightOrBuilder() {
        return getWeight();
      }
      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 (config_ != null) {
          output.writeMessage(1, getConfig());
        }
        if (resources_ != null) {
          output.writeMessage(2, getResources());
        }
        if (weight_ != null) {
          output.writeMessage(3, getWeight());
        }
        unknownFields.writeTo(output);
      }
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
        size = 0;
        if (config_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getConfig());
        }
        if (resources_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getResources());
        }
        if (weight_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getWeight());
        }
        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.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse)) {
          return super.equals(obj);
        }
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse other = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse) obj;
        if (hasConfig() != other.hasConfig()) return false;
        if (hasConfig()) {
          if (!getConfig()
              .equals(other.getConfig())) return false;
        }
        if (hasResources() != other.hasResources()) return false;
        if (hasResources()) {
          if (!getResources()
              .equals(other.getResources())) return false;
        }
        if (hasWeight() != other.hasWeight()) return false;
        if (hasWeight()) {
          if (!getWeight()
              .equals(other.getWeight())) 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 (hasConfig()) {
          hash = (37 * hash) + CONFIG_FIELD_NUMBER;
          hash = (53 * hash) + getConfig().hashCode();
        }
        if (hasResources()) {
          hash = (37 * hash) + RESOURCES_FIELD_NUMBER;
          hash = (53 * hash) + getResources().hashCode();
        }
        if (hasWeight()) {
          hash = (37 * hash) + WEIGHT_FIELD_NUMBER;
          hash = (53 * hash) + getWeight().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse 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.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse 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.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse 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.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse 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.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse 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.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse 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.clickhouse.v1.ShardConfig.Clickhouse}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse)
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.ClickhouseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_Clickhouse_descriptor;
        }
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_Clickhouse_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.Builder.class);
        }
        // Construct using yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.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 (configBuilder_ == null) {
            config_ = null;
          } else {
            config_ = null;
            configBuilder_ = null;
          }
          if (resourcesBuilder_ == null) {
            resources_ = null;
          } else {
            resources_ = null;
            resourcesBuilder_ = null;
          }
          if (weightBuilder_ == null) {
            weight_ = null;
          } else {
            weight_ = null;
            weightBuilder_ = null;
          }
          return this;
        }
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_Clickhouse_descriptor;
        }
        @java.lang.Override
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse getDefaultInstanceForType() {
          return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.getDefaultInstance();
        }
        @java.lang.Override
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse build() {
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        @java.lang.Override
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse buildPartial() {
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse result = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse(this);
          if (configBuilder_ == null) {
            result.config_ = config_;
          } else {
            result.config_ = configBuilder_.build();
          }
          if (resourcesBuilder_ == null) {
            result.resources_ = resources_;
          } else {
            result.resources_ = resourcesBuilder_.build();
          }
          if (weightBuilder_ == null) {
            result.weight_ = weight_;
          } else {
            result.weight_ = weightBuilder_.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.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse) {
            return mergeFrom((yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        public Builder mergeFrom(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse other) {
          if (other == yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.getDefaultInstance()) return this;
          if (other.hasConfig()) {
            mergeConfig(other.getConfig());
          }
          if (other.hasResources()) {
            mergeResources(other.getResources());
          }
          if (other.hasWeight()) {
            mergeWeight(other.getWeight());
          }
          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.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet config_;
        private com.google.protobuf.SingleFieldBuilderV3<
            yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet, yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.Builder, yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSetOrBuilder> configBuilder_;
        /**
         * 
         * ClickHouse settings for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         * @return Whether the config field is set.
         */
        public boolean hasConfig() {
          return configBuilder_ != null || config_ != null;
        }
        /**
         * 
         * ClickHouse settings for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         * @return The config.
         */
        public yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet getConfig() {
          if (configBuilder_ == null) {
            return config_ == null ? yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.getDefaultInstance() : config_;
          } else {
            return configBuilder_.getMessage();
          }
        }
        /**
         * 
         * ClickHouse settings for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         */
        public Builder setConfig(yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet value) {
          if (configBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            config_ = value;
            onChanged();
          } else {
            configBuilder_.setMessage(value);
          }
          return this;
        }
        /**
         * 
         * ClickHouse settings for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         */
        public Builder setConfig(
            yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.Builder builderForValue) {
          if (configBuilder_ == null) {
            config_ = builderForValue.build();
            onChanged();
          } else {
            configBuilder_.setMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * 
         * ClickHouse settings for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         */
        public Builder mergeConfig(yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet value) {
          if (configBuilder_ == null) {
            if (config_ != null) {
              config_ =
                yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.newBuilder(config_).mergeFrom(value).buildPartial();
            } else {
              config_ = value;
            }
            onChanged();
          } else {
            configBuilder_.mergeFrom(value);
          }
          return this;
        }
        /**
         * 
         * ClickHouse settings for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         */
        public Builder clearConfig() {
          if (configBuilder_ == null) {
            config_ = null;
            onChanged();
          } else {
            config_ = null;
            configBuilder_ = null;
          }
          return this;
        }
        /**
         * 
         * ClickHouse settings for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         */
        public yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.Builder getConfigBuilder() {
          
          onChanged();
          return getConfigFieldBuilder().getBuilder();
        }
        /**
         * 
         * ClickHouse settings for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         */
        public yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSetOrBuilder getConfigOrBuilder() {
          if (configBuilder_ != null) {
            return configBuilder_.getMessageOrBuilder();
          } else {
            return config_ == null ?
                yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.getDefaultInstance() : config_;
          }
        }
        /**
         * 
         * ClickHouse settings for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.config.ClickhouseConfigSet config = 1;
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet, yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.Builder, yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSetOrBuilder> 
            getConfigFieldBuilder() {
          if (configBuilder_ == null) {
            configBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet, yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSet.Builder, yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.ClickhouseConfigSetOrBuilder>(
                    getConfig(),
                    getParentForChildren(),
                    isClean());
            config_ = null;
          }
          return configBuilder_;
        }
        private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources resources_;
        private com.google.protobuf.SingleFieldBuilderV3<
            yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder> resourcesBuilder_;
        /**
         * 
         * Computational resources for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         * @return Whether the resources field is set.
         */
        public boolean hasResources() {
          return resourcesBuilder_ != null || resources_ != null;
        }
        /**
         * 
         * Computational resources for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         * @return The resources.
         */
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources getResources() {
          if (resourcesBuilder_ == null) {
            return resources_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.getDefaultInstance() : resources_;
          } else {
            return resourcesBuilder_.getMessage();
          }
        }
        /**
         * 
         * Computational resources for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         */
        public Builder setResources(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources value) {
          if (resourcesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            resources_ = value;
            onChanged();
          } else {
            resourcesBuilder_.setMessage(value);
          }
          return this;
        }
        /**
         * 
         * Computational resources for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         */
        public Builder setResources(
            yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder builderForValue) {
          if (resourcesBuilder_ == null) {
            resources_ = builderForValue.build();
            onChanged();
          } else {
            resourcesBuilder_.setMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * 
         * Computational resources for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         */
        public Builder mergeResources(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources value) {
          if (resourcesBuilder_ == null) {
            if (resources_ != null) {
              resources_ =
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.newBuilder(resources_).mergeFrom(value).buildPartial();
            } else {
              resources_ = value;
            }
            onChanged();
          } else {
            resourcesBuilder_.mergeFrom(value);
          }
          return this;
        }
        /**
         * 
         * Computational resources for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         */
        public Builder clearResources() {
          if (resourcesBuilder_ == null) {
            resources_ = null;
            onChanged();
          } else {
            resources_ = null;
            resourcesBuilder_ = null;
          }
          return this;
        }
        /**
         * 
         * Computational resources for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         */
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder getResourcesBuilder() {
          
          onChanged();
          return getResourcesFieldBuilder().getBuilder();
        }
        /**
         * 
         * Computational resources for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         */
        public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder getResourcesOrBuilder() {
          if (resourcesBuilder_ != null) {
            return resourcesBuilder_.getMessageOrBuilder();
          } else {
            return resources_ == null ?
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.getDefaultInstance() : resources_;
          }
        }
        /**
         * 
         * Computational resources for a shard.
         * 
         *
         * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 2;
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder> 
            getResourcesFieldBuilder() {
          if (resourcesBuilder_ == null) {
            resourcesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder>(
                    getResources(),
                    getParentForChildren(),
                    isClean());
            resources_ = null;
          }
          return resourcesBuilder_;
        }
        private com.google.protobuf.Int64Value weight_;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> weightBuilder_;
        /**
         * 
         * Relative weight of a shard considered when writing data to the cluster.
         * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
         * 
         *
         * .google.protobuf.Int64Value weight = 3;
         * @return Whether the weight field is set.
         */
        public boolean hasWeight() {
          return weightBuilder_ != null || weight_ != null;
        }
        /**
         * 
         * Relative weight of a shard considered when writing data to the cluster.
         * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
         * 
         *
         * .google.protobuf.Int64Value weight = 3;
         * @return The weight.
         */
        public com.google.protobuf.Int64Value getWeight() {
          if (weightBuilder_ == null) {
            return weight_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : weight_;
          } else {
            return weightBuilder_.getMessage();
          }
        }
        /**
         * 
         * Relative weight of a shard considered when writing data to the cluster.
         * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
         * 
         *
         * .google.protobuf.Int64Value weight = 3;
         */
        public Builder setWeight(com.google.protobuf.Int64Value value) {
          if (weightBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            weight_ = value;
            onChanged();
          } else {
            weightBuilder_.setMessage(value);
          }
          return this;
        }
        /**
         * 
         * Relative weight of a shard considered when writing data to the cluster.
         * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
         * 
         *
         * .google.protobuf.Int64Value weight = 3;
         */
        public Builder setWeight(
            com.google.protobuf.Int64Value.Builder builderForValue) {
          if (weightBuilder_ == null) {
            weight_ = builderForValue.build();
            onChanged();
          } else {
            weightBuilder_.setMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * 
         * Relative weight of a shard considered when writing data to the cluster.
         * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
         * 
         *
         * .google.protobuf.Int64Value weight = 3;
         */
        public Builder mergeWeight(com.google.protobuf.Int64Value value) {
          if (weightBuilder_ == null) {
            if (weight_ != null) {
              weight_ =
                com.google.protobuf.Int64Value.newBuilder(weight_).mergeFrom(value).buildPartial();
            } else {
              weight_ = value;
            }
            onChanged();
          } else {
            weightBuilder_.mergeFrom(value);
          }
          return this;
        }
        /**
         * 
         * Relative weight of a shard considered when writing data to the cluster.
         * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
         * 
         *
         * .google.protobuf.Int64Value weight = 3;
         */
        public Builder clearWeight() {
          if (weightBuilder_ == null) {
            weight_ = null;
            onChanged();
          } else {
            weight_ = null;
            weightBuilder_ = null;
          }
          return this;
        }
        /**
         * 
         * Relative weight of a shard considered when writing data to the cluster.
         * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
         * 
         *
         * .google.protobuf.Int64Value weight = 3;
         */
        public com.google.protobuf.Int64Value.Builder getWeightBuilder() {
          
          onChanged();
          return getWeightFieldBuilder().getBuilder();
        }
        /**
         * 
         * Relative weight of a shard considered when writing data to the cluster.
         * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
         * 
         *
         * .google.protobuf.Int64Value weight = 3;
         */
        public com.google.protobuf.Int64ValueOrBuilder getWeightOrBuilder() {
          if (weightBuilder_ != null) {
            return weightBuilder_.getMessageOrBuilder();
          } else {
            return weight_ == null ?
                com.google.protobuf.Int64Value.getDefaultInstance() : weight_;
          }
        }
        /**
         * 
         * Relative weight of a shard considered when writing data to the cluster.
         * For details, see [ClickHouse documentation](https://clickhouse.com/docs/en/operations/table_engines/distributed/).
         * 
         *
         * .google.protobuf.Int64Value weight = 3;
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> 
            getWeightFieldBuilder() {
          if (weightBuilder_ == null) {
            weightBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder>(
                    getWeight(),
                    getParentForChildren(),
                    isClean());
            weight_ = null;
          }
          return weightBuilder_;
        }
        @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.clickhouse.v1.ShardConfig.Clickhouse)
      }
      // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse)
      private static final yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse();
      }
      public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public Clickhouse parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Clickhouse(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.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
    }
    public static final int CLICKHOUSE_FIELD_NUMBER = 1;
    private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse clickhouse_;
    /**
     * 
     * ClickHouse configuration for a shard.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
     * @return Whether the clickhouse field is set.
     */
    @java.lang.Override
    public boolean hasClickhouse() {
      return clickhouse_ != null;
    }
    /**
     * 
     * ClickHouse configuration for a shard.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
     * @return The clickhouse.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse getClickhouse() {
      return clickhouse_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.getDefaultInstance() : clickhouse_;
    }
    /**
     * 
     * ClickHouse configuration for a shard.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.ClickhouseOrBuilder getClickhouseOrBuilder() {
      return getClickhouse();
    }
    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 (clickhouse_ != null) {
        output.writeMessage(1, getClickhouse());
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (clickhouse_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getClickhouse());
      }
      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.clickhouse.v1.ClusterOuterClass.ShardConfig)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig other = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig) obj;
      if (hasClickhouse() != other.hasClickhouse()) return false;
      if (hasClickhouse()) {
        if (!getClickhouse()
            .equals(other.getClickhouse())) 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 (hasClickhouse()) {
        hash = (37 * hash) + CLICKHOUSE_FIELD_NUMBER;
        hash = (53 * hash) + getClickhouse().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig 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.clickhouse.v1.ClusterOuterClass.ShardConfig parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig 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.clickhouse.v1.ClusterOuterClass.ShardConfig parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig 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.clickhouse.v1.ClusterOuterClass.ShardConfig parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig 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.clickhouse.v1.ClusterOuterClass.ShardConfig parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig 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.clickhouse.v1.ClusterOuterClass.ShardConfig 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.clickhouse.v1.ShardConfig}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.clickhouse.v1.ShardConfig)
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.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 (clickhouseBuilder_ == null) {
          clickhouse_ = null;
        } else {
          clickhouse_ = null;
          clickhouseBuilder_ = null;
        }
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig build() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig buildPartial() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig result = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig(this);
        if (clickhouseBuilder_ == null) {
          result.clickhouse_ = clickhouse_;
        } else {
          result.clickhouse_ = clickhouseBuilder_.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.clickhouse.v1.ClusterOuterClass.ShardConfig) {
          return mergeFrom((yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig other) {
        if (other == yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.getDefaultInstance()) return this;
        if (other.hasClickhouse()) {
          mergeClickhouse(other.getClickhouse());
        }
        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.clickhouse.v1.ClusterOuterClass.ShardConfig parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse clickhouse_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.ClickhouseOrBuilder> clickhouseBuilder_;
      /**
       * 
       * ClickHouse configuration for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
       * @return Whether the clickhouse field is set.
       */
      public boolean hasClickhouse() {
        return clickhouseBuilder_ != null || clickhouse_ != null;
      }
      /**
       * 
       * ClickHouse configuration for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
       * @return The clickhouse.
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse getClickhouse() {
        if (clickhouseBuilder_ == null) {
          return clickhouse_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.getDefaultInstance() : clickhouse_;
        } else {
          return clickhouseBuilder_.getMessage();
        }
      }
      /**
       * 
       * ClickHouse configuration for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
       */
      public Builder setClickhouse(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse value) {
        if (clickhouseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          clickhouse_ = value;
          onChanged();
        } else {
          clickhouseBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * ClickHouse configuration for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
       */
      public Builder setClickhouse(
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.Builder builderForValue) {
        if (clickhouseBuilder_ == null) {
          clickhouse_ = builderForValue.build();
          onChanged();
        } else {
          clickhouseBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * ClickHouse configuration for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
       */
      public Builder mergeClickhouse(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse value) {
        if (clickhouseBuilder_ == null) {
          if (clickhouse_ != null) {
            clickhouse_ =
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.newBuilder(clickhouse_).mergeFrom(value).buildPartial();
          } else {
            clickhouse_ = value;
          }
          onChanged();
        } else {
          clickhouseBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * ClickHouse configuration for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
       */
      public Builder clearClickhouse() {
        if (clickhouseBuilder_ == null) {
          clickhouse_ = null;
          onChanged();
        } else {
          clickhouse_ = null;
          clickhouseBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * ClickHouse configuration for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.Builder getClickhouseBuilder() {
        
        onChanged();
        return getClickhouseFieldBuilder().getBuilder();
      }
      /**
       * 
       * ClickHouse configuration for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.ClickhouseOrBuilder getClickhouseOrBuilder() {
        if (clickhouseBuilder_ != null) {
          return clickhouseBuilder_.getMessageOrBuilder();
        } else {
          return clickhouse_ == null ?
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.getDefaultInstance() : clickhouse_;
        }
      }
      /**
       * 
       * ClickHouse configuration for a shard.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.ShardConfig.Clickhouse clickhouse = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.ClickhouseOrBuilder> 
          getClickhouseFieldBuilder() {
        if (clickhouseBuilder_ == null) {
          clickhouseBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.Clickhouse.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig.ClickhouseOrBuilder>(
                  getClickhouse(),
                  getParentForChildren(),
                  isClean());
          clickhouse_ = null;
        }
        return clickhouseBuilder_;
      }
      @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.clickhouse.v1.ShardConfig)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.clickhouse.v1.ShardConfig)
    private static final yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig();
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ShardConfig getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public ShardConfig parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ShardConfig(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.clickhouse.v1.ClusterOuterClass.ShardConfig getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface HostOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.clickhouse.v1.Host)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Name of the ClickHouse host. The host name is assigned by MDB at creation time, and cannot be changed.
     * 1-63 characters long.
     * The name is unique across all MDB hosts that exist on the platform, as it defines the FQDN of the host.
     * 
     *
     * string name = 1;
     * @return The name.
     */
    java.lang.String getName();
    /**
     * 
     * Name of the ClickHouse host. The host name is assigned by MDB at creation time, and cannot be changed.
     * 1-63 characters long.
     * The name is unique across all MDB hosts that exist on the platform, as it defines the FQDN of the host.
     * 
     *
     * string name = 1;
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();
    /**
     * 
     * ID of the ClickHouse host. The ID is assigned by MDB at creation time.
     * 
     *
     * string cluster_id = 2;
     * @return The clusterId.
     */
    java.lang.String getClusterId();
    /**
     * 
     * ID of the ClickHouse host. The ID is assigned by MDB at creation time.
     * 
     *
     * string cluster_id = 2;
     * @return The bytes for clusterId.
     */
    com.google.protobuf.ByteString
        getClusterIdBytes();
    /**
     * 
     * ID of the availability zone where the ClickHouse host resides.
     * 
     *
     * string zone_id = 3;
     * @return The zoneId.
     */
    java.lang.String getZoneId();
    /**
     * 
     * ID of the availability zone where the ClickHouse host resides.
     * 
     *
     * string zone_id = 3;
     * @return The bytes for zoneId.
     */
    com.google.protobuf.ByteString
        getZoneIdBytes();
    /**
     * 
     * Type of the host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Host.Type type = 4;
     * @return The enum numeric value on the wire for type.
     */
    int getTypeValue();
    /**
     * 
     * Type of the host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Host.Type type = 4;
     * @return The type.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Type getType();
    /**
     * 
     * Resources allocated to the ClickHouse host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
     * @return Whether the resources field is set.
     */
    boolean hasResources();
    /**
     * 
     * Resources allocated to the ClickHouse host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
     * @return The resources.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources getResources();
    /**
     * 
     * Resources allocated to the ClickHouse host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder getResourcesOrBuilder();
    /**
     * 
     * Status code of the aggregated health of the host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Host.Health health = 6;
     * @return The enum numeric value on the wire for health.
     */
    int getHealthValue();
    /**
     * 
     * Status code of the aggregated health of the host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Host.Health health = 6;
     * @return The health.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Health getHealth();
    /**
     * 
     * Services provided by the host.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
     */
    java.util.List 
        getServicesList();
    /**
     * 
     * Services provided by the host.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service getServices(int index);
    /**
     * 
     * Services provided by the host.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
     */
    int getServicesCount();
    /**
     * 
     * Services provided by the host.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
     */
    java.util.List extends yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ServiceOrBuilder> 
        getServicesOrBuilderList();
    /**
     * 
     * Services provided by the host.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ServiceOrBuilder getServicesOrBuilder(
        int index);
    /**
     * 
     * ID of the subnet that the host belongs to.
     * 
     *
     * string subnet_id = 8;
     * @return The subnetId.
     */
    java.lang.String getSubnetId();
    /**
     * 
     * ID of the subnet that the host belongs to.
     * 
     *
     * string subnet_id = 8;
     * @return The bytes for subnetId.
     */
    com.google.protobuf.ByteString
        getSubnetIdBytes();
    /**
     * 
     * Flag showing public IP assignment status to this host.
     * 
     *
     * bool assign_public_ip = 9;
     * @return The assignPublicIp.
     */
    boolean getAssignPublicIp();
    /**
     * string shard_name = 10;
     * @return The shardName.
     */
    java.lang.String getShardName();
    /**
     * string shard_name = 10;
     * @return The bytes for shardName.
     */
    com.google.protobuf.ByteString
        getShardNameBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.Host}
   */
  public static final class Host extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.clickhouse.v1.Host)
      HostOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Host.newBuilder() to construct.
    private Host(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private Host() {
      name_ = "";
      clusterId_ = "";
      zoneId_ = "";
      type_ = 0;
      health_ = 0;
      services_ = java.util.Collections.emptyList();
      subnetId_ = "";
      shardName_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Host();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Host(
        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();
              name_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              clusterId_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              zoneId_ = s;
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              type_ = rawValue;
              break;
            }
            case 42: {
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder subBuilder = null;
              if (resources_ != null) {
                subBuilder = resources_.toBuilder();
              }
              resources_ = input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(resources_);
                resources_ = subBuilder.buildPartial();
              }
              break;
            }
            case 48: {
              int rawValue = input.readEnum();
              health_ = rawValue;
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                services_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              services_.add(
                  input.readMessage(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.parser(), extensionRegistry));
              break;
            }
            case 66: {
              java.lang.String s = input.readStringRequireUtf8();
              subnetId_ = s;
              break;
            }
            case 72: {
              assignPublicIp_ = input.readBool();
              break;
            }
            case 82: {
              java.lang.String s = input.readStringRequireUtf8();
              shardName_ = 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)) {
          services_ = java.util.Collections.unmodifiableList(services_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Host_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Host_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Builder.class);
    }
    /**
     * Protobuf enum {@code yandex.cloud.mdb.clickhouse.v1.Host.Type}
     */
    public enum Type
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * TYPE_UNSPECIFIED = 0;
       */
      TYPE_UNSPECIFIED(0),
      /**
       * 
       * ClickHouse host.
       * 
       *
       * CLICKHOUSE = 1;
       */
      CLICKHOUSE(1),
      /**
       * 
       * ZooKeeper host.
       * 
       *
       * ZOOKEEPER = 2;
       */
      ZOOKEEPER(2),
      UNRECOGNIZED(-1),
      ;
      /**
       * TYPE_UNSPECIFIED = 0;
       */
      public static final int TYPE_UNSPECIFIED_VALUE = 0;
      /**
       * 
       * ClickHouse host.
       * 
       *
       * CLICKHOUSE = 1;
       */
      public static final int CLICKHOUSE_VALUE = 1;
      /**
       * 
       * ZooKeeper host.
       * 
       *
       * ZOOKEEPER = 2;
       */
      public static final int ZOOKEEPER_VALUE = 2;
      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 Type 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 Type forNumber(int value) {
        switch (value) {
          case 0: return TYPE_UNSPECIFIED;
          case 1: return CLICKHOUSE;
          case 2: return ZOOKEEPER;
          default: return null;
        }
      }
      public static com.google.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Type> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap() {
              public Type findValueByNumber(int number) {
                return Type.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.clickhouse.v1.ClusterOuterClass.Host.getDescriptor().getEnumTypes().get(0);
      }
      private static final Type[] VALUES = values();
      public static Type 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 Type(int value) {
        this.value = value;
      }
      // @@protoc_insertion_point(enum_scope:yandex.cloud.mdb.clickhouse.v1.Host.Type)
    }
    /**
     * Protobuf enum {@code yandex.cloud.mdb.clickhouse.v1.Host.Health}
     */
    public enum Health
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * 
       * Health of the host is unknown.
       * 
       *
       * UNKNOWN = 0;
       */
      UNKNOWN(0),
      /**
       * 
       * The host is performing all its functions normally.
       * 
       *
       * ALIVE = 1;
       */
      ALIVE(1),
      /**
       * 
       * The host is inoperable, and cannot perform any of its essential functions.
       * 
       *
       * DEAD = 2;
       */
      DEAD(2),
      /**
       * 
       * The host is degraded, and can perform only some of its essential functions.
       * 
       *
       * DEGRADED = 3;
       */
      DEGRADED(3),
      UNRECOGNIZED(-1),
      ;
      /**
       * 
       * Health of the host is unknown.
       * 
       *
       * UNKNOWN = 0;
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * 
       * The host is performing all its functions normally.
       * 
       *
       * ALIVE = 1;
       */
      public static final int ALIVE_VALUE = 1;
      /**
       * 
       * The host is inoperable, and cannot perform any of its essential functions.
       * 
       *
       * DEAD = 2;
       */
      public static final int DEAD_VALUE = 2;
      /**
       * 
       * The host is degraded, and can perform only some of its essential functions.
       * 
       *
       * DEGRADED = 3;
       */
      public static final int DEGRADED_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 Health 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 Health forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 1: return ALIVE;
          case 2: return DEAD;
          case 3: return DEGRADED;
          default: return null;
        }
      }
      public static com.google.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Health> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap() {
              public Health findValueByNumber(int number) {
                return Health.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.clickhouse.v1.ClusterOuterClass.Host.getDescriptor().getEnumTypes().get(1);
      }
      private static final Health[] VALUES = values();
      public static Health 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 Health(int value) {
        this.value = value;
      }
      // @@protoc_insertion_point(enum_scope:yandex.cloud.mdb.clickhouse.v1.Host.Health)
    }
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * 
     * Name of the ClickHouse host. The host name is assigned by MDB at creation time, and cannot be changed.
     * 1-63 characters long.
     * The name is unique across all MDB hosts that exist on the platform, as it defines the FQDN of the host.
     * 
     *
     * string name = 1;
     * @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 ClickHouse host. The host name is assigned by MDB at creation time, and cannot be changed.
     * 1-63 characters long.
     * The name is unique across all MDB hosts that exist on the platform, as it defines the FQDN of the host.
     * 
     *
     * string name = 1;
     * @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 CLUSTER_ID_FIELD_NUMBER = 2;
    private volatile java.lang.Object clusterId_;
    /**
     * 
     * ID of the ClickHouse host. The ID is assigned by MDB at creation time.
     * 
     *
     * string cluster_id = 2;
     * @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 ClickHouse host. The ID is assigned by MDB at creation time.
     * 
     *
     * string cluster_id = 2;
     * @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 ZONE_ID_FIELD_NUMBER = 3;
    private volatile java.lang.Object zoneId_;
    /**
     * 
     * ID of the availability zone where the ClickHouse host resides.
     * 
     *
     * string zone_id = 3;
     * @return The zoneId.
     */
    @java.lang.Override
    public java.lang.String getZoneId() {
      java.lang.Object ref = zoneId_;
      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();
        zoneId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the availability zone where the ClickHouse host resides.
     * 
     *
     * string zone_id = 3;
     * @return The bytes for zoneId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getZoneIdBytes() {
      java.lang.Object ref = zoneId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        zoneId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int TYPE_FIELD_NUMBER = 4;
    private int type_;
    /**
     * 
     * Type of the host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Host.Type type = 4;
     * @return The enum numeric value on the wire for type.
     */
    @java.lang.Override public int getTypeValue() {
      return type_;
    }
    /**
     * 
     * Type of the host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Host.Type type = 4;
     * @return The type.
     */
    @java.lang.Override public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Type getType() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Type result = yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Type.valueOf(type_);
      return result == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Type.UNRECOGNIZED : result;
    }
    public static final int RESOURCES_FIELD_NUMBER = 5;
    private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources resources_;
    /**
     * 
     * Resources allocated to the ClickHouse host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
     * @return Whether the resources field is set.
     */
    @java.lang.Override
    public boolean hasResources() {
      return resources_ != null;
    }
    /**
     * 
     * Resources allocated to the ClickHouse host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
     * @return The resources.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources getResources() {
      return resources_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.getDefaultInstance() : resources_;
    }
    /**
     * 
     * Resources allocated to the ClickHouse host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder getResourcesOrBuilder() {
      return getResources();
    }
    public static final int HEALTH_FIELD_NUMBER = 6;
    private int health_;
    /**
     * 
     * Status code of the aggregated health of the host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Host.Health health = 6;
     * @return The enum numeric value on the wire for health.
     */
    @java.lang.Override public int getHealthValue() {
      return health_;
    }
    /**
     * 
     * Status code of the aggregated health of the host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Host.Health health = 6;
     * @return The health.
     */
    @java.lang.Override public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Health getHealth() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Health result = yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Health.valueOf(health_);
      return result == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Health.UNRECOGNIZED : result;
    }
    public static final int SERVICES_FIELD_NUMBER = 7;
    private java.util.List services_;
    /**
     * 
     * Services provided by the host.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
     */
    @java.lang.Override
    public java.util.List getServicesList() {
      return services_;
    }
    /**
     * 
     * Services provided by the host.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
     */
    @java.lang.Override
    public java.util.List extends yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ServiceOrBuilder> 
        getServicesOrBuilderList() {
      return services_;
    }
    /**
     * 
     * Services provided by the host.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
     */
    @java.lang.Override
    public int getServicesCount() {
      return services_.size();
    }
    /**
     * 
     * Services provided by the host.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service getServices(int index) {
      return services_.get(index);
    }
    /**
     * 
     * Services provided by the host.
     * 
     *
     * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ServiceOrBuilder getServicesOrBuilder(
        int index) {
      return services_.get(index);
    }
    public static final int SUBNET_ID_FIELD_NUMBER = 8;
    private volatile java.lang.Object subnetId_;
    /**
     * 
     * ID of the subnet that the host belongs to.
     * 
     *
     * string subnet_id = 8;
     * @return The subnetId.
     */
    @java.lang.Override
    public java.lang.String getSubnetId() {
      java.lang.Object ref = subnetId_;
      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();
        subnetId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the subnet that the host belongs to.
     * 
     *
     * string subnet_id = 8;
     * @return The bytes for subnetId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSubnetIdBytes() {
      java.lang.Object ref = subnetId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        subnetId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int ASSIGN_PUBLIC_IP_FIELD_NUMBER = 9;
    private boolean assignPublicIp_;
    /**
     * 
     * Flag showing public IP assignment status to this host.
     * 
     *
     * bool assign_public_ip = 9;
     * @return The assignPublicIp.
     */
    @java.lang.Override
    public boolean getAssignPublicIp() {
      return assignPublicIp_;
    }
    public static final int SHARD_NAME_FIELD_NUMBER = 10;
    private volatile java.lang.Object shardName_;
    /**
     * string shard_name = 10;
     * @return The shardName.
     */
    @java.lang.Override
    public java.lang.String getShardName() {
      java.lang.Object ref = shardName_;
      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();
        shardName_ = s;
        return s;
      }
    }
    /**
     * string shard_name = 10;
     * @return The bytes for shardName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getShardNameBytes() {
      java.lang.Object ref = shardName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shardName_ = 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(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, clusterId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(zoneId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, zoneId_);
      }
      if (type_ != yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Type.TYPE_UNSPECIFIED.getNumber()) {
        output.writeEnum(4, type_);
      }
      if (resources_ != null) {
        output.writeMessage(5, getResources());
      }
      if (health_ != yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Health.UNKNOWN.getNumber()) {
        output.writeEnum(6, health_);
      }
      for (int i = 0; i < services_.size(); i++) {
        output.writeMessage(7, services_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(subnetId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, subnetId_);
      }
      if (assignPublicIp_ != false) {
        output.writeBool(9, assignPublicIp_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shardName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, shardName_);
      }
      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(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, clusterId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(zoneId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, zoneId_);
      }
      if (type_ != yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Type.TYPE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, type_);
      }
      if (resources_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getResources());
      }
      if (health_ != yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Health.UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(6, health_);
      }
      for (int i = 0; i < services_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, services_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(subnetId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, subnetId_);
      }
      if (assignPublicIp_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(9, assignPublicIp_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shardName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, shardName_);
      }
      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.clickhouse.v1.ClusterOuterClass.Host)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host other = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host) obj;
      if (!getName()
          .equals(other.getName())) return false;
      if (!getClusterId()
          .equals(other.getClusterId())) return false;
      if (!getZoneId()
          .equals(other.getZoneId())) return false;
      if (type_ != other.type_) return false;
      if (hasResources() != other.hasResources()) return false;
      if (hasResources()) {
        if (!getResources()
            .equals(other.getResources())) return false;
      }
      if (health_ != other.health_) return false;
      if (!getServicesList()
          .equals(other.getServicesList())) return false;
      if (!getSubnetId()
          .equals(other.getSubnetId())) return false;
      if (getAssignPublicIp()
          != other.getAssignPublicIp()) return false;
      if (!getShardName()
          .equals(other.getShardName())) 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) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + CLUSTER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClusterId().hashCode();
      hash = (37 * hash) + ZONE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getZoneId().hashCode();
      hash = (37 * hash) + TYPE_FIELD_NUMBER;
      hash = (53 * hash) + type_;
      if (hasResources()) {
        hash = (37 * hash) + RESOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getResources().hashCode();
      }
      hash = (37 * hash) + HEALTH_FIELD_NUMBER;
      hash = (53 * hash) + health_;
      if (getServicesCount() > 0) {
        hash = (37 * hash) + SERVICES_FIELD_NUMBER;
        hash = (53 * hash) + getServicesList().hashCode();
      }
      hash = (37 * hash) + SUBNET_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSubnetId().hashCode();
      hash = (37 * hash) + ASSIGN_PUBLIC_IP_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getAssignPublicIp());
      hash = (37 * hash) + SHARD_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getShardName().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host 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.clickhouse.v1.ClusterOuterClass.Host parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host 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.clickhouse.v1.ClusterOuterClass.Host parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host 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.clickhouse.v1.ClusterOuterClass.Host parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host 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.clickhouse.v1.ClusterOuterClass.Host parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host 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.clickhouse.v1.ClusterOuterClass.Host 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.clickhouse.v1.Host}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.clickhouse.v1.Host)
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.HostOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Host_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Host_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getServicesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        clusterId_ = "";
        zoneId_ = "";
        type_ = 0;
        if (resourcesBuilder_ == null) {
          resources_ = null;
        } else {
          resources_ = null;
          resourcesBuilder_ = null;
        }
        health_ = 0;
        if (servicesBuilder_ == null) {
          services_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          servicesBuilder_.clear();
        }
        subnetId_ = "";
        assignPublicIp_ = false;
        shardName_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Host_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host build() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host buildPartial() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host result = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host(this);
        int from_bitField0_ = bitField0_;
        result.name_ = name_;
        result.clusterId_ = clusterId_;
        result.zoneId_ = zoneId_;
        result.type_ = type_;
        if (resourcesBuilder_ == null) {
          result.resources_ = resources_;
        } else {
          result.resources_ = resourcesBuilder_.build();
        }
        result.health_ = health_;
        if (servicesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            services_ = java.util.Collections.unmodifiableList(services_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.services_ = services_;
        } else {
          result.services_ = servicesBuilder_.build();
        }
        result.subnetId_ = subnetId_;
        result.assignPublicIp_ = assignPublicIp_;
        result.shardName_ = shardName_;
        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.clickhouse.v1.ClusterOuterClass.Host) {
          return mergeFrom((yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host other) {
        if (other == yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.getDefaultInstance()) return this;
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (!other.getClusterId().isEmpty()) {
          clusterId_ = other.clusterId_;
          onChanged();
        }
        if (!other.getZoneId().isEmpty()) {
          zoneId_ = other.zoneId_;
          onChanged();
        }
        if (other.type_ != 0) {
          setTypeValue(other.getTypeValue());
        }
        if (other.hasResources()) {
          mergeResources(other.getResources());
        }
        if (other.health_ != 0) {
          setHealthValue(other.getHealthValue());
        }
        if (servicesBuilder_ == null) {
          if (!other.services_.isEmpty()) {
            if (services_.isEmpty()) {
              services_ = other.services_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureServicesIsMutable();
              services_.addAll(other.services_);
            }
            onChanged();
          }
        } else {
          if (!other.services_.isEmpty()) {
            if (servicesBuilder_.isEmpty()) {
              servicesBuilder_.dispose();
              servicesBuilder_ = null;
              services_ = other.services_;
              bitField0_ = (bitField0_ & ~0x00000001);
              servicesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getServicesFieldBuilder() : null;
            } else {
              servicesBuilder_.addAllMessages(other.services_);
            }
          }
        }
        if (!other.getSubnetId().isEmpty()) {
          subnetId_ = other.subnetId_;
          onChanged();
        }
        if (other.getAssignPublicIp() != false) {
          setAssignPublicIp(other.getAssignPublicIp());
        }
        if (!other.getShardName().isEmpty()) {
          shardName_ = other.shardName_;
          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.clickhouse.v1.ClusterOuterClass.Host parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private java.lang.Object name_ = "";
      /**
       * 
       * Name of the ClickHouse host. The host name is assigned by MDB at creation time, and cannot be changed.
       * 1-63 characters long.
       * The name is unique across all MDB hosts that exist on the platform, as it defines the FQDN of the host.
       * 
       *
       * string name = 1;
       * @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 ClickHouse host. The host name is assigned by MDB at creation time, and cannot be changed.
       * 1-63 characters long.
       * The name is unique across all MDB hosts that exist on the platform, as it defines the FQDN of the host.
       * 
       *
       * string name = 1;
       * @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 ClickHouse host. The host name is assigned by MDB at creation time, and cannot be changed.
       * 1-63 characters long.
       * The name is unique across all MDB hosts that exist on the platform, as it defines the FQDN of the host.
       * 
       *
       * string name = 1;
       * @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 ClickHouse host. The host name is assigned by MDB at creation time, and cannot be changed.
       * 1-63 characters long.
       * The name is unique across all MDB hosts that exist on the platform, as it defines the FQDN of the host.
       * 
       *
       * string name = 1;
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * 
       * Name of the ClickHouse host. The host name is assigned by MDB at creation time, and cannot be changed.
       * 1-63 characters long.
       * The name is unique across all MDB hosts that exist on the platform, as it defines the FQDN of the host.
       * 
       *
       * string name = 1;
       * @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 clusterId_ = "";
      /**
       * 
       * ID of the ClickHouse host. The ID is assigned by MDB at creation time.
       * 
       *
       * string cluster_id = 2;
       * @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 ClickHouse host. The ID is assigned by MDB at creation time.
       * 
       *
       * string cluster_id = 2;
       * @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 ClickHouse host. The ID is assigned by MDB at creation time.
       * 
       *
       * string cluster_id = 2;
       * @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 ClickHouse host. The ID is assigned by MDB at creation time.
       * 
       *
       * string cluster_id = 2;
       * @return This builder for chaining.
       */
      public Builder clearClusterId() {
        
        clusterId_ = getDefaultInstance().getClusterId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the ClickHouse host. The ID is assigned by MDB at creation time.
       * 
       *
       * string cluster_id = 2;
       * @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 zoneId_ = "";
      /**
       * 
       * ID of the availability zone where the ClickHouse host resides.
       * 
       *
       * string zone_id = 3;
       * @return The zoneId.
       */
      public java.lang.String getZoneId() {
        java.lang.Object ref = zoneId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          zoneId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the availability zone where the ClickHouse host resides.
       * 
       *
       * string zone_id = 3;
       * @return The bytes for zoneId.
       */
      public com.google.protobuf.ByteString
          getZoneIdBytes() {
        java.lang.Object ref = zoneId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          zoneId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the availability zone where the ClickHouse host resides.
       * 
       *
       * string zone_id = 3;
       * @param value The zoneId to set.
       * @return This builder for chaining.
       */
      public Builder setZoneId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        zoneId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the availability zone where the ClickHouse host resides.
       * 
       *
       * string zone_id = 3;
       * @return This builder for chaining.
       */
      public Builder clearZoneId() {
        
        zoneId_ = getDefaultInstance().getZoneId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the availability zone where the ClickHouse host resides.
       * 
       *
       * string zone_id = 3;
       * @param value The bytes for zoneId to set.
       * @return This builder for chaining.
       */
      public Builder setZoneIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        zoneId_ = value;
        onChanged();
        return this;
      }
      private int type_ = 0;
      /**
       * 
       * Type of the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Host.Type type = 4;
       * @return The enum numeric value on the wire for type.
       */
      @java.lang.Override public int getTypeValue() {
        return type_;
      }
      /**
       * 
       * Type of the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Host.Type type = 4;
       * @param value The enum numeric value on the wire for type to set.
       * @return This builder for chaining.
       */
      public Builder setTypeValue(int value) {
        
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Type of the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Host.Type type = 4;
       * @return The type.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Type getType() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Type result = yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Type.valueOf(type_);
        return result == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Type.UNRECOGNIZED : result;
      }
      /**
       * 
       * Type of the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Host.Type type = 4;
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Type value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        type_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Type of the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Host.Type type = 4;
       * @return This builder for chaining.
       */
      public Builder clearType() {
        
        type_ = 0;
        onChanged();
        return this;
      }
      private yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources resources_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder> resourcesBuilder_;
      /**
       * 
       * Resources allocated to the ClickHouse host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
       * @return Whether the resources field is set.
       */
      public boolean hasResources() {
        return resourcesBuilder_ != null || resources_ != null;
      }
      /**
       * 
       * Resources allocated to the ClickHouse host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
       * @return The resources.
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources getResources() {
        if (resourcesBuilder_ == null) {
          return resources_ == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.getDefaultInstance() : resources_;
        } else {
          return resourcesBuilder_.getMessage();
        }
      }
      /**
       * 
       * Resources allocated to the ClickHouse host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
       */
      public Builder setResources(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources value) {
        if (resourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          resources_ = value;
          onChanged();
        } else {
          resourcesBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Resources allocated to the ClickHouse host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
       */
      public Builder setResources(
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder builderForValue) {
        if (resourcesBuilder_ == null) {
          resources_ = builderForValue.build();
          onChanged();
        } else {
          resourcesBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Resources allocated to the ClickHouse host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
       */
      public Builder mergeResources(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources value) {
        if (resourcesBuilder_ == null) {
          if (resources_ != null) {
            resources_ =
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.newBuilder(resources_).mergeFrom(value).buildPartial();
          } else {
            resources_ = value;
          }
          onChanged();
        } else {
          resourcesBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Resources allocated to the ClickHouse host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
       */
      public Builder clearResources() {
        if (resourcesBuilder_ == null) {
          resources_ = null;
          onChanged();
        } else {
          resources_ = null;
          resourcesBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Resources allocated to the ClickHouse host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder getResourcesBuilder() {
        
        onChanged();
        return getResourcesFieldBuilder().getBuilder();
      }
      /**
       * 
       * Resources allocated to the ClickHouse host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder getResourcesOrBuilder() {
        if (resourcesBuilder_ != null) {
          return resourcesBuilder_.getMessageOrBuilder();
        } else {
          return resources_ == null ?
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.getDefaultInstance() : resources_;
        }
      }
      /**
       * 
       * Resources allocated to the ClickHouse host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Resources resources = 5;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder> 
          getResourcesFieldBuilder() {
        if (resourcesBuilder_ == null) {
          resourcesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder>(
                  getResources(),
                  getParentForChildren(),
                  isClean());
          resources_ = null;
        }
        return resourcesBuilder_;
      }
      private int health_ = 0;
      /**
       * 
       * Status code of the aggregated health of the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Host.Health health = 6;
       * @return The enum numeric value on the wire for health.
       */
      @java.lang.Override public int getHealthValue() {
        return health_;
      }
      /**
       * 
       * Status code of the aggregated health of the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Host.Health health = 6;
       * @param value The enum numeric value on the wire for health to set.
       * @return This builder for chaining.
       */
      public Builder setHealthValue(int value) {
        
        health_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Status code of the aggregated health of the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Host.Health health = 6;
       * @return The health.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Health getHealth() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Health result = yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Health.valueOf(health_);
        return result == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Health.UNRECOGNIZED : result;
      }
      /**
       * 
       * Status code of the aggregated health of the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Host.Health health = 6;
       * @param value The health to set.
       * @return This builder for chaining.
       */
      public Builder setHealth(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host.Health value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        health_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Status code of the aggregated health of the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Host.Health health = 6;
       * @return This builder for chaining.
       */
      public Builder clearHealth() {
        
        health_ = 0;
        onChanged();
        return this;
      }
      private java.util.List services_ =
        java.util.Collections.emptyList();
      private void ensureServicesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          services_ = new java.util.ArrayList(services_);
          bitField0_ |= 0x00000001;
         }
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ServiceOrBuilder> servicesBuilder_;
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public java.util.List getServicesList() {
        if (servicesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(services_);
        } else {
          return servicesBuilder_.getMessageList();
        }
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public int getServicesCount() {
        if (servicesBuilder_ == null) {
          return services_.size();
        } else {
          return servicesBuilder_.getCount();
        }
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service getServices(int index) {
        if (servicesBuilder_ == null) {
          return services_.get(index);
        } else {
          return servicesBuilder_.getMessage(index);
        }
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public Builder setServices(
          int index, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service value) {
        if (servicesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServicesIsMutable();
          services_.set(index, value);
          onChanged();
        } else {
          servicesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public Builder setServices(
          int index, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Builder builderForValue) {
        if (servicesBuilder_ == null) {
          ensureServicesIsMutable();
          services_.set(index, builderForValue.build());
          onChanged();
        } else {
          servicesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public Builder addServices(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service value) {
        if (servicesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServicesIsMutable();
          services_.add(value);
          onChanged();
        } else {
          servicesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public Builder addServices(
          int index, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service value) {
        if (servicesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureServicesIsMutable();
          services_.add(index, value);
          onChanged();
        } else {
          servicesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public Builder addServices(
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Builder builderForValue) {
        if (servicesBuilder_ == null) {
          ensureServicesIsMutable();
          services_.add(builderForValue.build());
          onChanged();
        } else {
          servicesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public Builder addServices(
          int index, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Builder builderForValue) {
        if (servicesBuilder_ == null) {
          ensureServicesIsMutable();
          services_.add(index, builderForValue.build());
          onChanged();
        } else {
          servicesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public Builder addAllServices(
          java.lang.Iterable extends yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service> values) {
        if (servicesBuilder_ == null) {
          ensureServicesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, services_);
          onChanged();
        } else {
          servicesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public Builder clearServices() {
        if (servicesBuilder_ == null) {
          services_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          servicesBuilder_.clear();
        }
        return this;
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public Builder removeServices(int index) {
        if (servicesBuilder_ == null) {
          ensureServicesIsMutable();
          services_.remove(index);
          onChanged();
        } else {
          servicesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Builder getServicesBuilder(
          int index) {
        return getServicesFieldBuilder().getBuilder(index);
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ServiceOrBuilder getServicesOrBuilder(
          int index) {
        if (servicesBuilder_ == null) {
          return services_.get(index);  } else {
          return servicesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public java.util.List extends yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ServiceOrBuilder> 
           getServicesOrBuilderList() {
        if (servicesBuilder_ != null) {
          return servicesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(services_);
        }
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Builder addServicesBuilder() {
        return getServicesFieldBuilder().addBuilder(
            yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.getDefaultInstance());
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Builder addServicesBuilder(
          int index) {
        return getServicesFieldBuilder().addBuilder(
            index, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.getDefaultInstance());
      }
      /**
       * 
       * Services provided by the host.
       * 
       *
       * repeated .yandex.cloud.mdb.clickhouse.v1.Service services = 7;
       */
      public java.util.List 
           getServicesBuilderList() {
        return getServicesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ServiceOrBuilder> 
          getServicesFieldBuilder() {
        if (servicesBuilder_ == null) {
          servicesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Builder, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ServiceOrBuilder>(
                  services_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          services_ = null;
        }
        return servicesBuilder_;
      }
      private java.lang.Object subnetId_ = "";
      /**
       * 
       * ID of the subnet that the host belongs to.
       * 
       *
       * string subnet_id = 8;
       * @return The subnetId.
       */
      public java.lang.String getSubnetId() {
        java.lang.Object ref = subnetId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          subnetId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the subnet that the host belongs to.
       * 
       *
       * string subnet_id = 8;
       * @return The bytes for subnetId.
       */
      public com.google.protobuf.ByteString
          getSubnetIdBytes() {
        java.lang.Object ref = subnetId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          subnetId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the subnet that the host belongs to.
       * 
       *
       * string subnet_id = 8;
       * @param value The subnetId to set.
       * @return This builder for chaining.
       */
      public Builder setSubnetId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        subnetId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the subnet that the host belongs to.
       * 
       *
       * string subnet_id = 8;
       * @return This builder for chaining.
       */
      public Builder clearSubnetId() {
        
        subnetId_ = getDefaultInstance().getSubnetId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the subnet that the host belongs to.
       * 
       *
       * string subnet_id = 8;
       * @param value The bytes for subnetId to set.
       * @return This builder for chaining.
       */
      public Builder setSubnetIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        subnetId_ = value;
        onChanged();
        return this;
      }
      private boolean assignPublicIp_ ;
      /**
       * 
       * Flag showing public IP assignment status to this host.
       * 
       *
       * bool assign_public_ip = 9;
       * @return The assignPublicIp.
       */
      @java.lang.Override
      public boolean getAssignPublicIp() {
        return assignPublicIp_;
      }
      /**
       * 
       * Flag showing public IP assignment status to this host.
       * 
       *
       * bool assign_public_ip = 9;
       * @param value The assignPublicIp to set.
       * @return This builder for chaining.
       */
      public Builder setAssignPublicIp(boolean value) {
        
        assignPublicIp_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Flag showing public IP assignment status to this host.
       * 
       *
       * bool assign_public_ip = 9;
       * @return This builder for chaining.
       */
      public Builder clearAssignPublicIp() {
        
        assignPublicIp_ = false;
        onChanged();
        return this;
      }
      private java.lang.Object shardName_ = "";
      /**
       * string shard_name = 10;
       * @return The shardName.
       */
      public java.lang.String getShardName() {
        java.lang.Object ref = shardName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          shardName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string shard_name = 10;
       * @return The bytes for shardName.
       */
      public com.google.protobuf.ByteString
          getShardNameBytes() {
        java.lang.Object ref = shardName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shardName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string shard_name = 10;
       * @param value The shardName to set.
       * @return This builder for chaining.
       */
      public Builder setShardName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        shardName_ = value;
        onChanged();
        return this;
      }
      /**
       * string shard_name = 10;
       * @return This builder for chaining.
       */
      public Builder clearShardName() {
        
        shardName_ = getDefaultInstance().getShardName();
        onChanged();
        return this;
      }
      /**
       * string shard_name = 10;
       * @param value The bytes for shardName to set.
       * @return This builder for chaining.
       */
      public Builder setShardNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        shardName_ = 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.clickhouse.v1.Host)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.clickhouse.v1.Host)
    private static final yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host();
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Host getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public Host parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Host(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.clickhouse.v1.ClusterOuterClass.Host getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface ServiceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.clickhouse.v1.Service)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Type of the service provided by the host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Service.Type type = 1;
     * @return The enum numeric value on the wire for type.
     */
    int getTypeValue();
    /**
     * 
     * Type of the service provided by the host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Service.Type type = 1;
     * @return The type.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Type getType();
    /**
     * 
     * Status code of server availability.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Service.Health health = 2;
     * @return The enum numeric value on the wire for health.
     */
    int getHealthValue();
    /**
     * 
     * Status code of server availability.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Service.Health health = 2;
     * @return The health.
     */
    yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Health getHealth();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.Service}
   */
  public static final class Service extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.clickhouse.v1.Service)
      ServiceOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Service.newBuilder() to construct.
    private Service(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private Service() {
      type_ = 0;
      health_ = 0;
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Service();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Service(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              int rawValue = input.readEnum();
              type_ = rawValue;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              health_ = rawValue;
              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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Service_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Service_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Builder.class);
    }
    /**
     * Protobuf enum {@code yandex.cloud.mdb.clickhouse.v1.Service.Type}
     */
    public enum Type
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * TYPE_UNSPECIFIED = 0;
       */
      TYPE_UNSPECIFIED(0),
      /**
       * 
       * The host is a ClickHouse server.
       * 
       *
       * CLICKHOUSE = 1;
       */
      CLICKHOUSE(1),
      /**
       * 
       * The host is a ZooKeeper server.
       * 
       *
       * ZOOKEEPER = 2;
       */
      ZOOKEEPER(2),
      UNRECOGNIZED(-1),
      ;
      /**
       * TYPE_UNSPECIFIED = 0;
       */
      public static final int TYPE_UNSPECIFIED_VALUE = 0;
      /**
       * 
       * The host is a ClickHouse server.
       * 
       *
       * CLICKHOUSE = 1;
       */
      public static final int CLICKHOUSE_VALUE = 1;
      /**
       * 
       * The host is a ZooKeeper server.
       * 
       *
       * ZOOKEEPER = 2;
       */
      public static final int ZOOKEEPER_VALUE = 2;
      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 Type 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 Type forNumber(int value) {
        switch (value) {
          case 0: return TYPE_UNSPECIFIED;
          case 1: return CLICKHOUSE;
          case 2: return ZOOKEEPER;
          default: return null;
        }
      }
      public static com.google.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Type> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap() {
              public Type findValueByNumber(int number) {
                return Type.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.clickhouse.v1.ClusterOuterClass.Service.getDescriptor().getEnumTypes().get(0);
      }
      private static final Type[] VALUES = values();
      public static Type 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 Type(int value) {
        this.value = value;
      }
      // @@protoc_insertion_point(enum_scope:yandex.cloud.mdb.clickhouse.v1.Service.Type)
    }
    /**
     * Protobuf enum {@code yandex.cloud.mdb.clickhouse.v1.Service.Health}
     */
    public enum Health
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * 
       * Health of the server is unknown.
       * 
       *
       * UNKNOWN = 0;
       */
      UNKNOWN(0),
      /**
       * 
       * The server is working normally.
       * 
       *
       * ALIVE = 1;
       */
      ALIVE(1),
      /**
       * 
       * The server is dead or unresponsive.
       * 
       *
       * DEAD = 2;
       */
      DEAD(2),
      UNRECOGNIZED(-1),
      ;
      /**
       * 
       * Health of the server is unknown.
       * 
       *
       * UNKNOWN = 0;
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * 
       * The server is working normally.
       * 
       *
       * ALIVE = 1;
       */
      public static final int ALIVE_VALUE = 1;
      /**
       * 
       * The server is dead or unresponsive.
       * 
       *
       * DEAD = 2;
       */
      public static final int DEAD_VALUE = 2;
      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 Health 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 Health forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 1: return ALIVE;
          case 2: return DEAD;
          default: return null;
        }
      }
      public static com.google.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Health> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap() {
              public Health findValueByNumber(int number) {
                return Health.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.clickhouse.v1.ClusterOuterClass.Service.getDescriptor().getEnumTypes().get(1);
      }
      private static final Health[] VALUES = values();
      public static Health 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 Health(int value) {
        this.value = value;
      }
      // @@protoc_insertion_point(enum_scope:yandex.cloud.mdb.clickhouse.v1.Service.Health)
    }
    public static final int TYPE_FIELD_NUMBER = 1;
    private int type_;
    /**
     * 
     * Type of the service provided by the host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Service.Type type = 1;
     * @return The enum numeric value on the wire for type.
     */
    @java.lang.Override public int getTypeValue() {
      return type_;
    }
    /**
     * 
     * Type of the service provided by the host.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Service.Type type = 1;
     * @return The type.
     */
    @java.lang.Override public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Type getType() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Type result = yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Type.valueOf(type_);
      return result == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Type.UNRECOGNIZED : result;
    }
    public static final int HEALTH_FIELD_NUMBER = 2;
    private int health_;
    /**
     * 
     * Status code of server availability.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Service.Health health = 2;
     * @return The enum numeric value on the wire for health.
     */
    @java.lang.Override public int getHealthValue() {
      return health_;
    }
    /**
     * 
     * Status code of server availability.
     * 
     *
     * .yandex.cloud.mdb.clickhouse.v1.Service.Health health = 2;
     * @return The health.
     */
    @java.lang.Override public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Health getHealth() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Health result = yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Health.valueOf(health_);
      return result == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Health.UNRECOGNIZED : result;
    }
    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 (type_ != yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Type.TYPE_UNSPECIFIED.getNumber()) {
        output.writeEnum(1, type_);
      }
      if (health_ != yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Health.UNKNOWN.getNumber()) {
        output.writeEnum(2, health_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (type_ != yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Type.TYPE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_);
      }
      if (health_ != yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Health.UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, health_);
      }
      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.clickhouse.v1.ClusterOuterClass.Service)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service other = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service) obj;
      if (type_ != other.type_) return false;
      if (health_ != other.health_) 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) + TYPE_FIELD_NUMBER;
      hash = (53 * hash) + type_;
      hash = (37 * hash) + HEALTH_FIELD_NUMBER;
      hash = (53 * hash) + health_;
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service 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.clickhouse.v1.ClusterOuterClass.Service parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service 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.clickhouse.v1.ClusterOuterClass.Service parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service 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.clickhouse.v1.ClusterOuterClass.Service parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service 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.clickhouse.v1.ClusterOuterClass.Service parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service 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.clickhouse.v1.ClusterOuterClass.Service 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.clickhouse.v1.Service}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.clickhouse.v1.Service)
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ServiceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Service_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Service_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.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();
        type_ = 0;
        health_ = 0;
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Service_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service build() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service buildPartial() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service result = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service(this);
        result.type_ = type_;
        result.health_ = health_;
        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.clickhouse.v1.ClusterOuterClass.Service) {
          return mergeFrom((yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service other) {
        if (other == yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.getDefaultInstance()) return this;
        if (other.type_ != 0) {
          setTypeValue(other.getTypeValue());
        }
        if (other.health_ != 0) {
          setHealthValue(other.getHealthValue());
        }
        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.clickhouse.v1.ClusterOuterClass.Service parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int type_ = 0;
      /**
       * 
       * Type of the service provided by the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Service.Type type = 1;
       * @return The enum numeric value on the wire for type.
       */
      @java.lang.Override public int getTypeValue() {
        return type_;
      }
      /**
       * 
       * Type of the service provided by the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Service.Type type = 1;
       * @param value The enum numeric value on the wire for type to set.
       * @return This builder for chaining.
       */
      public Builder setTypeValue(int value) {
        
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Type of the service provided by the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Service.Type type = 1;
       * @return The type.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Type getType() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Type result = yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Type.valueOf(type_);
        return result == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Type.UNRECOGNIZED : result;
      }
      /**
       * 
       * Type of the service provided by the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Service.Type type = 1;
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Type value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        type_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Type of the service provided by the host.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Service.Type type = 1;
       * @return This builder for chaining.
       */
      public Builder clearType() {
        
        type_ = 0;
        onChanged();
        return this;
      }
      private int health_ = 0;
      /**
       * 
       * Status code of server availability.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Service.Health health = 2;
       * @return The enum numeric value on the wire for health.
       */
      @java.lang.Override public int getHealthValue() {
        return health_;
      }
      /**
       * 
       * Status code of server availability.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Service.Health health = 2;
       * @param value The enum numeric value on the wire for health to set.
       * @return This builder for chaining.
       */
      public Builder setHealthValue(int value) {
        
        health_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Status code of server availability.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Service.Health health = 2;
       * @return The health.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Health getHealth() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Health result = yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Health.valueOf(health_);
        return result == null ? yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Health.UNRECOGNIZED : result;
      }
      /**
       * 
       * Status code of server availability.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Service.Health health = 2;
       * @param value The health to set.
       * @return This builder for chaining.
       */
      public Builder setHealth(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service.Health value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        health_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Status code of server availability.
       * 
       *
       * .yandex.cloud.mdb.clickhouse.v1.Service.Health health = 2;
       * @return This builder for chaining.
       */
      public Builder clearHealth() {
        
        health_ = 0;
        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.clickhouse.v1.Service)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.clickhouse.v1.Service)
    private static final yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service();
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Service getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public Service parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Service(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.clickhouse.v1.ClusterOuterClass.Service getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface ResourcesOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.clickhouse.v1.Resources)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * ID of the preset for computational resources available to a host (CPU, memory etc.).
     * All available presets are listed in the [documentation](/docs/managed-clickhouse/concepts/instance-types)
     * 
     *
     * string resource_preset_id = 1;
     * @return The resourcePresetId.
     */
    java.lang.String getResourcePresetId();
    /**
     * 
     * ID of the preset for computational resources available to a host (CPU, memory etc.).
     * All available presets are listed in the [documentation](/docs/managed-clickhouse/concepts/instance-types)
     * 
     *
     * string resource_preset_id = 1;
     * @return The bytes for resourcePresetId.
     */
    com.google.protobuf.ByteString
        getResourcePresetIdBytes();
    /**
     * 
     * Volume of the storage available to a host, in bytes.
     * 
     *
     * int64 disk_size = 2;
     * @return The diskSize.
     */
    long getDiskSize();
    /**
     * 
     * Type of the storage environment for the host.
     * Possible values:
     * * network-hdd - network HDD drive,
     * * network-ssd - network SSD drive,
     * * local-ssd - local SSD storage.
     * 
     *
     * string disk_type_id = 3;
     * @return The diskTypeId.
     */
    java.lang.String getDiskTypeId();
    /**
     * 
     * Type of the storage environment for the host.
     * Possible values:
     * * network-hdd - network HDD drive,
     * * network-ssd - network SSD drive,
     * * local-ssd - local SSD storage.
     * 
     *
     * string disk_type_id = 3;
     * @return The bytes for diskTypeId.
     */
    com.google.protobuf.ByteString
        getDiskTypeIdBytes();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.Resources}
   */
  public static final class Resources extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.clickhouse.v1.Resources)
      ResourcesOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Resources.newBuilder() to construct.
    private Resources(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private Resources() {
      resourcePresetId_ = "";
      diskTypeId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Resources();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Resources(
        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();
              resourcePresetId_ = s;
              break;
            }
            case 16: {
              diskSize_ = input.readInt64();
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              diskTypeId_ = 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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Resources_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Resources_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder.class);
    }
    public static final int RESOURCE_PRESET_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object resourcePresetId_;
    /**
     * 
     * ID of the preset for computational resources available to a host (CPU, memory etc.).
     * All available presets are listed in the [documentation](/docs/managed-clickhouse/concepts/instance-types)
     * 
     *
     * string resource_preset_id = 1;
     * @return The resourcePresetId.
     */
    @java.lang.Override
    public java.lang.String getResourcePresetId() {
      java.lang.Object ref = resourcePresetId_;
      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();
        resourcePresetId_ = s;
        return s;
      }
    }
    /**
     * 
     * ID of the preset for computational resources available to a host (CPU, memory etc.).
     * All available presets are listed in the [documentation](/docs/managed-clickhouse/concepts/instance-types)
     * 
     *
     * string resource_preset_id = 1;
     * @return The bytes for resourcePresetId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getResourcePresetIdBytes() {
      java.lang.Object ref = resourcePresetId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        resourcePresetId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int DISK_SIZE_FIELD_NUMBER = 2;
    private long diskSize_;
    /**
     * 
     * Volume of the storage available to a host, in bytes.
     * 
     *
     * int64 disk_size = 2;
     * @return The diskSize.
     */
    @java.lang.Override
    public long getDiskSize() {
      return diskSize_;
    }
    public static final int DISK_TYPE_ID_FIELD_NUMBER = 3;
    private volatile java.lang.Object diskTypeId_;
    /**
     * 
     * Type of the storage environment for the host.
     * Possible values:
     * * network-hdd - network HDD drive,
     * * network-ssd - network SSD drive,
     * * local-ssd - local SSD storage.
     * 
     *
     * string disk_type_id = 3;
     * @return The diskTypeId.
     */
    @java.lang.Override
    public java.lang.String getDiskTypeId() {
      java.lang.Object ref = diskTypeId_;
      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();
        diskTypeId_ = s;
        return s;
      }
    }
    /**
     * 
     * Type of the storage environment for the host.
     * Possible values:
     * * network-hdd - network HDD drive,
     * * network-ssd - network SSD drive,
     * * local-ssd - local SSD storage.
     * 
     *
     * string disk_type_id = 3;
     * @return The bytes for diskTypeId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDiskTypeIdBytes() {
      java.lang.Object ref = diskTypeId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        diskTypeId_ = 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(resourcePresetId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, resourcePresetId_);
      }
      if (diskSize_ != 0L) {
        output.writeInt64(2, diskSize_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(diskTypeId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, diskTypeId_);
      }
      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(resourcePresetId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, resourcePresetId_);
      }
      if (diskSize_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, diskSize_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(diskTypeId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, diskTypeId_);
      }
      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.clickhouse.v1.ClusterOuterClass.Resources)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources other = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources) obj;
      if (!getResourcePresetId()
          .equals(other.getResourcePresetId())) return false;
      if (getDiskSize()
          != other.getDiskSize()) return false;
      if (!getDiskTypeId()
          .equals(other.getDiskTypeId())) 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) + RESOURCE_PRESET_ID_FIELD_NUMBER;
      hash = (53 * hash) + getResourcePresetId().hashCode();
      hash = (37 * hash) + DISK_SIZE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getDiskSize());
      hash = (37 * hash) + DISK_TYPE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDiskTypeId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources 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.clickhouse.v1.ClusterOuterClass.Resources parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources 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.clickhouse.v1.ClusterOuterClass.Resources parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources 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.clickhouse.v1.ClusterOuterClass.Resources parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources 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.clickhouse.v1.ClusterOuterClass.Resources parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources 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.clickhouse.v1.ClusterOuterClass.Resources 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.clickhouse.v1.Resources}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.clickhouse.v1.Resources)
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.ResourcesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Resources_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Resources_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.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();
        resourcePresetId_ = "";
        diskSize_ = 0L;
        diskTypeId_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Resources_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources build() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources buildPartial() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources result = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources(this);
        result.resourcePresetId_ = resourcePresetId_;
        result.diskSize_ = diskSize_;
        result.diskTypeId_ = diskTypeId_;
        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.clickhouse.v1.ClusterOuterClass.Resources) {
          return mergeFrom((yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources other) {
        if (other == yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources.getDefaultInstance()) return this;
        if (!other.getResourcePresetId().isEmpty()) {
          resourcePresetId_ = other.resourcePresetId_;
          onChanged();
        }
        if (other.getDiskSize() != 0L) {
          setDiskSize(other.getDiskSize());
        }
        if (!other.getDiskTypeId().isEmpty()) {
          diskTypeId_ = other.diskTypeId_;
          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.clickhouse.v1.ClusterOuterClass.Resources parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object resourcePresetId_ = "";
      /**
       * 
       * ID of the preset for computational resources available to a host (CPU, memory etc.).
       * All available presets are listed in the [documentation](/docs/managed-clickhouse/concepts/instance-types)
       * 
       *
       * string resource_preset_id = 1;
       * @return The resourcePresetId.
       */
      public java.lang.String getResourcePresetId() {
        java.lang.Object ref = resourcePresetId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          resourcePresetId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * ID of the preset for computational resources available to a host (CPU, memory etc.).
       * All available presets are listed in the [documentation](/docs/managed-clickhouse/concepts/instance-types)
       * 
       *
       * string resource_preset_id = 1;
       * @return The bytes for resourcePresetId.
       */
      public com.google.protobuf.ByteString
          getResourcePresetIdBytes() {
        java.lang.Object ref = resourcePresetId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          resourcePresetId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * ID of the preset for computational resources available to a host (CPU, memory etc.).
       * All available presets are listed in the [documentation](/docs/managed-clickhouse/concepts/instance-types)
       * 
       *
       * string resource_preset_id = 1;
       * @param value The resourcePresetId to set.
       * @return This builder for chaining.
       */
      public Builder setResourcePresetId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        resourcePresetId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the preset for computational resources available to a host (CPU, memory etc.).
       * All available presets are listed in the [documentation](/docs/managed-clickhouse/concepts/instance-types)
       * 
       *
       * string resource_preset_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearResourcePresetId() {
        
        resourcePresetId_ = getDefaultInstance().getResourcePresetId();
        onChanged();
        return this;
      }
      /**
       * 
       * ID of the preset for computational resources available to a host (CPU, memory etc.).
       * All available presets are listed in the [documentation](/docs/managed-clickhouse/concepts/instance-types)
       * 
       *
       * string resource_preset_id = 1;
       * @param value The bytes for resourcePresetId to set.
       * @return This builder for chaining.
       */
      public Builder setResourcePresetIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        resourcePresetId_ = value;
        onChanged();
        return this;
      }
      private long diskSize_ ;
      /**
       * 
       * Volume of the storage available to a host, in bytes.
       * 
       *
       * int64 disk_size = 2;
       * @return The diskSize.
       */
      @java.lang.Override
      public long getDiskSize() {
        return diskSize_;
      }
      /**
       * 
       * Volume of the storage available to a host, in bytes.
       * 
       *
       * int64 disk_size = 2;
       * @param value The diskSize to set.
       * @return This builder for chaining.
       */
      public Builder setDiskSize(long value) {
        
        diskSize_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Volume of the storage available to a host, in bytes.
       * 
       *
       * int64 disk_size = 2;
       * @return This builder for chaining.
       */
      public Builder clearDiskSize() {
        
        diskSize_ = 0L;
        onChanged();
        return this;
      }
      private java.lang.Object diskTypeId_ = "";
      /**
       * 
       * Type of the storage environment for the host.
       * Possible values:
       * * network-hdd - network HDD drive,
       * * network-ssd - network SSD drive,
       * * local-ssd - local SSD storage.
       * 
       *
       * string disk_type_id = 3;
       * @return The diskTypeId.
       */
      public java.lang.String getDiskTypeId() {
        java.lang.Object ref = diskTypeId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          diskTypeId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * Type of the storage environment for the host.
       * Possible values:
       * * network-hdd - network HDD drive,
       * * network-ssd - network SSD drive,
       * * local-ssd - local SSD storage.
       * 
       *
       * string disk_type_id = 3;
       * @return The bytes for diskTypeId.
       */
      public com.google.protobuf.ByteString
          getDiskTypeIdBytes() {
        java.lang.Object ref = diskTypeId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          diskTypeId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * Type of the storage environment for the host.
       * Possible values:
       * * network-hdd - network HDD drive,
       * * network-ssd - network SSD drive,
       * * local-ssd - local SSD storage.
       * 
       *
       * string disk_type_id = 3;
       * @param value The diskTypeId to set.
       * @return This builder for chaining.
       */
      public Builder setDiskTypeId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        diskTypeId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Type of the storage environment for the host.
       * Possible values:
       * * network-hdd - network HDD drive,
       * * network-ssd - network SSD drive,
       * * local-ssd - local SSD storage.
       * 
       *
       * string disk_type_id = 3;
       * @return This builder for chaining.
       */
      public Builder clearDiskTypeId() {
        
        diskTypeId_ = getDefaultInstance().getDiskTypeId();
        onChanged();
        return this;
      }
      /**
       * 
       * Type of the storage environment for the host.
       * Possible values:
       * * network-hdd - network HDD drive,
       * * network-ssd - network SSD drive,
       * * local-ssd - local SSD storage.
       * 
       *
       * string disk_type_id = 3;
       * @param value The bytes for diskTypeId to set.
       * @return This builder for chaining.
       */
      public Builder setDiskTypeIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        diskTypeId_ = 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.clickhouse.v1.Resources)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.clickhouse.v1.Resources)
    private static final yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources();
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Resources getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public Resources parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Resources(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.clickhouse.v1.ClusterOuterClass.Resources getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface AccessOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.clickhouse.v1.Access)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Allow to export data from the cluster to DataLens.
     * 
     *
     * bool data_lens = 1;
     * @return The dataLens.
     */
    boolean getDataLens();
    /**
     * 
     * Allow SQL queries to the cluster databases from the management console.
     * See [SQL queries in the management console](/docs/managed-clickhouse/operations/web-sql-query) for more details.
     * 
     *
     * bool web_sql = 2;
     * @return The webSql.
     */
    boolean getWebSql();
    /**
     * 
     * Allow to import data from Yandex Metrica and AppMetrica to the cluster.
     * See [AppMetrica documentation](https://appmetrica.yandex.com/docs/cloud/index.html) for more details.
     * 
     *
     * bool metrika = 3;
     * @return The metrika.
     */
    boolean getMetrika();
    /**
     * 
     * Allow access to cluster for Serverless.
     * 
     *
     * bool serverless = 4;
     * @return The serverless.
     */
    boolean getServerless();
    /**
     * 
     * Allow access for DataTransfer
     * 
     *
     * bool data_transfer = 5;
     * @return The dataTransfer.
     */
    boolean getDataTransfer();
    /**
     * 
     * Allow access for Query
     * 
     *
     * bool yandex_query = 6;
     * @return The yandexQuery.
     */
    boolean getYandexQuery();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.Access}
   */
  public static final class Access extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.clickhouse.v1.Access)
      AccessOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Access.newBuilder() to construct.
    private Access(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private Access() {
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Access();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Access(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              dataLens_ = input.readBool();
              break;
            }
            case 16: {
              webSql_ = input.readBool();
              break;
            }
            case 24: {
              metrika_ = input.readBool();
              break;
            }
            case 32: {
              serverless_ = input.readBool();
              break;
            }
            case 40: {
              dataTransfer_ = input.readBool();
              break;
            }
            case 48: {
              yandexQuery_ = 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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Access_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Access_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.Builder.class);
    }
    public static final int DATA_LENS_FIELD_NUMBER = 1;
    private boolean dataLens_;
    /**
     * 
     * Allow to export data from the cluster to DataLens.
     * 
     *
     * bool data_lens = 1;
     * @return The dataLens.
     */
    @java.lang.Override
    public boolean getDataLens() {
      return dataLens_;
    }
    public static final int WEB_SQL_FIELD_NUMBER = 2;
    private boolean webSql_;
    /**
     * 
     * Allow SQL queries to the cluster databases from the management console.
     * See [SQL queries in the management console](/docs/managed-clickhouse/operations/web-sql-query) for more details.
     * 
     *
     * bool web_sql = 2;
     * @return The webSql.
     */
    @java.lang.Override
    public boolean getWebSql() {
      return webSql_;
    }
    public static final int METRIKA_FIELD_NUMBER = 3;
    private boolean metrika_;
    /**
     * 
     * Allow to import data from Yandex Metrica and AppMetrica to the cluster.
     * See [AppMetrica documentation](https://appmetrica.yandex.com/docs/cloud/index.html) for more details.
     * 
     *
     * bool metrika = 3;
     * @return The metrika.
     */
    @java.lang.Override
    public boolean getMetrika() {
      return metrika_;
    }
    public static final int SERVERLESS_FIELD_NUMBER = 4;
    private boolean serverless_;
    /**
     * 
     * Allow access to cluster for Serverless.
     * 
     *
     * bool serverless = 4;
     * @return The serverless.
     */
    @java.lang.Override
    public boolean getServerless() {
      return serverless_;
    }
    public static final int DATA_TRANSFER_FIELD_NUMBER = 5;
    private boolean dataTransfer_;
    /**
     * 
     * Allow access for DataTransfer
     * 
     *
     * bool data_transfer = 5;
     * @return The dataTransfer.
     */
    @java.lang.Override
    public boolean getDataTransfer() {
      return dataTransfer_;
    }
    public static final int YANDEX_QUERY_FIELD_NUMBER = 6;
    private boolean yandexQuery_;
    /**
     * 
     * Allow access for Query
     * 
     *
     * bool yandex_query = 6;
     * @return The yandexQuery.
     */
    @java.lang.Override
    public boolean getYandexQuery() {
      return yandexQuery_;
    }
    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 (dataLens_ != false) {
        output.writeBool(1, dataLens_);
      }
      if (webSql_ != false) {
        output.writeBool(2, webSql_);
      }
      if (metrika_ != false) {
        output.writeBool(3, metrika_);
      }
      if (serverless_ != false) {
        output.writeBool(4, serverless_);
      }
      if (dataTransfer_ != false) {
        output.writeBool(5, dataTransfer_);
      }
      if (yandexQuery_ != false) {
        output.writeBool(6, yandexQuery_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (dataLens_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, dataLens_);
      }
      if (webSql_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, webSql_);
      }
      if (metrika_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, metrika_);
      }
      if (serverless_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, serverless_);
      }
      if (dataTransfer_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, dataTransfer_);
      }
      if (yandexQuery_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, yandexQuery_);
      }
      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.clickhouse.v1.ClusterOuterClass.Access)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access other = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access) obj;
      if (getDataLens()
          != other.getDataLens()) return false;
      if (getWebSql()
          != other.getWebSql()) return false;
      if (getMetrika()
          != other.getMetrika()) return false;
      if (getServerless()
          != other.getServerless()) return false;
      if (getDataTransfer()
          != other.getDataTransfer()) return false;
      if (getYandexQuery()
          != other.getYandexQuery()) 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) + DATA_LENS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDataLens());
      hash = (37 * hash) + WEB_SQL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getWebSql());
      hash = (37 * hash) + METRIKA_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getMetrika());
      hash = (37 * hash) + SERVERLESS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getServerless());
      hash = (37 * hash) + DATA_TRANSFER_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDataTransfer());
      hash = (37 * hash) + YANDEX_QUERY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getYandexQuery());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access 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.clickhouse.v1.ClusterOuterClass.Access parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access 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.clickhouse.v1.ClusterOuterClass.Access parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access 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.clickhouse.v1.ClusterOuterClass.Access parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access 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.clickhouse.v1.ClusterOuterClass.Access parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access 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.clickhouse.v1.ClusterOuterClass.Access 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.clickhouse.v1.Access}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.clickhouse.v1.Access)
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.AccessOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Access_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Access_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.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();
        dataLens_ = false;
        webSql_ = false;
        metrika_ = false;
        serverless_ = false;
        dataTransfer_ = false;
        yandexQuery_ = false;
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_Access_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access build() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access buildPartial() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access result = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access(this);
        result.dataLens_ = dataLens_;
        result.webSql_ = webSql_;
        result.metrika_ = metrika_;
        result.serverless_ = serverless_;
        result.dataTransfer_ = dataTransfer_;
        result.yandexQuery_ = yandexQuery_;
        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.clickhouse.v1.ClusterOuterClass.Access) {
          return mergeFrom((yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access other) {
        if (other == yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access.getDefaultInstance()) return this;
        if (other.getDataLens() != false) {
          setDataLens(other.getDataLens());
        }
        if (other.getWebSql() != false) {
          setWebSql(other.getWebSql());
        }
        if (other.getMetrika() != false) {
          setMetrika(other.getMetrika());
        }
        if (other.getServerless() != false) {
          setServerless(other.getServerless());
        }
        if (other.getDataTransfer() != false) {
          setDataTransfer(other.getDataTransfer());
        }
        if (other.getYandexQuery() != false) {
          setYandexQuery(other.getYandexQuery());
        }
        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.clickhouse.v1.ClusterOuterClass.Access parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private boolean dataLens_ ;
      /**
       * 
       * Allow to export data from the cluster to DataLens.
       * 
       *
       * bool data_lens = 1;
       * @return The dataLens.
       */
      @java.lang.Override
      public boolean getDataLens() {
        return dataLens_;
      }
      /**
       * 
       * Allow to export data from the cluster to DataLens.
       * 
       *
       * bool data_lens = 1;
       * @param value The dataLens to set.
       * @return This builder for chaining.
       */
      public Builder setDataLens(boolean value) {
        
        dataLens_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Allow to export data from the cluster to DataLens.
       * 
       *
       * bool data_lens = 1;
       * @return This builder for chaining.
       */
      public Builder clearDataLens() {
        
        dataLens_ = false;
        onChanged();
        return this;
      }
      private boolean webSql_ ;
      /**
       * 
       * Allow SQL queries to the cluster databases from the management console.
       * See [SQL queries in the management console](/docs/managed-clickhouse/operations/web-sql-query) for more details.
       * 
       *
       * bool web_sql = 2;
       * @return The webSql.
       */
      @java.lang.Override
      public boolean getWebSql() {
        return webSql_;
      }
      /**
       * 
       * Allow SQL queries to the cluster databases from the management console.
       * See [SQL queries in the management console](/docs/managed-clickhouse/operations/web-sql-query) for more details.
       * 
       *
       * bool web_sql = 2;
       * @param value The webSql to set.
       * @return This builder for chaining.
       */
      public Builder setWebSql(boolean value) {
        
        webSql_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Allow SQL queries to the cluster databases from the management console.
       * See [SQL queries in the management console](/docs/managed-clickhouse/operations/web-sql-query) for more details.
       * 
       *
       * bool web_sql = 2;
       * @return This builder for chaining.
       */
      public Builder clearWebSql() {
        
        webSql_ = false;
        onChanged();
        return this;
      }
      private boolean metrika_ ;
      /**
       * 
       * Allow to import data from Yandex Metrica and AppMetrica to the cluster.
       * See [AppMetrica documentation](https://appmetrica.yandex.com/docs/cloud/index.html) for more details.
       * 
       *
       * bool metrika = 3;
       * @return The metrika.
       */
      @java.lang.Override
      public boolean getMetrika() {
        return metrika_;
      }
      /**
       * 
       * Allow to import data from Yandex Metrica and AppMetrica to the cluster.
       * See [AppMetrica documentation](https://appmetrica.yandex.com/docs/cloud/index.html) for more details.
       * 
       *
       * bool metrika = 3;
       * @param value The metrika to set.
       * @return This builder for chaining.
       */
      public Builder setMetrika(boolean value) {
        
        metrika_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Allow to import data from Yandex Metrica and AppMetrica to the cluster.
       * See [AppMetrica documentation](https://appmetrica.yandex.com/docs/cloud/index.html) for more details.
       * 
       *
       * bool metrika = 3;
       * @return This builder for chaining.
       */
      public Builder clearMetrika() {
        
        metrika_ = false;
        onChanged();
        return this;
      }
      private boolean serverless_ ;
      /**
       * 
       * Allow access to cluster for Serverless.
       * 
       *
       * bool serverless = 4;
       * @return The serverless.
       */
      @java.lang.Override
      public boolean getServerless() {
        return serverless_;
      }
      /**
       * 
       * Allow access to cluster for Serverless.
       * 
       *
       * bool serverless = 4;
       * @param value The serverless to set.
       * @return This builder for chaining.
       */
      public Builder setServerless(boolean value) {
        
        serverless_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Allow access to cluster for Serverless.
       * 
       *
       * bool serverless = 4;
       * @return This builder for chaining.
       */
      public Builder clearServerless() {
        
        serverless_ = false;
        onChanged();
        return this;
      }
      private boolean dataTransfer_ ;
      /**
       * 
       * Allow access for DataTransfer
       * 
       *
       * bool data_transfer = 5;
       * @return The dataTransfer.
       */
      @java.lang.Override
      public boolean getDataTransfer() {
        return dataTransfer_;
      }
      /**
       * 
       * Allow access for DataTransfer
       * 
       *
       * bool data_transfer = 5;
       * @param value The dataTransfer to set.
       * @return This builder for chaining.
       */
      public Builder setDataTransfer(boolean value) {
        
        dataTransfer_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Allow access for DataTransfer
       * 
       *
       * bool data_transfer = 5;
       * @return This builder for chaining.
       */
      public Builder clearDataTransfer() {
        
        dataTransfer_ = false;
        onChanged();
        return this;
      }
      private boolean yandexQuery_ ;
      /**
       * 
       * Allow access for Query
       * 
       *
       * bool yandex_query = 6;
       * @return The yandexQuery.
       */
      @java.lang.Override
      public boolean getYandexQuery() {
        return yandexQuery_;
      }
      /**
       * 
       * Allow access for Query
       * 
       *
       * bool yandex_query = 6;
       * @param value The yandexQuery to set.
       * @return This builder for chaining.
       */
      public Builder setYandexQuery(boolean value) {
        
        yandexQuery_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Allow access for Query
       * 
       *
       * bool yandex_query = 6;
       * @return This builder for chaining.
       */
      public Builder clearYandexQuery() {
        
        yandexQuery_ = 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.clickhouse.v1.Access)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.clickhouse.v1.Access)
    private static final yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access();
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.Access getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public Access parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Access(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.clickhouse.v1.ClusterOuterClass.Access getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface CloudStorageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.clickhouse.v1.CloudStorage)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Whether to use Object Storage for storing ClickHouse data.
     * 
     *
     * bool enabled = 1;
     * @return The enabled.
     */
    boolean getEnabled();
    /**
     * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
     * @return Whether the moveFactor field is set.
     */
    boolean hasMoveFactor();
    /**
     * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
     * @return The moveFactor.
     */
    com.google.protobuf.DoubleValue getMoveFactor();
    /**
     * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
     */
    com.google.protobuf.DoubleValueOrBuilder getMoveFactorOrBuilder();
    /**
     * .google.protobuf.BoolValue data_cache_enabled = 3;
     * @return Whether the dataCacheEnabled field is set.
     */
    boolean hasDataCacheEnabled();
    /**
     * .google.protobuf.BoolValue data_cache_enabled = 3;
     * @return The dataCacheEnabled.
     */
    com.google.protobuf.BoolValue getDataCacheEnabled();
    /**
     * .google.protobuf.BoolValue data_cache_enabled = 3;
     */
    com.google.protobuf.BoolValueOrBuilder getDataCacheEnabledOrBuilder();
    /**
     * .google.protobuf.Int64Value data_cache_max_size = 4;
     * @return Whether the dataCacheMaxSize field is set.
     */
    boolean hasDataCacheMaxSize();
    /**
     * .google.protobuf.Int64Value data_cache_max_size = 4;
     * @return The dataCacheMaxSize.
     */
    com.google.protobuf.Int64Value getDataCacheMaxSize();
    /**
     * .google.protobuf.Int64Value data_cache_max_size = 4;
     */
    com.google.protobuf.Int64ValueOrBuilder getDataCacheMaxSizeOrBuilder();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.clickhouse.v1.CloudStorage}
   */
  public static final class CloudStorage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.clickhouse.v1.CloudStorage)
      CloudStorageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CloudStorage.newBuilder() to construct.
    private CloudStorage(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private CloudStorage() {
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CloudStorage();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private CloudStorage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              enabled_ = input.readBool();
              break;
            }
            case 18: {
              com.google.protobuf.DoubleValue.Builder subBuilder = null;
              if (moveFactor_ != null) {
                subBuilder = moveFactor_.toBuilder();
              }
              moveFactor_ = input.readMessage(com.google.protobuf.DoubleValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(moveFactor_);
                moveFactor_ = subBuilder.buildPartial();
              }
              break;
            }
            case 26: {
              com.google.protobuf.BoolValue.Builder subBuilder = null;
              if (dataCacheEnabled_ != null) {
                subBuilder = dataCacheEnabled_.toBuilder();
              }
              dataCacheEnabled_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(dataCacheEnabled_);
                dataCacheEnabled_ = subBuilder.buildPartial();
              }
              break;
            }
            case 34: {
              com.google.protobuf.Int64Value.Builder subBuilder = null;
              if (dataCacheMaxSize_ != null) {
                subBuilder = dataCacheMaxSize_.toBuilder();
              }
              dataCacheMaxSize_ = input.readMessage(com.google.protobuf.Int64Value.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(dataCacheMaxSize_);
                dataCacheMaxSize_ = 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.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_CloudStorage_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_CloudStorage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.Builder.class);
    }
    public static final int ENABLED_FIELD_NUMBER = 1;
    private boolean enabled_;
    /**
     * 
     * Whether to use Object Storage for storing ClickHouse data.
     * 
     *
     * bool enabled = 1;
     * @return The enabled.
     */
    @java.lang.Override
    public boolean getEnabled() {
      return enabled_;
    }
    public static final int MOVE_FACTOR_FIELD_NUMBER = 2;
    private com.google.protobuf.DoubleValue moveFactor_;
    /**
     * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
     * @return Whether the moveFactor field is set.
     */
    @java.lang.Override
    public boolean hasMoveFactor() {
      return moveFactor_ != null;
    }
    /**
     * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
     * @return The moveFactor.
     */
    @java.lang.Override
    public com.google.protobuf.DoubleValue getMoveFactor() {
      return moveFactor_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : moveFactor_;
    }
    /**
     * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
     */
    @java.lang.Override
    public com.google.protobuf.DoubleValueOrBuilder getMoveFactorOrBuilder() {
      return getMoveFactor();
    }
    public static final int DATA_CACHE_ENABLED_FIELD_NUMBER = 3;
    private com.google.protobuf.BoolValue dataCacheEnabled_;
    /**
     * .google.protobuf.BoolValue data_cache_enabled = 3;
     * @return Whether the dataCacheEnabled field is set.
     */
    @java.lang.Override
    public boolean hasDataCacheEnabled() {
      return dataCacheEnabled_ != null;
    }
    /**
     * .google.protobuf.BoolValue data_cache_enabled = 3;
     * @return The dataCacheEnabled.
     */
    @java.lang.Override
    public com.google.protobuf.BoolValue getDataCacheEnabled() {
      return dataCacheEnabled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : dataCacheEnabled_;
    }
    /**
     * .google.protobuf.BoolValue data_cache_enabled = 3;
     */
    @java.lang.Override
    public com.google.protobuf.BoolValueOrBuilder getDataCacheEnabledOrBuilder() {
      return getDataCacheEnabled();
    }
    public static final int DATA_CACHE_MAX_SIZE_FIELD_NUMBER = 4;
    private com.google.protobuf.Int64Value dataCacheMaxSize_;
    /**
     * .google.protobuf.Int64Value data_cache_max_size = 4;
     * @return Whether the dataCacheMaxSize field is set.
     */
    @java.lang.Override
    public boolean hasDataCacheMaxSize() {
      return dataCacheMaxSize_ != null;
    }
    /**
     * .google.protobuf.Int64Value data_cache_max_size = 4;
     * @return The dataCacheMaxSize.
     */
    @java.lang.Override
    public com.google.protobuf.Int64Value getDataCacheMaxSize() {
      return dataCacheMaxSize_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : dataCacheMaxSize_;
    }
    /**
     * .google.protobuf.Int64Value data_cache_max_size = 4;
     */
    @java.lang.Override
    public com.google.protobuf.Int64ValueOrBuilder getDataCacheMaxSizeOrBuilder() {
      return getDataCacheMaxSize();
    }
    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 (enabled_ != false) {
        output.writeBool(1, enabled_);
      }
      if (moveFactor_ != null) {
        output.writeMessage(2, getMoveFactor());
      }
      if (dataCacheEnabled_ != null) {
        output.writeMessage(3, getDataCacheEnabled());
      }
      if (dataCacheMaxSize_ != null) {
        output.writeMessage(4, getDataCacheMaxSize());
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (enabled_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, enabled_);
      }
      if (moveFactor_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getMoveFactor());
      }
      if (dataCacheEnabled_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getDataCacheEnabled());
      }
      if (dataCacheMaxSize_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getDataCacheMaxSize());
      }
      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.clickhouse.v1.ClusterOuterClass.CloudStorage)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage other = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage) obj;
      if (getEnabled()
          != other.getEnabled()) return false;
      if (hasMoveFactor() != other.hasMoveFactor()) return false;
      if (hasMoveFactor()) {
        if (!getMoveFactor()
            .equals(other.getMoveFactor())) return false;
      }
      if (hasDataCacheEnabled() != other.hasDataCacheEnabled()) return false;
      if (hasDataCacheEnabled()) {
        if (!getDataCacheEnabled()
            .equals(other.getDataCacheEnabled())) return false;
      }
      if (hasDataCacheMaxSize() != other.hasDataCacheMaxSize()) return false;
      if (hasDataCacheMaxSize()) {
        if (!getDataCacheMaxSize()
            .equals(other.getDataCacheMaxSize())) 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) + ENABLED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getEnabled());
      if (hasMoveFactor()) {
        hash = (37 * hash) + MOVE_FACTOR_FIELD_NUMBER;
        hash = (53 * hash) + getMoveFactor().hashCode();
      }
      if (hasDataCacheEnabled()) {
        hash = (37 * hash) + DATA_CACHE_ENABLED_FIELD_NUMBER;
        hash = (53 * hash) + getDataCacheEnabled().hashCode();
      }
      if (hasDataCacheMaxSize()) {
        hash = (37 * hash) + DATA_CACHE_MAX_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + getDataCacheMaxSize().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage 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.clickhouse.v1.ClusterOuterClass.CloudStorage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage 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.clickhouse.v1.ClusterOuterClass.CloudStorage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage 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.clickhouse.v1.ClusterOuterClass.CloudStorage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage 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.clickhouse.v1.ClusterOuterClass.CloudStorage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage 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.clickhouse.v1.ClusterOuterClass.CloudStorage 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.clickhouse.v1.CloudStorage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.clickhouse.v1.CloudStorage)
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_CloudStorage_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_CloudStorage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.class, yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.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();
        enabled_ = false;
        if (moveFactorBuilder_ == null) {
          moveFactor_ = null;
        } else {
          moveFactor_ = null;
          moveFactorBuilder_ = null;
        }
        if (dataCacheEnabledBuilder_ == null) {
          dataCacheEnabled_ = null;
        } else {
          dataCacheEnabled_ = null;
          dataCacheEnabledBuilder_ = null;
        }
        if (dataCacheMaxSizeBuilder_ == null) {
          dataCacheMaxSize_ = null;
        } else {
          dataCacheMaxSize_ = null;
          dataCacheMaxSizeBuilder_ = null;
        }
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.internal_static_yandex_cloud_mdb_clickhouse_v1_CloudStorage_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage build() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage buildPartial() {
        yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage result = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage(this);
        result.enabled_ = enabled_;
        if (moveFactorBuilder_ == null) {
          result.moveFactor_ = moveFactor_;
        } else {
          result.moveFactor_ = moveFactorBuilder_.build();
        }
        if (dataCacheEnabledBuilder_ == null) {
          result.dataCacheEnabled_ = dataCacheEnabled_;
        } else {
          result.dataCacheEnabled_ = dataCacheEnabledBuilder_.build();
        }
        if (dataCacheMaxSizeBuilder_ == null) {
          result.dataCacheMaxSize_ = dataCacheMaxSize_;
        } else {
          result.dataCacheMaxSize_ = dataCacheMaxSizeBuilder_.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.clickhouse.v1.ClusterOuterClass.CloudStorage) {
          return mergeFrom((yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage other) {
        if (other == yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage.getDefaultInstance()) return this;
        if (other.getEnabled() != false) {
          setEnabled(other.getEnabled());
        }
        if (other.hasMoveFactor()) {
          mergeMoveFactor(other.getMoveFactor());
        }
        if (other.hasDataCacheEnabled()) {
          mergeDataCacheEnabled(other.getDataCacheEnabled());
        }
        if (other.hasDataCacheMaxSize()) {
          mergeDataCacheMaxSize(other.getDataCacheMaxSize());
        }
        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.clickhouse.v1.ClusterOuterClass.CloudStorage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private boolean enabled_ ;
      /**
       * 
       * Whether to use Object Storage for storing ClickHouse data.
       * 
       *
       * bool enabled = 1;
       * @return The enabled.
       */
      @java.lang.Override
      public boolean getEnabled() {
        return enabled_;
      }
      /**
       * 
       * Whether to use Object Storage for storing ClickHouse data.
       * 
       *
       * bool enabled = 1;
       * @param value The enabled to set.
       * @return This builder for chaining.
       */
      public Builder setEnabled(boolean value) {
        
        enabled_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Whether to use Object Storage for storing ClickHouse data.
       * 
       *
       * bool enabled = 1;
       * @return This builder for chaining.
       */
      public Builder clearEnabled() {
        
        enabled_ = false;
        onChanged();
        return this;
      }
      private com.google.protobuf.DoubleValue moveFactor_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder> moveFactorBuilder_;
      /**
       * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
       * @return Whether the moveFactor field is set.
       */
      public boolean hasMoveFactor() {
        return moveFactorBuilder_ != null || moveFactor_ != null;
      }
      /**
       * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
       * @return The moveFactor.
       */
      public com.google.protobuf.DoubleValue getMoveFactor() {
        if (moveFactorBuilder_ == null) {
          return moveFactor_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : moveFactor_;
        } else {
          return moveFactorBuilder_.getMessage();
        }
      }
      /**
       * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
       */
      public Builder setMoveFactor(com.google.protobuf.DoubleValue value) {
        if (moveFactorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          moveFactor_ = value;
          onChanged();
        } else {
          moveFactorBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
       */
      public Builder setMoveFactor(
          com.google.protobuf.DoubleValue.Builder builderForValue) {
        if (moveFactorBuilder_ == null) {
          moveFactor_ = builderForValue.build();
          onChanged();
        } else {
          moveFactorBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
       */
      public Builder mergeMoveFactor(com.google.protobuf.DoubleValue value) {
        if (moveFactorBuilder_ == null) {
          if (moveFactor_ != null) {
            moveFactor_ =
              com.google.protobuf.DoubleValue.newBuilder(moveFactor_).mergeFrom(value).buildPartial();
          } else {
            moveFactor_ = value;
          }
          onChanged();
        } else {
          moveFactorBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
       */
      public Builder clearMoveFactor() {
        if (moveFactorBuilder_ == null) {
          moveFactor_ = null;
          onChanged();
        } else {
          moveFactor_ = null;
          moveFactorBuilder_ = null;
        }
        return this;
      }
      /**
       * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
       */
      public com.google.protobuf.DoubleValue.Builder getMoveFactorBuilder() {
        
        onChanged();
        return getMoveFactorFieldBuilder().getBuilder();
      }
      /**
       * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
       */
      public com.google.protobuf.DoubleValueOrBuilder getMoveFactorOrBuilder() {
        if (moveFactorBuilder_ != null) {
          return moveFactorBuilder_.getMessageOrBuilder();
        } else {
          return moveFactor_ == null ?
              com.google.protobuf.DoubleValue.getDefaultInstance() : moveFactor_;
        }
      }
      /**
       * .google.protobuf.DoubleValue move_factor = 2 [(.yandex.cloud.value) = "0-1"];
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder> 
          getMoveFactorFieldBuilder() {
        if (moveFactorBuilder_ == null) {
          moveFactorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder>(
                  getMoveFactor(),
                  getParentForChildren(),
                  isClean());
          moveFactor_ = null;
        }
        return moveFactorBuilder_;
      }
      private com.google.protobuf.BoolValue dataCacheEnabled_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> dataCacheEnabledBuilder_;
      /**
       * .google.protobuf.BoolValue data_cache_enabled = 3;
       * @return Whether the dataCacheEnabled field is set.
       */
      public boolean hasDataCacheEnabled() {
        return dataCacheEnabledBuilder_ != null || dataCacheEnabled_ != null;
      }
      /**
       * .google.protobuf.BoolValue data_cache_enabled = 3;
       * @return The dataCacheEnabled.
       */
      public com.google.protobuf.BoolValue getDataCacheEnabled() {
        if (dataCacheEnabledBuilder_ == null) {
          return dataCacheEnabled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : dataCacheEnabled_;
        } else {
          return dataCacheEnabledBuilder_.getMessage();
        }
      }
      /**
       * .google.protobuf.BoolValue data_cache_enabled = 3;
       */
      public Builder setDataCacheEnabled(com.google.protobuf.BoolValue value) {
        if (dataCacheEnabledBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          dataCacheEnabled_ = value;
          onChanged();
        } else {
          dataCacheEnabledBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * .google.protobuf.BoolValue data_cache_enabled = 3;
       */
      public Builder setDataCacheEnabled(
          com.google.protobuf.BoolValue.Builder builderForValue) {
        if (dataCacheEnabledBuilder_ == null) {
          dataCacheEnabled_ = builderForValue.build();
          onChanged();
        } else {
          dataCacheEnabledBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * .google.protobuf.BoolValue data_cache_enabled = 3;
       */
      public Builder mergeDataCacheEnabled(com.google.protobuf.BoolValue value) {
        if (dataCacheEnabledBuilder_ == null) {
          if (dataCacheEnabled_ != null) {
            dataCacheEnabled_ =
              com.google.protobuf.BoolValue.newBuilder(dataCacheEnabled_).mergeFrom(value).buildPartial();
          } else {
            dataCacheEnabled_ = value;
          }
          onChanged();
        } else {
          dataCacheEnabledBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * .google.protobuf.BoolValue data_cache_enabled = 3;
       */
      public Builder clearDataCacheEnabled() {
        if (dataCacheEnabledBuilder_ == null) {
          dataCacheEnabled_ = null;
          onChanged();
        } else {
          dataCacheEnabled_ = null;
          dataCacheEnabledBuilder_ = null;
        }
        return this;
      }
      /**
       * .google.protobuf.BoolValue data_cache_enabled = 3;
       */
      public com.google.protobuf.BoolValue.Builder getDataCacheEnabledBuilder() {
        
        onChanged();
        return getDataCacheEnabledFieldBuilder().getBuilder();
      }
      /**
       * .google.protobuf.BoolValue data_cache_enabled = 3;
       */
      public com.google.protobuf.BoolValueOrBuilder getDataCacheEnabledOrBuilder() {
        if (dataCacheEnabledBuilder_ != null) {
          return dataCacheEnabledBuilder_.getMessageOrBuilder();
        } else {
          return dataCacheEnabled_ == null ?
              com.google.protobuf.BoolValue.getDefaultInstance() : dataCacheEnabled_;
        }
      }
      /**
       * .google.protobuf.BoolValue data_cache_enabled = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> 
          getDataCacheEnabledFieldBuilder() {
        if (dataCacheEnabledBuilder_ == null) {
          dataCacheEnabledBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>(
                  getDataCacheEnabled(),
                  getParentForChildren(),
                  isClean());
          dataCacheEnabled_ = null;
        }
        return dataCacheEnabledBuilder_;
      }
      private com.google.protobuf.Int64Value dataCacheMaxSize_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> dataCacheMaxSizeBuilder_;
      /**
       * .google.protobuf.Int64Value data_cache_max_size = 4;
       * @return Whether the dataCacheMaxSize field is set.
       */
      public boolean hasDataCacheMaxSize() {
        return dataCacheMaxSizeBuilder_ != null || dataCacheMaxSize_ != null;
      }
      /**
       * .google.protobuf.Int64Value data_cache_max_size = 4;
       * @return The dataCacheMaxSize.
       */
      public com.google.protobuf.Int64Value getDataCacheMaxSize() {
        if (dataCacheMaxSizeBuilder_ == null) {
          return dataCacheMaxSize_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : dataCacheMaxSize_;
        } else {
          return dataCacheMaxSizeBuilder_.getMessage();
        }
      }
      /**
       * .google.protobuf.Int64Value data_cache_max_size = 4;
       */
      public Builder setDataCacheMaxSize(com.google.protobuf.Int64Value value) {
        if (dataCacheMaxSizeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          dataCacheMaxSize_ = value;
          onChanged();
        } else {
          dataCacheMaxSizeBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * .google.protobuf.Int64Value data_cache_max_size = 4;
       */
      public Builder setDataCacheMaxSize(
          com.google.protobuf.Int64Value.Builder builderForValue) {
        if (dataCacheMaxSizeBuilder_ == null) {
          dataCacheMaxSize_ = builderForValue.build();
          onChanged();
        } else {
          dataCacheMaxSizeBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * .google.protobuf.Int64Value data_cache_max_size = 4;
       */
      public Builder mergeDataCacheMaxSize(com.google.protobuf.Int64Value value) {
        if (dataCacheMaxSizeBuilder_ == null) {
          if (dataCacheMaxSize_ != null) {
            dataCacheMaxSize_ =
              com.google.protobuf.Int64Value.newBuilder(dataCacheMaxSize_).mergeFrom(value).buildPartial();
          } else {
            dataCacheMaxSize_ = value;
          }
          onChanged();
        } else {
          dataCacheMaxSizeBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * .google.protobuf.Int64Value data_cache_max_size = 4;
       */
      public Builder clearDataCacheMaxSize() {
        if (dataCacheMaxSizeBuilder_ == null) {
          dataCacheMaxSize_ = null;
          onChanged();
        } else {
          dataCacheMaxSize_ = null;
          dataCacheMaxSizeBuilder_ = null;
        }
        return this;
      }
      /**
       * .google.protobuf.Int64Value data_cache_max_size = 4;
       */
      public com.google.protobuf.Int64Value.Builder getDataCacheMaxSizeBuilder() {
        
        onChanged();
        return getDataCacheMaxSizeFieldBuilder().getBuilder();
      }
      /**
       * .google.protobuf.Int64Value data_cache_max_size = 4;
       */
      public com.google.protobuf.Int64ValueOrBuilder getDataCacheMaxSizeOrBuilder() {
        if (dataCacheMaxSizeBuilder_ != null) {
          return dataCacheMaxSizeBuilder_.getMessageOrBuilder();
        } else {
          return dataCacheMaxSize_ == null ?
              com.google.protobuf.Int64Value.getDefaultInstance() : dataCacheMaxSize_;
        }
      }
      /**
       * .google.protobuf.Int64Value data_cache_max_size = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> 
          getDataCacheMaxSizeFieldBuilder() {
        if (dataCacheMaxSizeBuilder_ == null) {
          dataCacheMaxSizeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder>(
                  getDataCacheMaxSize(),
                  getParentForChildren(),
                  isClean());
          dataCacheMaxSize_ = null;
        }
        return dataCacheMaxSizeBuilder_;
      }
      @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.clickhouse.v1.CloudStorage)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.clickhouse.v1.CloudStorage)
    private static final yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage();
    }
    public static yandex.cloud.api.mdb.clickhouse.v1.ClusterOuterClass.CloudStorage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CloudStorage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CloudStorage(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.clickhouse.v1.ClusterOuterClass.CloudStorage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_LabelsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_LabelsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_Monitoring_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_Monitoring_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Clickhouse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Clickhouse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Zookeeper_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Zookeeper_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_Shard_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_Shard_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_ShardGroup_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_ShardGroup_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_Clickhouse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_Clickhouse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_Host_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_Host_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_Service_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_Service_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_Resources_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_Resources_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_Access_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_Access_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_clickhouse_v1_CloudStorage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_clickhouse_v1_CloudStorage_fieldAccessorTable;
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n,yandex/cloud/mdb/clickhouse/v1/cluster" +
      ".proto\022\036yandex.cloud.mdb.clickhouse.v1\032\037" +
      "google/protobuf/timestamp.proto\032\036google/" +
      "protobuf/wrappers.proto\032\033google/type/tim" +
      "eofday.proto\0326yandex/cloud/mdb/clickhous" +
      "e/v1/config/clickhouse.proto\0320yandex/clo" +
      "ud/mdb/clickhouse/v1/maintenance.proto\032\035" +
      "yandex/cloud/validation.proto\"\310\010\n\007Cluste" +
      "r\022\n\n\002id\030\001 \001(\t\022\021\n\tfolder_id\030\002 \001(\t\022.\n\ncrea" +
      "ted_at\030\003 \001(\0132\032.google.protobuf.Timestamp" +
      "\022\014\n\004name\030\004 \001(\t\022\023\n\013description\030\005 \001(\t\022C\n\006l" +
      "abels\030\006 \003(\01323.yandex.cloud.mdb.clickhous" +
      "e.v1.Cluster.LabelsEntry\022H\n\013environment\030" +
      "\007 \001(\01623.yandex.cloud.mdb.clickhouse.v1.C" +
      "luster.Environment\022>\n\nmonitoring\030\010 \003(\0132*" +
      ".yandex.cloud.mdb.clickhouse.v1.Monitori" +
      "ng\022=\n\006config\030\t \001(\0132-.yandex.cloud.mdb.cl" +
      "ickhouse.v1.ClusterConfig\022\022\n\nnetwork_id\030" +
      "\n \001(\t\022>\n\006health\030\013 \001(\0162..yandex.cloud.mdb" +
      ".clickhouse.v1.Cluster.Health\022>\n\006status\030" +
      "\014 \001(\0162..yandex.cloud.mdb.clickhouse.v1.C" +
      "luster.Status\022\032\n\022service_account_id\030\r \001(" +
      "\t\022M\n\022maintenance_window\030\016 \001(\01321.yandex.c" +
      "loud.mdb.clickhouse.v1.MaintenanceWindow" +
      "\022O\n\021planned_operation\030\017 \001(\01324.yandex.clo" +
      "ud.mdb.clickhouse.v1.MaintenanceOperatio" +
      "n\022\032\n\022security_group_ids\030\020 \003(\t\022\033\n\023deletio" +
      "n_protection\030\021 \001(\010\032-\n\013LabelsEntry\022\013\n\003key" +
      "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"I\n\013Environment" +
      "\022\033\n\027ENVIRONMENT_UNSPECIFIED\020\000\022\016\n\nPRODUCT" +
      "ION\020\001\022\r\n\tPRESTABLE\020\002\"?\n\006Health\022\022\n\016HEALTH" +
      "_UNKNOWN\020\000\022\t\n\005ALIVE\020\001\022\010\n\004DEAD\020\002\022\014\n\010DEGRA" +
      "DED\020\003\"y\n\006Status\022\022\n\016STATUS_UNKNOWN\020\000\022\014\n\010C" +
      "REATING\020\001\022\013\n\007RUNNING\020\002\022\t\n\005ERROR\020\003\022\014\n\010UPD" +
      "ATING\020\004\022\014\n\010STOPPING\020\005\022\013\n\007STOPPED\020\006\022\014\n\010ST" +
      "ARTING\020\007\"=\n\nMonitoring\022\014\n\004name\030\001 \001(\t\022\023\n\013" +
      "description\030\002 \001(\t\022\014\n\004link\030\003 \001(\t\"\373\005\n\rClus" +
      "terConfig\022\017\n\007version\030\001 \001(\t\022L\n\nclickhouse" +
      "\030\002 \001(\01328.yandex.cloud.mdb.clickhouse.v1." +
      "ClusterConfig.Clickhouse\022J\n\tzookeeper\030\003 " +
      "\001(\01327.yandex.cloud.mdb.clickhouse.v1.Clu" +
      "sterConfig.Zookeeper\0223\n\023backup_window_st" +
      "art\030\004 \001(\0132\026.google.type.TimeOfDay\0226\n\006acc" +
      "ess\030\005 \001(\0132&.yandex.cloud.mdb.clickhouse." +
      "v1.Access\022C\n\rcloud_storage\030\006 \001(\0132,.yande" +
      "x.cloud.mdb.clickhouse.v1.CloudStorage\022;" +
      "\n\027sql_database_management\030\007 \001(\0132\032.google" +
      ".protobuf.BoolValue\0227\n\023sql_user_manageme" +
      "nt\030\010 \001(\0132\032.google.protobuf.BoolValue\0223\n\017" +
      "embedded_keeper\030\t \001(\0132\032.google.protobuf." +
      "BoolValue\032\226\001\n\nClickhouse\022J\n\006config\030\001 \001(\013" +
      "2:.yandex.cloud.mdb.clickhouse.v1.config" +
      ".ClickhouseConfigSet\022<\n\tresources\030\002 \001(\0132" +
      ").yandex.cloud.mdb.clickhouse.v1.Resourc" +
      "es\032I\n\tZookeeper\022<\n\tresources\030\001 \001(\0132).yan" +
      "dex.cloud.mdb.clickhouse.v1.Resources\"f\n" +
      "\005Shard\022\014\n\004name\030\001 \001(\t\022\022\n\ncluster_id\030\002 \001(\t" +
      "\022;\n\006config\030\003 \001(\0132+.yandex.cloud.mdb.clic" +
      "khouse.v1.ShardConfig\"X\n\nShardGroup\022\014\n\004n" +
      "ame\030\001 \001(\t\022\022\n\ncluster_id\030\002 \001(\t\022\023\n\013descrip" +
      "tion\030\003 \001(\t\022\023\n\013shard_names\030\004 \003(\t\"\237\002\n\013Shar" +
      "dConfig\022J\n\nclickhouse\030\001 \001(\01326.yandex.clo" +
      "ud.mdb.clickhouse.v1.ShardConfig.Clickho" +
      "use\032\303\001\n\nClickhouse\022J\n\006config\030\001 \001(\0132:.yan" +
      "dex.cloud.mdb.clickhouse.v1.config.Click" +
      "houseConfigSet\022<\n\tresources\030\002 \001(\0132).yand" +
      "ex.cloud.mdb.clickhouse.v1.Resources\022+\n\006" +
      "weight\030\003 \001(\0132\033.google.protobuf.Int64Valu" +
      "e\"\340\003\n\004Host\022\014\n\004name\030\001 \001(\t\022\022\n\ncluster_id\030\002" +
      " \001(\t\022\017\n\007zone_id\030\003 \001(\t\0227\n\004type\030\004 \001(\0162).ya" +
      "ndex.cloud.mdb.clickhouse.v1.Host.Type\022<" +
      "\n\tresources\030\005 \001(\0132).yandex.cloud.mdb.cli" +
      "ckhouse.v1.Resources\022;\n\006health\030\006 \001(\0162+.y" +
      "andex.cloud.mdb.clickhouse.v1.Host.Healt" +
      "h\0229\n\010services\030\007 \003(\0132\'.yandex.cloud.mdb.c" +
      "lickhouse.v1.Service\022\021\n\tsubnet_id\030\010 \001(\t\022" +
      "\030\n\020assign_public_ip\030\t \001(\010\022\022\n\nshard_name\030" +
      "\n \001(\t\";\n\004Type\022\024\n\020TYPE_UNSPECIFIED\020\000\022\016\n\nC" +
      "LICKHOUSE\020\001\022\r\n\tZOOKEEPER\020\002\"8\n\006Health\022\013\n\007" +
      "UNKNOWN\020\000\022\t\n\005ALIVE\020\001\022\010\n\004DEAD\020\002\022\014\n\010DEGRAD" +
      "ED\020\003\"\356\001\n\007Service\022:\n\004type\030\001 \001(\0162,.yandex." +
      "cloud.mdb.clickhouse.v1.Service.Type\022>\n\006" +
      "health\030\002 \001(\0162..yandex.cloud.mdb.clickhou" +
      "se.v1.Service.Health\";\n\004Type\022\024\n\020TYPE_UNS" +
      "PECIFIED\020\000\022\016\n\nCLICKHOUSE\020\001\022\r\n\tZOOKEEPER\020" +
      "\002\"*\n\006Health\022\013\n\007UNKNOWN\020\000\022\t\n\005ALIVE\020\001\022\010\n\004D" +
      "EAD\020\002\"P\n\tResources\022\032\n\022resource_preset_id" +
      "\030\001 \001(\t\022\021\n\tdisk_size\030\002 \001(\003\022\024\n\014disk_type_i" +
      "d\030\003 \001(\t\"~\n\006Access\022\021\n\tdata_lens\030\001 \001(\010\022\017\n\007" +
      "web_sql\030\002 \001(\010\022\017\n\007metrika\030\003 \001(\010\022\022\n\nserver" +
      "less\030\004 \001(\010\022\025\n\rdata_transfer\030\005 \001(\010\022\024\n\014yan" +
      "dex_query\030\006 \001(\010\"\315\001\n\014CloudStorage\022\017\n\007enab" +
      "led\030\001 \001(\010\022:\n\013move_factor\030\002 \001(\0132\034.google." +
      "protobuf.DoubleValueB\007\372\3071\0030-1\0226\n\022data_ca" +
      "che_enabled\030\003 \001(\0132\032.google.protobuf.Bool" +
      "Value\0228\n\023data_cache_max_size\030\004 \001(\0132\033.goo" +
      "gle.protobuf.Int64ValueBs\n\"yandex.cloud." +
      "api.mdb.clickhouse.v1ZMgithub.com/yandex" +
      "-cloud/go-genproto/yandex/cloud/mdb/clic" +
      "khouse/v1;clickhouseb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.google.protobuf.TimestampProto.getDescriptor(),
          com.google.protobuf.WrappersProto.getDescriptor(),
          com.google.type.TimeOfDayProto.getDescriptor(),
          yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.getDescriptor(),
          yandex.cloud.api.mdb.clickhouse.v1.Maintenance.getDescriptor(),
          yandex.cloud.api.Validation.getDescriptor(),
        });
    internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_descriptor,
        new java.lang.String[] { "Id", "FolderId", "CreatedAt", "Name", "Description", "Labels", "Environment", "Monitoring", "Config", "NetworkId", "Health", "Status", "ServiceAccountId", "MaintenanceWindow", "PlannedOperation", "SecurityGroupIds", "DeletionProtection", });
    internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_LabelsEntry_descriptor =
      internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_descriptor.getNestedTypes().get(0);
    internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_LabelsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_Cluster_LabelsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_yandex_cloud_mdb_clickhouse_v1_Monitoring_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_yandex_cloud_mdb_clickhouse_v1_Monitoring_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_Monitoring_descriptor,
        new java.lang.String[] { "Name", "Description", "Link", });
    internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_descriptor,
        new java.lang.String[] { "Version", "Clickhouse", "Zookeeper", "BackupWindowStart", "Access", "CloudStorage", "SqlDatabaseManagement", "SqlUserManagement", "EmbeddedKeeper", });
    internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Clickhouse_descriptor =
      internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_descriptor.getNestedTypes().get(0);
    internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Clickhouse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Clickhouse_descriptor,
        new java.lang.String[] { "Config", "Resources", });
    internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Zookeeper_descriptor =
      internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_descriptor.getNestedTypes().get(1);
    internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Zookeeper_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_ClusterConfig_Zookeeper_descriptor,
        new java.lang.String[] { "Resources", });
    internal_static_yandex_cloud_mdb_clickhouse_v1_Shard_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_yandex_cloud_mdb_clickhouse_v1_Shard_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_Shard_descriptor,
        new java.lang.String[] { "Name", "ClusterId", "Config", });
    internal_static_yandex_cloud_mdb_clickhouse_v1_ShardGroup_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_yandex_cloud_mdb_clickhouse_v1_ShardGroup_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_ShardGroup_descriptor,
        new java.lang.String[] { "Name", "ClusterId", "Description", "ShardNames", });
    internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_descriptor,
        new java.lang.String[] { "Clickhouse", });
    internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_Clickhouse_descriptor =
      internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_descriptor.getNestedTypes().get(0);
    internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_Clickhouse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_ShardConfig_Clickhouse_descriptor,
        new java.lang.String[] { "Config", "Resources", "Weight", });
    internal_static_yandex_cloud_mdb_clickhouse_v1_Host_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_yandex_cloud_mdb_clickhouse_v1_Host_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_Host_descriptor,
        new java.lang.String[] { "Name", "ClusterId", "ZoneId", "Type", "Resources", "Health", "Services", "SubnetId", "AssignPublicIp", "ShardName", });
    internal_static_yandex_cloud_mdb_clickhouse_v1_Service_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_yandex_cloud_mdb_clickhouse_v1_Service_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_Service_descriptor,
        new java.lang.String[] { "Type", "Health", });
    internal_static_yandex_cloud_mdb_clickhouse_v1_Resources_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_yandex_cloud_mdb_clickhouse_v1_Resources_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_Resources_descriptor,
        new java.lang.String[] { "ResourcePresetId", "DiskSize", "DiskTypeId", });
    internal_static_yandex_cloud_mdb_clickhouse_v1_Access_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_yandex_cloud_mdb_clickhouse_v1_Access_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_Access_descriptor,
        new java.lang.String[] { "DataLens", "WebSql", "Metrika", "Serverless", "DataTransfer", "YandexQuery", });
    internal_static_yandex_cloud_mdb_clickhouse_v1_CloudStorage_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_yandex_cloud_mdb_clickhouse_v1_CloudStorage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_clickhouse_v1_CloudStorage_descriptor,
        new java.lang.String[] { "Enabled", "MoveFactor", "DataCacheEnabled", "DataCacheMaxSize", });
    com.google.protobuf.ExtensionRegistry registry =
        com.google.protobuf.ExtensionRegistry.newInstance();
    registry.add(yandex.cloud.api.Validation.value);
    com.google.protobuf.Descriptors.FileDescriptor
        .internalUpdateFileDescriptor(descriptor, registry);
    com.google.protobuf.TimestampProto.getDescriptor();
    com.google.protobuf.WrappersProto.getDescriptor();
    com.google.type.TimeOfDayProto.getDescriptor();
    yandex.cloud.api.mdb.clickhouse.v1.config.Clickhouse.getDescriptor();
    yandex.cloud.api.mdb.clickhouse.v1.Maintenance.getDescriptor();
    yandex.cloud.api.Validation.getDescriptor();
  }
  // @@protoc_insertion_point(outer_class_scope)
}
                                                                                                                               © 2015 - 2025 Weber Informatics LLC | Privacy Policy