All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.envoyproxy.envoy.config.cluster.v3.Cluster Maven / Gradle / Ivy

There is a newer version: 1.0.46
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: envoy/config/cluster/v3/cluster.proto

package io.envoyproxy.envoy.config.cluster.v3;

/**
 * 
 * Configuration for a single upstream cluster.
 * [#next-free-field: 57]
 * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster} */ public final class Cluster extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.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() { transportSocketMatches_ = java.util.Collections.emptyList(); name_ = ""; altStatName_ = ""; lbPolicy_ = 0; healthChecks_ = java.util.Collections.emptyList(); dnsLookupFamily_ = 0; dnsResolvers_ = java.util.Collections.emptyList(); protocolSelection_ = 0; filters_ = java.util.Collections.emptyList(); } @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(); name_ = s; break; } case 16: { int rawValue = input.readEnum(); clusterDiscoveryTypeCase_ = 2; clusterDiscoveryType_ = rawValue; break; } case 26: { io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.Builder subBuilder = null; if (edsClusterConfig_ != null) { subBuilder = edsClusterConfig_.toBuilder(); } edsClusterConfig_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(edsClusterConfig_); edsClusterConfig_ = subBuilder.buildPartial(); } break; } case 34: { com.google.protobuf.Duration.Builder subBuilder = null; if (connectTimeout_ != null) { subBuilder = connectTimeout_.toBuilder(); } connectTimeout_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(connectTimeout_); connectTimeout_ = subBuilder.buildPartial(); } break; } case 42: { com.google.protobuf.UInt32Value.Builder subBuilder = null; if (perConnectionBufferLimitBytes_ != null) { subBuilder = perConnectionBufferLimitBytes_.toBuilder(); } perConnectionBufferLimitBytes_ = input.readMessage(com.google.protobuf.UInt32Value.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(perConnectionBufferLimitBytes_); perConnectionBufferLimitBytes_ = subBuilder.buildPartial(); } break; } case 48: { int rawValue = input.readEnum(); lbPolicy_ = rawValue; break; } case 66: { if (!((mutable_bitField0_ & 0x00000002) != 0)) { healthChecks_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000002; } healthChecks_.add( input.readMessage(io.envoyproxy.envoy.config.core.v3.HealthCheck.parser(), extensionRegistry)); break; } case 74: { com.google.protobuf.UInt32Value.Builder subBuilder = null; if (maxRequestsPerConnection_ != null) { subBuilder = maxRequestsPerConnection_.toBuilder(); } maxRequestsPerConnection_ = input.readMessage(com.google.protobuf.UInt32Value.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(maxRequestsPerConnection_); maxRequestsPerConnection_ = subBuilder.buildPartial(); } break; } case 82: { io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers.Builder subBuilder = null; if (circuitBreakers_ != null) { subBuilder = circuitBreakers_.toBuilder(); } circuitBreakers_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(circuitBreakers_); circuitBreakers_ = subBuilder.buildPartial(); } break; } case 106: { io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.Builder subBuilder = null; if (httpProtocolOptions_ != null) { subBuilder = httpProtocolOptions_.toBuilder(); } httpProtocolOptions_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(httpProtocolOptions_); httpProtocolOptions_ = subBuilder.buildPartial(); } break; } case 114: { io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.Builder subBuilder = null; if (http2ProtocolOptions_ != null) { subBuilder = http2ProtocolOptions_.toBuilder(); } http2ProtocolOptions_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(http2ProtocolOptions_); http2ProtocolOptions_ = subBuilder.buildPartial(); } break; } case 130: { com.google.protobuf.Duration.Builder subBuilder = null; if (dnsRefreshRate_ != null) { subBuilder = dnsRefreshRate_.toBuilder(); } dnsRefreshRate_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(dnsRefreshRate_); dnsRefreshRate_ = subBuilder.buildPartial(); } break; } case 136: { int rawValue = input.readEnum(); dnsLookupFamily_ = rawValue; break; } case 146: { if (!((mutable_bitField0_ & 0x00000008) != 0)) { dnsResolvers_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000008; } dnsResolvers_.add( input.readMessage(io.envoyproxy.envoy.config.core.v3.Address.parser(), extensionRegistry)); break; } case 154: { io.envoyproxy.envoy.config.cluster.v3.OutlierDetection.Builder subBuilder = null; if (outlierDetection_ != null) { subBuilder = outlierDetection_.toBuilder(); } outlierDetection_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.OutlierDetection.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(outlierDetection_); outlierDetection_ = subBuilder.buildPartial(); } break; } case 162: { com.google.protobuf.Duration.Builder subBuilder = null; if (cleanupInterval_ != null) { subBuilder = cleanupInterval_.toBuilder(); } cleanupInterval_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(cleanupInterval_); cleanupInterval_ = subBuilder.buildPartial(); } break; } case 170: { io.envoyproxy.envoy.config.core.v3.BindConfig.Builder subBuilder = null; if (upstreamBindConfig_ != null) { subBuilder = upstreamBindConfig_.toBuilder(); } upstreamBindConfig_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.BindConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(upstreamBindConfig_); upstreamBindConfig_ = subBuilder.buildPartial(); } break; } case 178: { io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.Builder subBuilder = null; if (lbSubsetConfig_ != null) { subBuilder = lbSubsetConfig_.toBuilder(); } lbSubsetConfig_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(lbSubsetConfig_); lbSubsetConfig_ = subBuilder.buildPartial(); } break; } case 186: { io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.Builder subBuilder = null; if (lbConfigCase_ == 23) { subBuilder = ((io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig) lbConfig_).toBuilder(); } lbConfig_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig) lbConfig_); lbConfig_ = subBuilder.buildPartial(); } lbConfigCase_ = 23; break; } case 194: { io.envoyproxy.envoy.config.core.v3.TransportSocket.Builder subBuilder = null; if (transportSocket_ != null) { subBuilder = transportSocket_.toBuilder(); } transportSocket_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.TransportSocket.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(transportSocket_); transportSocket_ = subBuilder.buildPartial(); } break; } case 202: { io.envoyproxy.envoy.config.core.v3.Metadata.Builder subBuilder = null; if (metadata_ != null) { subBuilder = metadata_.toBuilder(); } metadata_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.Metadata.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(metadata_); metadata_ = subBuilder.buildPartial(); } break; } case 208: { int rawValue = input.readEnum(); protocolSelection_ = rawValue; break; } case 218: { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.Builder subBuilder = null; if (commonLbConfig_ != null) { subBuilder = commonLbConfig_.toBuilder(); } commonLbConfig_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(commonLbConfig_); commonLbConfig_ = subBuilder.buildPartial(); } break; } case 226: { java.lang.String s = input.readStringRequireUtf8(); altStatName_ = s; break; } case 234: { io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions.Builder subBuilder = null; if (commonHttpProtocolOptions_ != null) { subBuilder = commonHttpProtocolOptions_.toBuilder(); } commonHttpProtocolOptions_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(commonHttpProtocolOptions_); commonHttpProtocolOptions_ = subBuilder.buildPartial(); } break; } case 242: { io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions.Builder subBuilder = null; if (upstreamConnectionOptions_ != null) { subBuilder = upstreamConnectionOptions_.toBuilder(); } upstreamConnectionOptions_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(upstreamConnectionOptions_); upstreamConnectionOptions_ = subBuilder.buildPartial(); } break; } case 248: { closeConnectionsOnHostHealthFailure_ = input.readBool(); break; } case 256: { ignoreHealthOnHostRemoval_ = input.readBool(); break; } case 266: { io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment.Builder subBuilder = null; if (loadAssignment_ != null) { subBuilder = loadAssignment_.toBuilder(); } loadAssignment_ = input.readMessage(io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(loadAssignment_); loadAssignment_ = subBuilder.buildPartial(); } break; } case 274: { io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.Builder subBuilder = null; if (lbConfigCase_ == 34) { subBuilder = ((io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) lbConfig_).toBuilder(); } lbConfig_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) lbConfig_); lbConfig_ = subBuilder.buildPartial(); } lbConfigCase_ = 34; break; } case 290: { if (!((mutable_bitField0_ & 0x00000004) != 0)) { typedExtensionProtocolOptions_ = com.google.protobuf.MapField.newMapField( TypedExtensionProtocolOptionsDefaultEntryHolder.defaultEntry); mutable_bitField0_ |= 0x00000004; } com.google.protobuf.MapEntry typedExtensionProtocolOptions__ = input.readMessage( TypedExtensionProtocolOptionsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); typedExtensionProtocolOptions_.getMutableMap().put( typedExtensionProtocolOptions__.getKey(), typedExtensionProtocolOptions__.getValue()); break; } case 298: { io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.Builder subBuilder = null; if (lbConfigCase_ == 37) { subBuilder = ((io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) lbConfig_).toBuilder(); } lbConfig_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) lbConfig_); lbConfig_ = subBuilder.buildPartial(); } lbConfigCase_ = 37; break; } case 306: { io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.Builder subBuilder = null; if (clusterDiscoveryTypeCase_ == 38) { subBuilder = ((io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType) clusterDiscoveryType_).toBuilder(); } clusterDiscoveryType_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType) clusterDiscoveryType_); clusterDiscoveryType_ = subBuilder.buildPartial(); } clusterDiscoveryTypeCase_ = 38; break; } case 312: { respectDnsTtl_ = input.readBool(); break; } case 322: { if (!((mutable_bitField0_ & 0x00000010) != 0)) { filters_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000010; } filters_.add( input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Filter.parser(), extensionRegistry)); break; } case 330: { io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy.Builder subBuilder = null; if (loadBalancingPolicy_ != null) { subBuilder = loadBalancingPolicy_.toBuilder(); } loadBalancingPolicy_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(loadBalancingPolicy_); loadBalancingPolicy_ = subBuilder.buildPartial(); } break; } case 338: { io.envoyproxy.envoy.config.core.v3.ConfigSource.Builder subBuilder = null; if (lrsServer_ != null) { subBuilder = lrsServer_.toBuilder(); } lrsServer_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.ConfigSource.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(lrsServer_); lrsServer_ = subBuilder.buildPartial(); } break; } case 346: { if (!((mutable_bitField0_ & 0x00000001) != 0)) { transportSocketMatches_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000001; } transportSocketMatches_.add( input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.parser(), extensionRegistry)); break; } case 354: { io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.Builder subBuilder = null; if (dnsFailureRefreshRate_ != null) { subBuilder = dnsFailureRefreshRate_.toBuilder(); } dnsFailureRefreshRate_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(dnsFailureRefreshRate_); dnsFailureRefreshRate_ = subBuilder.buildPartial(); } break; } case 360: { useTcpForDnsLookups_ = input.readBool(); break; } case 370: { io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions.Builder subBuilder = null; if (upstreamHttpProtocolOptions_ != null) { subBuilder = upstreamHttpProtocolOptions_.toBuilder(); } upstreamHttpProtocolOptions_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(upstreamHttpProtocolOptions_); upstreamHttpProtocolOptions_ = subBuilder.buildPartial(); } break; } case 376: { trackTimeoutBudgets_ = input.readBool(); break; } case 386: { io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder subBuilder = null; if (upstreamConfig_ != null) { subBuilder = upstreamConfig_.toBuilder(); } upstreamConfig_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(upstreamConfig_); upstreamConfig_ = subBuilder.buildPartial(); } break; } case 394: { io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats.Builder subBuilder = null; if (trackClusterStats_ != null) { subBuilder = trackClusterStats_.toBuilder(); } trackClusterStats_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(trackClusterStats_); trackClusterStats_ = subBuilder.buildPartial(); } break; } case 402: { io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.Builder subBuilder = null; if (preconnectPolicy_ != null) { subBuilder = preconnectPolicy_.toBuilder(); } preconnectPolicy_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(preconnectPolicy_); preconnectPolicy_ = subBuilder.buildPartial(); } break; } case 408: { connectionPoolPerDownstreamConnection_ = input.readBool(); break; } case 418: { io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.Builder subBuilder = null; if (lbConfigCase_ == 52) { subBuilder = ((io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig) lbConfig_).toBuilder(); } lbConfig_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig) lbConfig_); lbConfig_ = subBuilder.buildPartial(); } lbConfigCase_ = 52; break; } case 426: { io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig.Builder subBuilder = null; if (dnsResolutionConfig_ != null) { subBuilder = dnsResolutionConfig_.toBuilder(); } dnsResolutionConfig_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(dnsResolutionConfig_); dnsResolutionConfig_ = subBuilder.buildPartial(); } break; } case 434: { com.google.protobuf.BoolValue.Builder subBuilder = null; if (waitForWarmOnInit_ != null) { subBuilder = waitForWarmOnInit_.toBuilder(); } waitForWarmOnInit_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(waitForWarmOnInit_); waitForWarmOnInit_ = subBuilder.buildPartial(); } break; } case 442: { io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder subBuilder = null; if (typedDnsResolverConfig_ != null) { subBuilder = typedDnsResolverConfig_.toBuilder(); } typedDnsResolverConfig_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(typedDnsResolverConfig_); typedDnsResolverConfig_ = subBuilder.buildPartial(); } break; } case 450: { io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.Builder subBuilder = null; if (lbConfigCase_ == 56) { subBuilder = ((io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) lbConfig_).toBuilder(); } lbConfig_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) lbConfig_); lbConfig_ = subBuilder.buildPartial(); } lbConfigCase_ = 56; break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { if (((mutable_bitField0_ & 0x00000002) != 0)) { healthChecks_ = java.util.Collections.unmodifiableList(healthChecks_); } if (((mutable_bitField0_ & 0x00000008) != 0)) { dnsResolvers_ = java.util.Collections.unmodifiableList(dnsResolvers_); } if (((mutable_bitField0_ & 0x00000010) != 0)) { filters_ = java.util.Collections.unmodifiableList(filters_); } if (((mutable_bitField0_ & 0x00000001) != 0)) { transportSocketMatches_ = java.util.Collections.unmodifiableList(transportSocketMatches_); } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_descriptor; } @SuppressWarnings({"rawtypes"}) @java.lang.Override protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 36: return internalGetTypedExtensionProtocolOptions(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.Builder.class); } /** *
   * Refer to :ref:`service discovery type <arch_overview_service_discovery_types>`
   * for an explanation on each type.
   * 
* * Protobuf enum {@code envoy.config.cluster.v3.Cluster.DiscoveryType} */ public enum DiscoveryType implements com.google.protobuf.ProtocolMessageEnum { /** *
     * Refer to the :ref:`static discovery type<arch_overview_service_discovery_types_static>`
     * for an explanation.
     * 
* * STATIC = 0; */ STATIC(0), /** *
     * Refer to the :ref:`strict DNS discovery
     * type<arch_overview_service_discovery_types_strict_dns>`
     * for an explanation.
     * 
* * STRICT_DNS = 1; */ STRICT_DNS(1), /** *
     * Refer to the :ref:`logical DNS discovery
     * type<arch_overview_service_discovery_types_logical_dns>`
     * for an explanation.
     * 
* * LOGICAL_DNS = 2; */ LOGICAL_DNS(2), /** *
     * Refer to the :ref:`service discovery type<arch_overview_service_discovery_types_eds>`
     * for an explanation.
     * 
* * EDS = 3; */ EDS(3), /** *
     * Refer to the :ref:`original destination discovery
     * type<arch_overview_service_discovery_types_original_destination>`
     * for an explanation.
     * 
* * ORIGINAL_DST = 4; */ ORIGINAL_DST(4), UNRECOGNIZED(-1), ; /** *
     * Refer to the :ref:`static discovery type<arch_overview_service_discovery_types_static>`
     * for an explanation.
     * 
* * STATIC = 0; */ public static final int STATIC_VALUE = 0; /** *
     * Refer to the :ref:`strict DNS discovery
     * type<arch_overview_service_discovery_types_strict_dns>`
     * for an explanation.
     * 
* * STRICT_DNS = 1; */ public static final int STRICT_DNS_VALUE = 1; /** *
     * Refer to the :ref:`logical DNS discovery
     * type<arch_overview_service_discovery_types_logical_dns>`
     * for an explanation.
     * 
* * LOGICAL_DNS = 2; */ public static final int LOGICAL_DNS_VALUE = 2; /** *
     * Refer to the :ref:`service discovery type<arch_overview_service_discovery_types_eds>`
     * for an explanation.
     * 
* * EDS = 3; */ public static final int EDS_VALUE = 3; /** *
     * Refer to the :ref:`original destination discovery
     * type<arch_overview_service_discovery_types_original_destination>`
     * for an explanation.
     * 
* * ORIGINAL_DST = 4; */ public static final int ORIGINAL_DST_VALUE = 4; 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 DiscoveryType 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 DiscoveryType forNumber(int value) { switch (value) { case 0: return STATIC; case 1: return STRICT_DNS; case 2: return LOGICAL_DNS; case 3: return EDS; case 4: return ORIGINAL_DST; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< DiscoveryType> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { public DiscoveryType findValueByNumber(int number) { return DiscoveryType.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.getDescriptor().getEnumTypes().get(0); } private static final DiscoveryType[] VALUES = values(); public static DiscoveryType 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 DiscoveryType(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:envoy.config.cluster.v3.Cluster.DiscoveryType) } /** *
   * Refer to :ref:`load balancer type <arch_overview_load_balancing_types>` architecture
   * overview section for information on each type.
   * 
* * Protobuf enum {@code envoy.config.cluster.v3.Cluster.LbPolicy} */ public enum LbPolicy implements com.google.protobuf.ProtocolMessageEnum { /** *
     * Refer to the :ref:`round robin load balancing
     * policy<arch_overview_load_balancing_types_round_robin>`
     * for an explanation.
     * 
* * ROUND_ROBIN = 0; */ ROUND_ROBIN(0), /** *
     * Refer to the :ref:`least request load balancing
     * policy<arch_overview_load_balancing_types_least_request>`
     * for an explanation.
     * 
* * LEAST_REQUEST = 1; */ LEAST_REQUEST(1), /** *
     * Refer to the :ref:`ring hash load balancing
     * policy<arch_overview_load_balancing_types_ring_hash>`
     * for an explanation.
     * 
* * RING_HASH = 2; */ RING_HASH(2), /** *
     * Refer to the :ref:`random load balancing
     * policy<arch_overview_load_balancing_types_random>`
     * for an explanation.
     * 
* * RANDOM = 3; */ RANDOM(3), /** *
     * Refer to the :ref:`Maglev load balancing policy<arch_overview_load_balancing_types_maglev>`
     * for an explanation.
     * 
* * MAGLEV = 5; */ MAGLEV(5), /** *
     * This load balancer type must be specified if the configured cluster provides a cluster
     * specific load balancer. Consult the configured cluster's documentation for whether to set
     * this option or not.
     * 
* * CLUSTER_PROVIDED = 6; */ CLUSTER_PROVIDED(6), /** *
     * Use the new :ref:`load_balancing_policy
     * <envoy_v3_api_field_config.cluster.v3.Cluster.load_balancing_policy>` field to determine the LB policy.
     * This has been deprecated in favor of using the :ref:`load_balancing_policy
     * <envoy_v3_api_field_config.cluster.v3.Cluster.load_balancing_policy>` field without
     * setting any value in :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
     * 
* * LOAD_BALANCING_POLICY_CONFIG = 7; */ LOAD_BALANCING_POLICY_CONFIG(7), UNRECOGNIZED(-1), ; /** *
     * Refer to the :ref:`round robin load balancing
     * policy<arch_overview_load_balancing_types_round_robin>`
     * for an explanation.
     * 
* * ROUND_ROBIN = 0; */ public static final int ROUND_ROBIN_VALUE = 0; /** *
     * Refer to the :ref:`least request load balancing
     * policy<arch_overview_load_balancing_types_least_request>`
     * for an explanation.
     * 
* * LEAST_REQUEST = 1; */ public static final int LEAST_REQUEST_VALUE = 1; /** *
     * Refer to the :ref:`ring hash load balancing
     * policy<arch_overview_load_balancing_types_ring_hash>`
     * for an explanation.
     * 
* * RING_HASH = 2; */ public static final int RING_HASH_VALUE = 2; /** *
     * Refer to the :ref:`random load balancing
     * policy<arch_overview_load_balancing_types_random>`
     * for an explanation.
     * 
* * RANDOM = 3; */ public static final int RANDOM_VALUE = 3; /** *
     * Refer to the :ref:`Maglev load balancing policy<arch_overview_load_balancing_types_maglev>`
     * for an explanation.
     * 
* * MAGLEV = 5; */ public static final int MAGLEV_VALUE = 5; /** *
     * This load balancer type must be specified if the configured cluster provides a cluster
     * specific load balancer. Consult the configured cluster's documentation for whether to set
     * this option or not.
     * 
* * CLUSTER_PROVIDED = 6; */ public static final int CLUSTER_PROVIDED_VALUE = 6; /** *
     * Use the new :ref:`load_balancing_policy
     * <envoy_v3_api_field_config.cluster.v3.Cluster.load_balancing_policy>` field to determine the LB policy.
     * This has been deprecated in favor of using the :ref:`load_balancing_policy
     * <envoy_v3_api_field_config.cluster.v3.Cluster.load_balancing_policy>` field without
     * setting any value in :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
     * 
* * LOAD_BALANCING_POLICY_CONFIG = 7; */ public static final int LOAD_BALANCING_POLICY_CONFIG_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 LbPolicy 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 LbPolicy forNumber(int value) { switch (value) { case 0: return ROUND_ROBIN; case 1: return LEAST_REQUEST; case 2: return RING_HASH; case 3: return RANDOM; case 5: return MAGLEV; case 6: return CLUSTER_PROVIDED; case 7: return LOAD_BALANCING_POLICY_CONFIG; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< LbPolicy> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { public LbPolicy findValueByNumber(int number) { return LbPolicy.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.getDescriptor().getEnumTypes().get(1); } private static final LbPolicy[] VALUES = values(); public static LbPolicy 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 LbPolicy(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:envoy.config.cluster.v3.Cluster.LbPolicy) } /** *
   * When V4_ONLY is selected, the DNS resolver will only perform a lookup for
   * addresses in the IPv4 family. If V6_ONLY is selected, the DNS resolver will
   * only perform a lookup for addresses in the IPv6 family. If AUTO is
   * specified, the DNS resolver will first perform a lookup for addresses in
   * the IPv6 family and fallback to a lookup for addresses in the IPv4 family.
   * This is semantically equivalent to a non-existent V6_PREFERRED option.
   * AUTO is a legacy name that is more opaque than
   * necessary and will be deprecated in favor of V6_PREFERRED in a future major version of the API.
   * If V4_PREFERRED is specified, the DNS resolver will first perform a lookup for addresses in the
   * IPv4 family and fallback to a lookup for addresses in the IPv6 family. i.e., the callback
   * target will only get v6 addresses if there were NO v4 addresses to return.
   * If ALL is specified, the DNS resolver will perform a lookup for both IPv4 and IPv6 families,
   * and return all resolved addresses. When this is used, Happy Eyeballs will be enabled for
   * upstream connections. Refer to :ref:`Happy Eyeballs Support <arch_overview_happy_eyeballs>`
   * for more information.
   * For cluster types other than
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
   * :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
   * this setting is
   * ignored.
   * [#next-major-version: deprecate AUTO in favor of a V6_PREFERRED option.]
   * 
* * Protobuf enum {@code envoy.config.cluster.v3.Cluster.DnsLookupFamily} */ public enum DnsLookupFamily implements com.google.protobuf.ProtocolMessageEnum { /** * AUTO = 0; */ AUTO(0), /** * V4_ONLY = 1; */ V4_ONLY(1), /** * V6_ONLY = 2; */ V6_ONLY(2), /** * V4_PREFERRED = 3; */ V4_PREFERRED(3), /** * ALL = 4; */ ALL(4), UNRECOGNIZED(-1), ; /** * AUTO = 0; */ public static final int AUTO_VALUE = 0; /** * V4_ONLY = 1; */ public static final int V4_ONLY_VALUE = 1; /** * V6_ONLY = 2; */ public static final int V6_ONLY_VALUE = 2; /** * V4_PREFERRED = 3; */ public static final int V4_PREFERRED_VALUE = 3; /** * ALL = 4; */ public static final int ALL_VALUE = 4; 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 DnsLookupFamily 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 DnsLookupFamily forNumber(int value) { switch (value) { case 0: return AUTO; case 1: return V4_ONLY; case 2: return V6_ONLY; case 3: return V4_PREFERRED; case 4: return ALL; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< DnsLookupFamily> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { public DnsLookupFamily findValueByNumber(int number) { return DnsLookupFamily.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.getDescriptor().getEnumTypes().get(2); } private static final DnsLookupFamily[] VALUES = values(); public static DnsLookupFamily 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 DnsLookupFamily(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:envoy.config.cluster.v3.Cluster.DnsLookupFamily) } /** * Protobuf enum {@code envoy.config.cluster.v3.Cluster.ClusterProtocolSelection} */ public enum ClusterProtocolSelection implements com.google.protobuf.ProtocolMessageEnum { /** *
     * Cluster can only operate on one of the possible upstream protocols (HTTP1.1, HTTP2).
     * If :ref:`http2_protocol_options <envoy_v3_api_field_config.cluster.v3.Cluster.http2_protocol_options>` are
     * present, HTTP2 will be used, otherwise HTTP1.1 will be used.
     * 
* * USE_CONFIGURED_PROTOCOL = 0; */ USE_CONFIGURED_PROTOCOL(0), /** *
     * Use HTTP1.1 or HTTP2, depending on which one is used on the downstream connection.
     * 
* * USE_DOWNSTREAM_PROTOCOL = 1; */ USE_DOWNSTREAM_PROTOCOL(1), UNRECOGNIZED(-1), ; /** *
     * Cluster can only operate on one of the possible upstream protocols (HTTP1.1, HTTP2).
     * If :ref:`http2_protocol_options <envoy_v3_api_field_config.cluster.v3.Cluster.http2_protocol_options>` are
     * present, HTTP2 will be used, otherwise HTTP1.1 will be used.
     * 
* * USE_CONFIGURED_PROTOCOL = 0; */ public static final int USE_CONFIGURED_PROTOCOL_VALUE = 0; /** *
     * Use HTTP1.1 or HTTP2, depending on which one is used on the downstream connection.
     * 
* * USE_DOWNSTREAM_PROTOCOL = 1; */ public static final int USE_DOWNSTREAM_PROTOCOL_VALUE = 1; 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 ClusterProtocolSelection 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 ClusterProtocolSelection forNumber(int value) { switch (value) { case 0: return USE_CONFIGURED_PROTOCOL; case 1: return USE_DOWNSTREAM_PROTOCOL; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< ClusterProtocolSelection> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { public ClusterProtocolSelection findValueByNumber(int number) { return ClusterProtocolSelection.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.getDescriptor().getEnumTypes().get(3); } private static final ClusterProtocolSelection[] VALUES = values(); public static ClusterProtocolSelection 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 ClusterProtocolSelection(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:envoy.config.cluster.v3.Cluster.ClusterProtocolSelection) } public interface TransportSocketMatchOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.TransportSocketMatch) com.google.protobuf.MessageOrBuilder { /** *
     * The name of the match, used in stats generation.
     * 
* * string name = 1 [(.validate.rules) = { ... } * @return The name. */ java.lang.String getName(); /** *
     * The name of the match, used in stats generation.
     * 
* * string name = 1 [(.validate.rules) = { ... } * @return The bytes for name. */ com.google.protobuf.ByteString getNameBytes(); /** *
     * Optional endpoint metadata match criteria.
     * The connection to the endpoint with metadata matching what is set in this field
     * will use the transport socket configuration specified here.
     * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
     * against the values specified in this field.
     * 
* * .google.protobuf.Struct match = 2; * @return Whether the match field is set. */ boolean hasMatch(); /** *
     * Optional endpoint metadata match criteria.
     * The connection to the endpoint with metadata matching what is set in this field
     * will use the transport socket configuration specified here.
     * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
     * against the values specified in this field.
     * 
* * .google.protobuf.Struct match = 2; * @return The match. */ com.google.protobuf.Struct getMatch(); /** *
     * Optional endpoint metadata match criteria.
     * The connection to the endpoint with metadata matching what is set in this field
     * will use the transport socket configuration specified here.
     * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
     * against the values specified in this field.
     * 
* * .google.protobuf.Struct match = 2; */ com.google.protobuf.StructOrBuilder getMatchOrBuilder(); /** *
     * The configuration of the transport socket.
     * [#extension-category: envoy.transport_sockets.upstream]
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; * @return Whether the transportSocket field is set. */ boolean hasTransportSocket(); /** *
     * The configuration of the transport socket.
     * [#extension-category: envoy.transport_sockets.upstream]
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; * @return The transportSocket. */ io.envoyproxy.envoy.config.core.v3.TransportSocket getTransportSocket(); /** *
     * The configuration of the transport socket.
     * [#extension-category: envoy.transport_sockets.upstream]
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; */ io.envoyproxy.envoy.config.core.v3.TransportSocketOrBuilder getTransportSocketOrBuilder(); } /** *
   * TransportSocketMatch specifies what transport socket config will be used
   * when the match conditions are satisfied.
   * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.TransportSocketMatch} */ public static final class TransportSocketMatch extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.TransportSocketMatch) TransportSocketMatchOrBuilder { private static final long serialVersionUID = 0L; // Use TransportSocketMatch.newBuilder() to construct. private TransportSocketMatch(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private TransportSocketMatch() { name_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new TransportSocketMatch(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private TransportSocketMatch( 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: { com.google.protobuf.Struct.Builder subBuilder = null; if (match_ != null) { subBuilder = match_.toBuilder(); } match_ = input.readMessage(com.google.protobuf.Struct.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(match_); match_ = subBuilder.buildPartial(); } break; } case 26: { io.envoyproxy.envoy.config.core.v3.TransportSocket.Builder subBuilder = null; if (transportSocket_ != null) { subBuilder = transportSocket_.toBuilder(); } transportSocket_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.TransportSocket.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(transportSocket_); transportSocket_ = subBuilder.buildPartial(); } break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_TransportSocketMatch_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_TransportSocketMatch_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.Builder.class); } public static final int NAME_FIELD_NUMBER = 1; private volatile java.lang.Object name_; /** *
     * The name of the match, used in stats generation.
     * 
* * string name = 1 [(.validate.rules) = { ... } * @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; } } /** *
     * The name of the match, used in stats generation.
     * 
* * string name = 1 [(.validate.rules) = { ... } * @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 MATCH_FIELD_NUMBER = 2; private com.google.protobuf.Struct match_; /** *
     * Optional endpoint metadata match criteria.
     * The connection to the endpoint with metadata matching what is set in this field
     * will use the transport socket configuration specified here.
     * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
     * against the values specified in this field.
     * 
* * .google.protobuf.Struct match = 2; * @return Whether the match field is set. */ @java.lang.Override public boolean hasMatch() { return match_ != null; } /** *
     * Optional endpoint metadata match criteria.
     * The connection to the endpoint with metadata matching what is set in this field
     * will use the transport socket configuration specified here.
     * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
     * against the values specified in this field.
     * 
* * .google.protobuf.Struct match = 2; * @return The match. */ @java.lang.Override public com.google.protobuf.Struct getMatch() { return match_ == null ? com.google.protobuf.Struct.getDefaultInstance() : match_; } /** *
     * Optional endpoint metadata match criteria.
     * The connection to the endpoint with metadata matching what is set in this field
     * will use the transport socket configuration specified here.
     * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
     * against the values specified in this field.
     * 
* * .google.protobuf.Struct match = 2; */ @java.lang.Override public com.google.protobuf.StructOrBuilder getMatchOrBuilder() { return getMatch(); } public static final int TRANSPORT_SOCKET_FIELD_NUMBER = 3; private io.envoyproxy.envoy.config.core.v3.TransportSocket transportSocket_; /** *
     * The configuration of the transport socket.
     * [#extension-category: envoy.transport_sockets.upstream]
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; * @return Whether the transportSocket field is set. */ @java.lang.Override public boolean hasTransportSocket() { return transportSocket_ != null; } /** *
     * The configuration of the transport socket.
     * [#extension-category: envoy.transport_sockets.upstream]
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; * @return The transportSocket. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TransportSocket getTransportSocket() { return transportSocket_ == null ? io.envoyproxy.envoy.config.core.v3.TransportSocket.getDefaultInstance() : transportSocket_; } /** *
     * The configuration of the transport socket.
     * [#extension-category: envoy.transport_sockets.upstream]
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TransportSocketOrBuilder getTransportSocketOrBuilder() { return getTransportSocket(); } 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 (match_ != null) { output.writeMessage(2, getMatch()); } if (transportSocket_ != null) { output.writeMessage(3, getTransportSocket()); } 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 (match_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getMatch()); } if (transportSocket_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, getTransportSocket()); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch) obj; if (!getName() .equals(other.getName())) return false; if (hasMatch() != other.hasMatch()) return false; if (hasMatch()) { if (!getMatch() .equals(other.getMatch())) return false; } if (hasTransportSocket() != other.hasTransportSocket()) return false; if (hasTransportSocket()) { if (!getTransportSocket() .equals(other.getTransportSocket())) 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(); if (hasMatch()) { hash = (37 * hash) + MATCH_FIELD_NUMBER; hash = (53 * hash) + getMatch().hashCode(); } if (hasTransportSocket()) { hash = (37 * hash) + TRANSPORT_SOCKET_FIELD_NUMBER; hash = (53 * hash) + getTransportSocket().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch 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; } /** *
     * TransportSocketMatch specifies what transport socket config will be used
     * when the match conditions are satisfied.
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.TransportSocketMatch} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.TransportSocketMatch) io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatchOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_TransportSocketMatch_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_TransportSocketMatch_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.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_ = ""; if (matchBuilder_ == null) { match_ = null; } else { match_ = null; matchBuilder_ = null; } if (transportSocketBuilder_ == null) { transportSocket_ = null; } else { transportSocket_ = null; transportSocketBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_TransportSocketMatch_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch(this); result.name_ = name_; if (matchBuilder_ == null) { result.match_ = match_; } else { result.match_ = matchBuilder_.build(); } if (transportSocketBuilder_ == null) { result.transportSocket_ = transportSocket_; } else { result.transportSocket_ = transportSocketBuilder_.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; onChanged(); } if (other.hasMatch()) { mergeMatch(other.getMatch()); } if (other.hasTransportSocket()) { mergeTransportSocket(other.getTransportSocket()); } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private java.lang.Object name_ = ""; /** *
       * The name of the match, used in stats generation.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @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; } } /** *
       * The name of the match, used in stats generation.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @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; } } /** *
       * The name of the match, used in stats generation.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @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; } /** *
       * The name of the match, used in stats generation.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearName() { name_ = getDefaultInstance().getName(); onChanged(); return this; } /** *
       * The name of the match, used in stats generation.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @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 com.google.protobuf.Struct match_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> matchBuilder_; /** *
       * Optional endpoint metadata match criteria.
       * The connection to the endpoint with metadata matching what is set in this field
       * will use the transport socket configuration specified here.
       * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
       * against the values specified in this field.
       * 
* * .google.protobuf.Struct match = 2; * @return Whether the match field is set. */ public boolean hasMatch() { return matchBuilder_ != null || match_ != null; } /** *
       * Optional endpoint metadata match criteria.
       * The connection to the endpoint with metadata matching what is set in this field
       * will use the transport socket configuration specified here.
       * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
       * against the values specified in this field.
       * 
* * .google.protobuf.Struct match = 2; * @return The match. */ public com.google.protobuf.Struct getMatch() { if (matchBuilder_ == null) { return match_ == null ? com.google.protobuf.Struct.getDefaultInstance() : match_; } else { return matchBuilder_.getMessage(); } } /** *
       * Optional endpoint metadata match criteria.
       * The connection to the endpoint with metadata matching what is set in this field
       * will use the transport socket configuration specified here.
       * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
       * against the values specified in this field.
       * 
* * .google.protobuf.Struct match = 2; */ public Builder setMatch(com.google.protobuf.Struct value) { if (matchBuilder_ == null) { if (value == null) { throw new NullPointerException(); } match_ = value; onChanged(); } else { matchBuilder_.setMessage(value); } return this; } /** *
       * Optional endpoint metadata match criteria.
       * The connection to the endpoint with metadata matching what is set in this field
       * will use the transport socket configuration specified here.
       * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
       * against the values specified in this field.
       * 
* * .google.protobuf.Struct match = 2; */ public Builder setMatch( com.google.protobuf.Struct.Builder builderForValue) { if (matchBuilder_ == null) { match_ = builderForValue.build(); onChanged(); } else { matchBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Optional endpoint metadata match criteria.
       * The connection to the endpoint with metadata matching what is set in this field
       * will use the transport socket configuration specified here.
       * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
       * against the values specified in this field.
       * 
* * .google.protobuf.Struct match = 2; */ public Builder mergeMatch(com.google.protobuf.Struct value) { if (matchBuilder_ == null) { if (match_ != null) { match_ = com.google.protobuf.Struct.newBuilder(match_).mergeFrom(value).buildPartial(); } else { match_ = value; } onChanged(); } else { matchBuilder_.mergeFrom(value); } return this; } /** *
       * Optional endpoint metadata match criteria.
       * The connection to the endpoint with metadata matching what is set in this field
       * will use the transport socket configuration specified here.
       * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
       * against the values specified in this field.
       * 
* * .google.protobuf.Struct match = 2; */ public Builder clearMatch() { if (matchBuilder_ == null) { match_ = null; onChanged(); } else { match_ = null; matchBuilder_ = null; } return this; } /** *
       * Optional endpoint metadata match criteria.
       * The connection to the endpoint with metadata matching what is set in this field
       * will use the transport socket configuration specified here.
       * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
       * against the values specified in this field.
       * 
* * .google.protobuf.Struct match = 2; */ public com.google.protobuf.Struct.Builder getMatchBuilder() { onChanged(); return getMatchFieldBuilder().getBuilder(); } /** *
       * Optional endpoint metadata match criteria.
       * The connection to the endpoint with metadata matching what is set in this field
       * will use the transport socket configuration specified here.
       * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
       * against the values specified in this field.
       * 
* * .google.protobuf.Struct match = 2; */ public com.google.protobuf.StructOrBuilder getMatchOrBuilder() { if (matchBuilder_ != null) { return matchBuilder_.getMessageOrBuilder(); } else { return match_ == null ? com.google.protobuf.Struct.getDefaultInstance() : match_; } } /** *
       * Optional endpoint metadata match criteria.
       * The connection to the endpoint with metadata matching what is set in this field
       * will use the transport socket configuration specified here.
       * The endpoint's metadata entry in ``envoy.transport_socket_match`` is used to match
       * against the values specified in this field.
       * 
* * .google.protobuf.Struct match = 2; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> getMatchFieldBuilder() { if (matchBuilder_ == null) { matchBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder>( getMatch(), getParentForChildren(), isClean()); match_ = null; } return matchBuilder_; } private io.envoyproxy.envoy.config.core.v3.TransportSocket transportSocket_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.TransportSocket, io.envoyproxy.envoy.config.core.v3.TransportSocket.Builder, io.envoyproxy.envoy.config.core.v3.TransportSocketOrBuilder> transportSocketBuilder_; /** *
       * The configuration of the transport socket.
       * [#extension-category: envoy.transport_sockets.upstream]
       * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; * @return Whether the transportSocket field is set. */ public boolean hasTransportSocket() { return transportSocketBuilder_ != null || transportSocket_ != null; } /** *
       * The configuration of the transport socket.
       * [#extension-category: envoy.transport_sockets.upstream]
       * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; * @return The transportSocket. */ public io.envoyproxy.envoy.config.core.v3.TransportSocket getTransportSocket() { if (transportSocketBuilder_ == null) { return transportSocket_ == null ? io.envoyproxy.envoy.config.core.v3.TransportSocket.getDefaultInstance() : transportSocket_; } else { return transportSocketBuilder_.getMessage(); } } /** *
       * The configuration of the transport socket.
       * [#extension-category: envoy.transport_sockets.upstream]
       * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; */ public Builder setTransportSocket(io.envoyproxy.envoy.config.core.v3.TransportSocket value) { if (transportSocketBuilder_ == null) { if (value == null) { throw new NullPointerException(); } transportSocket_ = value; onChanged(); } else { transportSocketBuilder_.setMessage(value); } return this; } /** *
       * The configuration of the transport socket.
       * [#extension-category: envoy.transport_sockets.upstream]
       * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; */ public Builder setTransportSocket( io.envoyproxy.envoy.config.core.v3.TransportSocket.Builder builderForValue) { if (transportSocketBuilder_ == null) { transportSocket_ = builderForValue.build(); onChanged(); } else { transportSocketBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * The configuration of the transport socket.
       * [#extension-category: envoy.transport_sockets.upstream]
       * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; */ public Builder mergeTransportSocket(io.envoyproxy.envoy.config.core.v3.TransportSocket value) { if (transportSocketBuilder_ == null) { if (transportSocket_ != null) { transportSocket_ = io.envoyproxy.envoy.config.core.v3.TransportSocket.newBuilder(transportSocket_).mergeFrom(value).buildPartial(); } else { transportSocket_ = value; } onChanged(); } else { transportSocketBuilder_.mergeFrom(value); } return this; } /** *
       * The configuration of the transport socket.
       * [#extension-category: envoy.transport_sockets.upstream]
       * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; */ public Builder clearTransportSocket() { if (transportSocketBuilder_ == null) { transportSocket_ = null; onChanged(); } else { transportSocket_ = null; transportSocketBuilder_ = null; } return this; } /** *
       * The configuration of the transport socket.
       * [#extension-category: envoy.transport_sockets.upstream]
       * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; */ public io.envoyproxy.envoy.config.core.v3.TransportSocket.Builder getTransportSocketBuilder() { onChanged(); return getTransportSocketFieldBuilder().getBuilder(); } /** *
       * The configuration of the transport socket.
       * [#extension-category: envoy.transport_sockets.upstream]
       * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; */ public io.envoyproxy.envoy.config.core.v3.TransportSocketOrBuilder getTransportSocketOrBuilder() { if (transportSocketBuilder_ != null) { return transportSocketBuilder_.getMessageOrBuilder(); } else { return transportSocket_ == null ? io.envoyproxy.envoy.config.core.v3.TransportSocket.getDefaultInstance() : transportSocket_; } } /** *
       * The configuration of the transport socket.
       * [#extension-category: envoy.transport_sockets.upstream]
       * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 3; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.TransportSocket, io.envoyproxy.envoy.config.core.v3.TransportSocket.Builder, io.envoyproxy.envoy.config.core.v3.TransportSocketOrBuilder> getTransportSocketFieldBuilder() { if (transportSocketBuilder_ == null) { transportSocketBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.TransportSocket, io.envoyproxy.envoy.config.core.v3.TransportSocket.Builder, io.envoyproxy.envoy.config.core.v3.TransportSocketOrBuilder>( getTransportSocket(), getParentForChildren(), isClean()); transportSocket_ = null; } return transportSocketBuilder_; } @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:envoy.config.cluster.v3.Cluster.TransportSocketMatch) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.TransportSocketMatch) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public TransportSocketMatch parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new TransportSocketMatch(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface CustomClusterTypeOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.CustomClusterType) com.google.protobuf.MessageOrBuilder { /** *
     * The type of the cluster to instantiate. The name must match a supported cluster type.
     * 
* * string name = 1 [(.validate.rules) = { ... } * @return The name. */ java.lang.String getName(); /** *
     * The type of the cluster to instantiate. The name must match a supported cluster type.
     * 
* * string name = 1 [(.validate.rules) = { ... } * @return The bytes for name. */ com.google.protobuf.ByteString getNameBytes(); /** *
     * Cluster specific configuration which depends on the cluster being instantiated.
     * See the supported cluster for further documentation.
     * [#extension-category: envoy.clusters]
     * 
* * .google.protobuf.Any typed_config = 2; * @return Whether the typedConfig field is set. */ boolean hasTypedConfig(); /** *
     * Cluster specific configuration which depends on the cluster being instantiated.
     * See the supported cluster for further documentation.
     * [#extension-category: envoy.clusters]
     * 
* * .google.protobuf.Any typed_config = 2; * @return The typedConfig. */ com.google.protobuf.Any getTypedConfig(); /** *
     * Cluster specific configuration which depends on the cluster being instantiated.
     * See the supported cluster for further documentation.
     * [#extension-category: envoy.clusters]
     * 
* * .google.protobuf.Any typed_config = 2; */ com.google.protobuf.AnyOrBuilder getTypedConfigOrBuilder(); } /** *
   * Extended cluster type.
   * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.CustomClusterType} */ public static final class CustomClusterType extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.CustomClusterType) CustomClusterTypeOrBuilder { private static final long serialVersionUID = 0L; // Use CustomClusterType.newBuilder() to construct. private CustomClusterType(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private CustomClusterType() { name_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new CustomClusterType(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private CustomClusterType( 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: { com.google.protobuf.Any.Builder subBuilder = null; if (typedConfig_ != null) { subBuilder = typedConfig_.toBuilder(); } typedConfig_ = input.readMessage(com.google.protobuf.Any.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(typedConfig_); typedConfig_ = subBuilder.buildPartial(); } break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CustomClusterType_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CustomClusterType_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.Builder.class); } public static final int NAME_FIELD_NUMBER = 1; private volatile java.lang.Object name_; /** *
     * The type of the cluster to instantiate. The name must match a supported cluster type.
     * 
* * string name = 1 [(.validate.rules) = { ... } * @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; } } /** *
     * The type of the cluster to instantiate. The name must match a supported cluster type.
     * 
* * string name = 1 [(.validate.rules) = { ... } * @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 TYPED_CONFIG_FIELD_NUMBER = 2; private com.google.protobuf.Any typedConfig_; /** *
     * Cluster specific configuration which depends on the cluster being instantiated.
     * See the supported cluster for further documentation.
     * [#extension-category: envoy.clusters]
     * 
* * .google.protobuf.Any typed_config = 2; * @return Whether the typedConfig field is set. */ @java.lang.Override public boolean hasTypedConfig() { return typedConfig_ != null; } /** *
     * Cluster specific configuration which depends on the cluster being instantiated.
     * See the supported cluster for further documentation.
     * [#extension-category: envoy.clusters]
     * 
* * .google.protobuf.Any typed_config = 2; * @return The typedConfig. */ @java.lang.Override public com.google.protobuf.Any getTypedConfig() { return typedConfig_ == null ? com.google.protobuf.Any.getDefaultInstance() : typedConfig_; } /** *
     * Cluster specific configuration which depends on the cluster being instantiated.
     * See the supported cluster for further documentation.
     * [#extension-category: envoy.clusters]
     * 
* * .google.protobuf.Any typed_config = 2; */ @java.lang.Override public com.google.protobuf.AnyOrBuilder getTypedConfigOrBuilder() { return getTypedConfig(); } 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 (typedConfig_ != null) { output.writeMessage(2, getTypedConfig()); } 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 (typedConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getTypedConfig()); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType) obj; if (!getName() .equals(other.getName())) return false; if (hasTypedConfig() != other.hasTypedConfig()) return false; if (hasTypedConfig()) { if (!getTypedConfig() .equals(other.getTypedConfig())) 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(); if (hasTypedConfig()) { hash = (37 * hash) + TYPED_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getTypedConfig().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType 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; } /** *
     * Extended cluster type.
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.CustomClusterType} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.CustomClusterType) io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterTypeOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CustomClusterType_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CustomClusterType_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.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_ = ""; if (typedConfigBuilder_ == null) { typedConfig_ = null; } else { typedConfig_ = null; typedConfigBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CustomClusterType_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType(this); result.name_ = name_; if (typedConfigBuilder_ == null) { result.typedConfig_ = typedConfig_; } else { result.typedConfig_ = typedConfigBuilder_.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; onChanged(); } if (other.hasTypedConfig()) { mergeTypedConfig(other.getTypedConfig()); } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private java.lang.Object name_ = ""; /** *
       * The type of the cluster to instantiate. The name must match a supported cluster type.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @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; } } /** *
       * The type of the cluster to instantiate. The name must match a supported cluster type.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @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; } } /** *
       * The type of the cluster to instantiate. The name must match a supported cluster type.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @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; } /** *
       * The type of the cluster to instantiate. The name must match a supported cluster type.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearName() { name_ = getDefaultInstance().getName(); onChanged(); return this; } /** *
       * The type of the cluster to instantiate. The name must match a supported cluster type.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @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 com.google.protobuf.Any typedConfig_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> typedConfigBuilder_; /** *
       * Cluster specific configuration which depends on the cluster being instantiated.
       * See the supported cluster for further documentation.
       * [#extension-category: envoy.clusters]
       * 
* * .google.protobuf.Any typed_config = 2; * @return Whether the typedConfig field is set. */ public boolean hasTypedConfig() { return typedConfigBuilder_ != null || typedConfig_ != null; } /** *
       * Cluster specific configuration which depends on the cluster being instantiated.
       * See the supported cluster for further documentation.
       * [#extension-category: envoy.clusters]
       * 
* * .google.protobuf.Any typed_config = 2; * @return The typedConfig. */ public com.google.protobuf.Any getTypedConfig() { if (typedConfigBuilder_ == null) { return typedConfig_ == null ? com.google.protobuf.Any.getDefaultInstance() : typedConfig_; } else { return typedConfigBuilder_.getMessage(); } } /** *
       * Cluster specific configuration which depends on the cluster being instantiated.
       * See the supported cluster for further documentation.
       * [#extension-category: envoy.clusters]
       * 
* * .google.protobuf.Any typed_config = 2; */ public Builder setTypedConfig(com.google.protobuf.Any value) { if (typedConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } typedConfig_ = value; onChanged(); } else { typedConfigBuilder_.setMessage(value); } return this; } /** *
       * Cluster specific configuration which depends on the cluster being instantiated.
       * See the supported cluster for further documentation.
       * [#extension-category: envoy.clusters]
       * 
* * .google.protobuf.Any typed_config = 2; */ public Builder setTypedConfig( com.google.protobuf.Any.Builder builderForValue) { if (typedConfigBuilder_ == null) { typedConfig_ = builderForValue.build(); onChanged(); } else { typedConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Cluster specific configuration which depends on the cluster being instantiated.
       * See the supported cluster for further documentation.
       * [#extension-category: envoy.clusters]
       * 
* * .google.protobuf.Any typed_config = 2; */ public Builder mergeTypedConfig(com.google.protobuf.Any value) { if (typedConfigBuilder_ == null) { if (typedConfig_ != null) { typedConfig_ = com.google.protobuf.Any.newBuilder(typedConfig_).mergeFrom(value).buildPartial(); } else { typedConfig_ = value; } onChanged(); } else { typedConfigBuilder_.mergeFrom(value); } return this; } /** *
       * Cluster specific configuration which depends on the cluster being instantiated.
       * See the supported cluster for further documentation.
       * [#extension-category: envoy.clusters]
       * 
* * .google.protobuf.Any typed_config = 2; */ public Builder clearTypedConfig() { if (typedConfigBuilder_ == null) { typedConfig_ = null; onChanged(); } else { typedConfig_ = null; typedConfigBuilder_ = null; } return this; } /** *
       * Cluster specific configuration which depends on the cluster being instantiated.
       * See the supported cluster for further documentation.
       * [#extension-category: envoy.clusters]
       * 
* * .google.protobuf.Any typed_config = 2; */ public com.google.protobuf.Any.Builder getTypedConfigBuilder() { onChanged(); return getTypedConfigFieldBuilder().getBuilder(); } /** *
       * Cluster specific configuration which depends on the cluster being instantiated.
       * See the supported cluster for further documentation.
       * [#extension-category: envoy.clusters]
       * 
* * .google.protobuf.Any typed_config = 2; */ public com.google.protobuf.AnyOrBuilder getTypedConfigOrBuilder() { if (typedConfigBuilder_ != null) { return typedConfigBuilder_.getMessageOrBuilder(); } else { return typedConfig_ == null ? com.google.protobuf.Any.getDefaultInstance() : typedConfig_; } } /** *
       * Cluster specific configuration which depends on the cluster being instantiated.
       * See the supported cluster for further documentation.
       * [#extension-category: envoy.clusters]
       * 
* * .google.protobuf.Any typed_config = 2; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> getTypedConfigFieldBuilder() { if (typedConfigBuilder_ == null) { typedConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder>( getTypedConfig(), getParentForChildren(), isClean()); typedConfig_ = null; } return typedConfigBuilder_; } @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:envoy.config.cluster.v3.Cluster.CustomClusterType) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.CustomClusterType) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public CustomClusterType parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new CustomClusterType(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface EdsClusterConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.EdsClusterConfig) com.google.protobuf.MessageOrBuilder { /** *
     * Configuration for the source of EDS updates for this Cluster.
     * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; * @return Whether the edsConfig field is set. */ boolean hasEdsConfig(); /** *
     * Configuration for the source of EDS updates for this Cluster.
     * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; * @return The edsConfig. */ io.envoyproxy.envoy.config.core.v3.ConfigSource getEdsConfig(); /** *
     * Configuration for the source of EDS updates for this Cluster.
     * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; */ io.envoyproxy.envoy.config.core.v3.ConfigSourceOrBuilder getEdsConfigOrBuilder(); /** *
     * Optional alternative to cluster name to present to EDS. This does not
     * have the same restrictions as cluster name, i.e. it may be arbitrary
     * length. This may be a xdstp:// URL.
     * 
* * string service_name = 2; * @return The serviceName. */ java.lang.String getServiceName(); /** *
     * Optional alternative to cluster name to present to EDS. This does not
     * have the same restrictions as cluster name, i.e. it may be arbitrary
     * length. This may be a xdstp:// URL.
     * 
* * string service_name = 2; * @return The bytes for serviceName. */ com.google.protobuf.ByteString getServiceNameBytes(); } /** *
   * Only valid when discovery type is EDS.
   * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.EdsClusterConfig} */ public static final class EdsClusterConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.EdsClusterConfig) EdsClusterConfigOrBuilder { private static final long serialVersionUID = 0L; // Use EdsClusterConfig.newBuilder() to construct. private EdsClusterConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private EdsClusterConfig() { serviceName_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new EdsClusterConfig(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private EdsClusterConfig( 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: { io.envoyproxy.envoy.config.core.v3.ConfigSource.Builder subBuilder = null; if (edsConfig_ != null) { subBuilder = edsConfig_.toBuilder(); } edsConfig_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.ConfigSource.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(edsConfig_); edsConfig_ = subBuilder.buildPartial(); } break; } case 18: { java.lang.String s = input.readStringRequireUtf8(); serviceName_ = s; break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_EdsClusterConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_EdsClusterConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.Builder.class); } public static final int EDS_CONFIG_FIELD_NUMBER = 1; private io.envoyproxy.envoy.config.core.v3.ConfigSource edsConfig_; /** *
     * Configuration for the source of EDS updates for this Cluster.
     * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; * @return Whether the edsConfig field is set. */ @java.lang.Override public boolean hasEdsConfig() { return edsConfig_ != null; } /** *
     * Configuration for the source of EDS updates for this Cluster.
     * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; * @return The edsConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.ConfigSource getEdsConfig() { return edsConfig_ == null ? io.envoyproxy.envoy.config.core.v3.ConfigSource.getDefaultInstance() : edsConfig_; } /** *
     * Configuration for the source of EDS updates for this Cluster.
     * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.ConfigSourceOrBuilder getEdsConfigOrBuilder() { return getEdsConfig(); } public static final int SERVICE_NAME_FIELD_NUMBER = 2; private volatile java.lang.Object serviceName_; /** *
     * Optional alternative to cluster name to present to EDS. This does not
     * have the same restrictions as cluster name, i.e. it may be arbitrary
     * length. This may be a xdstp:// URL.
     * 
* * string service_name = 2; * @return The serviceName. */ @java.lang.Override public java.lang.String getServiceName() { java.lang.Object ref = serviceName_; 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(); serviceName_ = s; return s; } } /** *
     * Optional alternative to cluster name to present to EDS. This does not
     * have the same restrictions as cluster name, i.e. it may be arbitrary
     * length. This may be a xdstp:// URL.
     * 
* * string service_name = 2; * @return The bytes for serviceName. */ @java.lang.Override public com.google.protobuf.ByteString getServiceNameBytes() { java.lang.Object ref = serviceName_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); serviceName_ = 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 (edsConfig_ != null) { output.writeMessage(1, getEdsConfig()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serviceName_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serviceName_); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (edsConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getEdsConfig()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serviceName_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serviceName_); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig) obj; if (hasEdsConfig() != other.hasEdsConfig()) return false; if (hasEdsConfig()) { if (!getEdsConfig() .equals(other.getEdsConfig())) return false; } if (!getServiceName() .equals(other.getServiceName())) 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 (hasEdsConfig()) { hash = (37 * hash) + EDS_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getEdsConfig().hashCode(); } hash = (37 * hash) + SERVICE_NAME_FIELD_NUMBER; hash = (53 * hash) + getServiceName().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig 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; } /** *
     * Only valid when discovery type is EDS.
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.EdsClusterConfig} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.EdsClusterConfig) io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_EdsClusterConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_EdsClusterConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.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 (edsConfigBuilder_ == null) { edsConfig_ = null; } else { edsConfig_ = null; edsConfigBuilder_ = null; } serviceName_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_EdsClusterConfig_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig(this); if (edsConfigBuilder_ == null) { result.edsConfig_ = edsConfig_; } else { result.edsConfig_ = edsConfigBuilder_.build(); } result.serviceName_ = serviceName_; 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.getDefaultInstance()) return this; if (other.hasEdsConfig()) { mergeEdsConfig(other.getEdsConfig()); } if (!other.getServiceName().isEmpty()) { serviceName_ = other.serviceName_; 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private io.envoyproxy.envoy.config.core.v3.ConfigSource edsConfig_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.ConfigSource, io.envoyproxy.envoy.config.core.v3.ConfigSource.Builder, io.envoyproxy.envoy.config.core.v3.ConfigSourceOrBuilder> edsConfigBuilder_; /** *
       * Configuration for the source of EDS updates for this Cluster.
       * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; * @return Whether the edsConfig field is set. */ public boolean hasEdsConfig() { return edsConfigBuilder_ != null || edsConfig_ != null; } /** *
       * Configuration for the source of EDS updates for this Cluster.
       * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; * @return The edsConfig. */ public io.envoyproxy.envoy.config.core.v3.ConfigSource getEdsConfig() { if (edsConfigBuilder_ == null) { return edsConfig_ == null ? io.envoyproxy.envoy.config.core.v3.ConfigSource.getDefaultInstance() : edsConfig_; } else { return edsConfigBuilder_.getMessage(); } } /** *
       * Configuration for the source of EDS updates for this Cluster.
       * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; */ public Builder setEdsConfig(io.envoyproxy.envoy.config.core.v3.ConfigSource value) { if (edsConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } edsConfig_ = value; onChanged(); } else { edsConfigBuilder_.setMessage(value); } return this; } /** *
       * Configuration for the source of EDS updates for this Cluster.
       * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; */ public Builder setEdsConfig( io.envoyproxy.envoy.config.core.v3.ConfigSource.Builder builderForValue) { if (edsConfigBuilder_ == null) { edsConfig_ = builderForValue.build(); onChanged(); } else { edsConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Configuration for the source of EDS updates for this Cluster.
       * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; */ public Builder mergeEdsConfig(io.envoyproxy.envoy.config.core.v3.ConfigSource value) { if (edsConfigBuilder_ == null) { if (edsConfig_ != null) { edsConfig_ = io.envoyproxy.envoy.config.core.v3.ConfigSource.newBuilder(edsConfig_).mergeFrom(value).buildPartial(); } else { edsConfig_ = value; } onChanged(); } else { edsConfigBuilder_.mergeFrom(value); } return this; } /** *
       * Configuration for the source of EDS updates for this Cluster.
       * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; */ public Builder clearEdsConfig() { if (edsConfigBuilder_ == null) { edsConfig_ = null; onChanged(); } else { edsConfig_ = null; edsConfigBuilder_ = null; } return this; } /** *
       * Configuration for the source of EDS updates for this Cluster.
       * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; */ public io.envoyproxy.envoy.config.core.v3.ConfigSource.Builder getEdsConfigBuilder() { onChanged(); return getEdsConfigFieldBuilder().getBuilder(); } /** *
       * Configuration for the source of EDS updates for this Cluster.
       * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; */ public io.envoyproxy.envoy.config.core.v3.ConfigSourceOrBuilder getEdsConfigOrBuilder() { if (edsConfigBuilder_ != null) { return edsConfigBuilder_.getMessageOrBuilder(); } else { return edsConfig_ == null ? io.envoyproxy.envoy.config.core.v3.ConfigSource.getDefaultInstance() : edsConfig_; } } /** *
       * Configuration for the source of EDS updates for this Cluster.
       * 
* * .envoy.config.core.v3.ConfigSource eds_config = 1; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.ConfigSource, io.envoyproxy.envoy.config.core.v3.ConfigSource.Builder, io.envoyproxy.envoy.config.core.v3.ConfigSourceOrBuilder> getEdsConfigFieldBuilder() { if (edsConfigBuilder_ == null) { edsConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.ConfigSource, io.envoyproxy.envoy.config.core.v3.ConfigSource.Builder, io.envoyproxy.envoy.config.core.v3.ConfigSourceOrBuilder>( getEdsConfig(), getParentForChildren(), isClean()); edsConfig_ = null; } return edsConfigBuilder_; } private java.lang.Object serviceName_ = ""; /** *
       * Optional alternative to cluster name to present to EDS. This does not
       * have the same restrictions as cluster name, i.e. it may be arbitrary
       * length. This may be a xdstp:// URL.
       * 
* * string service_name = 2; * @return The serviceName. */ public java.lang.String getServiceName() { java.lang.Object ref = serviceName_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); serviceName_ = s; return s; } else { return (java.lang.String) ref; } } /** *
       * Optional alternative to cluster name to present to EDS. This does not
       * have the same restrictions as cluster name, i.e. it may be arbitrary
       * length. This may be a xdstp:// URL.
       * 
* * string service_name = 2; * @return The bytes for serviceName. */ public com.google.protobuf.ByteString getServiceNameBytes() { java.lang.Object ref = serviceName_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); serviceName_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
       * Optional alternative to cluster name to present to EDS. This does not
       * have the same restrictions as cluster name, i.e. it may be arbitrary
       * length. This may be a xdstp:// URL.
       * 
* * string service_name = 2; * @param value The serviceName to set. * @return This builder for chaining. */ public Builder setServiceName( java.lang.String value) { if (value == null) { throw new NullPointerException(); } serviceName_ = value; onChanged(); return this; } /** *
       * Optional alternative to cluster name to present to EDS. This does not
       * have the same restrictions as cluster name, i.e. it may be arbitrary
       * length. This may be a xdstp:// URL.
       * 
* * string service_name = 2; * @return This builder for chaining. */ public Builder clearServiceName() { serviceName_ = getDefaultInstance().getServiceName(); onChanged(); return this; } /** *
       * Optional alternative to cluster name to present to EDS. This does not
       * have the same restrictions as cluster name, i.e. it may be arbitrary
       * length. This may be a xdstp:// URL.
       * 
* * string service_name = 2; * @param value The bytes for serviceName to set. * @return This builder for chaining. */ public Builder setServiceNameBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); serviceName_ = 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:envoy.config.cluster.v3.Cluster.EdsClusterConfig) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.EdsClusterConfig) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public EdsClusterConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new EdsClusterConfig(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface LbSubsetConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.LbSubsetConfig) com.google.protobuf.MessageOrBuilder { /** *
     * The behavior used when no endpoint subset matches the selected route's
     * metadata. The value defaults to
     * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for fallbackPolicy. */ int getFallbackPolicyValue(); /** *
     * The behavior used when no endpoint subset matches the selected route's
     * metadata. The value defaults to
     * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... } * @return The fallbackPolicy. */ io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy getFallbackPolicy(); /** *
     * Specifies the default subset of endpoints used during fallback if
     * fallback_policy is
     * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
     * Each field in default_subset is
     * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
     * namespace. It is valid for no hosts to match, in which case the behavior
     * is the same as a fallback_policy of
     * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
     * 
* * .google.protobuf.Struct default_subset = 2; * @return Whether the defaultSubset field is set. */ boolean hasDefaultSubset(); /** *
     * Specifies the default subset of endpoints used during fallback if
     * fallback_policy is
     * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
     * Each field in default_subset is
     * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
     * namespace. It is valid for no hosts to match, in which case the behavior
     * is the same as a fallback_policy of
     * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
     * 
* * .google.protobuf.Struct default_subset = 2; * @return The defaultSubset. */ com.google.protobuf.Struct getDefaultSubset(); /** *
     * Specifies the default subset of endpoints used during fallback if
     * fallback_policy is
     * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
     * Each field in default_subset is
     * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
     * namespace. It is valid for no hosts to match, in which case the behavior
     * is the same as a fallback_policy of
     * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
     * 
* * .google.protobuf.Struct default_subset = 2; */ com.google.protobuf.StructOrBuilder getDefaultSubsetOrBuilder(); /** *
     * For each entry, LbEndpoint.Metadata's
     * ``envoy.lb`` namespace is traversed and a subset is created for each unique
     * combination of key and value. For example:
     * .. code-block:: json
     *   { "subset_selectors": [
     *       { "keys": [ "version" ] },
     *       { "keys": [ "stage", "hardware_type" ] }
     *   ]}
     * A subset is matched when the metadata from the selected route and
     * weighted cluster contains the same keys and values as the subset's
     * metadata. The same host may appear in multiple subsets.
     * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ java.util.List getSubsetSelectorsList(); /** *
     * For each entry, LbEndpoint.Metadata's
     * ``envoy.lb`` namespace is traversed and a subset is created for each unique
     * combination of key and value. For example:
     * .. code-block:: json
     *   { "subset_selectors": [
     *       { "keys": [ "version" ] },
     *       { "keys": [ "stage", "hardware_type" ] }
     *   ]}
     * A subset is matched when the metadata from the selected route and
     * weighted cluster contains the same keys and values as the subset's
     * metadata. The same host may appear in multiple subsets.
     * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector getSubsetSelectors(int index); /** *
     * For each entry, LbEndpoint.Metadata's
     * ``envoy.lb`` namespace is traversed and a subset is created for each unique
     * combination of key and value. For example:
     * .. code-block:: json
     *   { "subset_selectors": [
     *       { "keys": [ "version" ] },
     *       { "keys": [ "stage", "hardware_type" ] }
     *   ]}
     * A subset is matched when the metadata from the selected route and
     * weighted cluster contains the same keys and values as the subset's
     * metadata. The same host may appear in multiple subsets.
     * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ int getSubsetSelectorsCount(); /** *
     * For each entry, LbEndpoint.Metadata's
     * ``envoy.lb`` namespace is traversed and a subset is created for each unique
     * combination of key and value. For example:
     * .. code-block:: json
     *   { "subset_selectors": [
     *       { "keys": [ "version" ] },
     *       { "keys": [ "stage", "hardware_type" ] }
     *   ]}
     * A subset is matched when the metadata from the selected route and
     * weighted cluster contains the same keys and values as the subset's
     * metadata. The same host may appear in multiple subsets.
     * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ java.util.List getSubsetSelectorsOrBuilderList(); /** *
     * For each entry, LbEndpoint.Metadata's
     * ``envoy.lb`` namespace is traversed and a subset is created for each unique
     * combination of key and value. For example:
     * .. code-block:: json
     *   { "subset_selectors": [
     *       { "keys": [ "version" ] },
     *       { "keys": [ "stage", "hardware_type" ] }
     *   ]}
     * A subset is matched when the metadata from the selected route and
     * weighted cluster contains the same keys and values as the subset's
     * metadata. The same host may appear in multiple subsets.
     * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelectorOrBuilder getSubsetSelectorsOrBuilder( int index); /** *
     * If true, routing to subsets will take into account the localities and locality weights of the
     * endpoints when making the routing decision.
     * There are some potential pitfalls associated with enabling this feature, as the resulting
     * traffic split after applying both a subset match and locality weights might be undesirable.
     * Consider for example a situation in which you have 50/50 split across two localities X/Y
     * which have 100 hosts each without subsetting. If the subset LB results in X having only 1
     * host selected but Y having 100, then a lot more load is being dumped on the single host in X
     * than originally anticipated in the load balancing assignment delivered via EDS.
     * 
* * bool locality_weight_aware = 4; * @return The localityWeightAware. */ boolean getLocalityWeightAware(); /** *
     * When used with locality_weight_aware, scales the weight of each locality by the ratio
     * of hosts in the subset vs hosts in the original subset. This aims to even out the load
     * going to an individual locality if said locality is disproportionately affected by the
     * subset predicate.
     * 
* * bool scale_locality_weight = 5; * @return The scaleLocalityWeight. */ boolean getScaleLocalityWeight(); /** *
     * If true, when a fallback policy is configured and its corresponding subset fails to find
     * a host this will cause any host to be selected instead.
     * This is useful when using the default subset as the fallback policy, given the default
     * subset might become empty. With this option enabled, if that happens the LB will attempt
     * to select a host from the entire cluster.
     * 
* * bool panic_mode_any = 6; * @return The panicModeAny. */ boolean getPanicModeAny(); /** *
     * If true, metadata specified for a metadata key will be matched against the corresponding
     * endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value
     * and any of the elements in the list matches the criteria.
     * 
* * bool list_as_any = 7; * @return The listAsAny. */ boolean getListAsAny(); /** *
     * Fallback mechanism that allows to try different route metadata until a host is found.
     * If load balancing process, including all its mechanisms (like
     * :ref:`fallback_policy<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.fallback_policy>`)
     * fails to select a host, this policy decides if and how the process is repeated using another metadata.
     * The value defaults to
     * :ref:`METADATA_NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for metadataFallbackPolicy. */ int getMetadataFallbackPolicyValue(); /** *
     * Fallback mechanism that allows to try different route metadata until a host is found.
     * If load balancing process, including all its mechanisms (like
     * :ref:`fallback_policy<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.fallback_policy>`)
     * fails to select a host, this policy decides if and how the process is repeated using another metadata.
     * The value defaults to
     * :ref:`METADATA_NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... } * @return The metadataFallbackPolicy. */ io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy getMetadataFallbackPolicy(); } /** *
   * Optionally divide the endpoints in this cluster into subsets defined by
   * endpoint metadata and selected by route and weighted cluster metadata.
   * [#next-free-field: 9]
   * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.LbSubsetConfig} */ public static final class LbSubsetConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.LbSubsetConfig) LbSubsetConfigOrBuilder { private static final long serialVersionUID = 0L; // Use LbSubsetConfig.newBuilder() to construct. private LbSubsetConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private LbSubsetConfig() { fallbackPolicy_ = 0; subsetSelectors_ = java.util.Collections.emptyList(); metadataFallbackPolicy_ = 0; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new LbSubsetConfig(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private LbSubsetConfig( 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 8: { int rawValue = input.readEnum(); fallbackPolicy_ = rawValue; break; } case 18: { com.google.protobuf.Struct.Builder subBuilder = null; if (defaultSubset_ != null) { subBuilder = defaultSubset_.toBuilder(); } defaultSubset_ = input.readMessage(com.google.protobuf.Struct.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(defaultSubset_); defaultSubset_ = subBuilder.buildPartial(); } break; } case 26: { if (!((mutable_bitField0_ & 0x00000001) != 0)) { subsetSelectors_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000001; } subsetSelectors_.add( input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.parser(), extensionRegistry)); break; } case 32: { localityWeightAware_ = input.readBool(); break; } case 40: { scaleLocalityWeight_ = input.readBool(); break; } case 48: { panicModeAny_ = input.readBool(); break; } case 56: { listAsAny_ = input.readBool(); break; } case 64: { int rawValue = input.readEnum(); metadataFallbackPolicy_ = rawValue; break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { if (((mutable_bitField0_ & 0x00000001) != 0)) { subsetSelectors_ = java.util.Collections.unmodifiableList(subsetSelectors_); } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LbSubsetConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LbSubsetConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.Builder.class); } /** *
     * If NO_FALLBACK is selected, a result
     * equivalent to no healthy hosts is reported. If ANY_ENDPOINT is selected,
     * any cluster endpoint may be returned (subject to policy, health checks,
     * etc). If DEFAULT_SUBSET is selected, load balancing is performed over the
     * endpoints matching the values from the default_subset field.
     * 
* * Protobuf enum {@code envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy} */ public enum LbSubsetFallbackPolicy implements com.google.protobuf.ProtocolMessageEnum { /** * NO_FALLBACK = 0; */ NO_FALLBACK(0), /** * ANY_ENDPOINT = 1; */ ANY_ENDPOINT(1), /** * DEFAULT_SUBSET = 2; */ DEFAULT_SUBSET(2), UNRECOGNIZED(-1), ; /** * NO_FALLBACK = 0; */ public static final int NO_FALLBACK_VALUE = 0; /** * ANY_ENDPOINT = 1; */ public static final int ANY_ENDPOINT_VALUE = 1; /** * DEFAULT_SUBSET = 2; */ public static final int DEFAULT_SUBSET_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 LbSubsetFallbackPolicy 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 LbSubsetFallbackPolicy forNumber(int value) { switch (value) { case 0: return NO_FALLBACK; case 1: return ANY_ENDPOINT; case 2: return DEFAULT_SUBSET; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< LbSubsetFallbackPolicy> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { public LbSubsetFallbackPolicy findValueByNumber(int number) { return LbSubsetFallbackPolicy.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.getDescriptor().getEnumTypes().get(0); } private static final LbSubsetFallbackPolicy[] VALUES = values(); public static LbSubsetFallbackPolicy 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 LbSubsetFallbackPolicy(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy) } /** * Protobuf enum {@code envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy} */ public enum LbSubsetMetadataFallbackPolicy implements com.google.protobuf.ProtocolMessageEnum { /** *
       * No fallback. Route metadata will be used as-is.
       * 
* * METADATA_NO_FALLBACK = 0; */ METADATA_NO_FALLBACK(0), /** *
       * A special metadata key ``fallback_list`` will be used to provide variants of metadata to try.
       * Value of ``fallback_list`` key has to be a list. Every list element has to be a struct - it will
       * be merged with route metadata, overriding keys that appear in both places.
       * ``fallback_list`` entries will be used in order until a host is found.
       * ``fallback_list`` key itself is removed from metadata before subset load balancing is performed.
       * Example:
       * for metadata:
       * .. code-block:: yaml
       *   version: 1.0
       *   fallback_list:
       *     - version: 2.0
       *       hardware: c64
       *     - hardware: c32
       *     - version: 3.0
       * at first, metadata:
       * .. code-block:: json
       *   {"version": "2.0", "hardware": "c64"}
       * will be used for load balancing. If no host is found, metadata:
       * .. code-block:: json
       *   {"version": "1.0", "hardware": "c32"}
       * is next to try. If it still results in no host, finally metadata:
       * .. code-block:: json
       *   {"version": "3.0"}
       * is used.
       * 
* * FALLBACK_LIST = 1; */ FALLBACK_LIST(1), UNRECOGNIZED(-1), ; /** *
       * No fallback. Route metadata will be used as-is.
       * 
* * METADATA_NO_FALLBACK = 0; */ public static final int METADATA_NO_FALLBACK_VALUE = 0; /** *
       * A special metadata key ``fallback_list`` will be used to provide variants of metadata to try.
       * Value of ``fallback_list`` key has to be a list. Every list element has to be a struct - it will
       * be merged with route metadata, overriding keys that appear in both places.
       * ``fallback_list`` entries will be used in order until a host is found.
       * ``fallback_list`` key itself is removed from metadata before subset load balancing is performed.
       * Example:
       * for metadata:
       * .. code-block:: yaml
       *   version: 1.0
       *   fallback_list:
       *     - version: 2.0
       *       hardware: c64
       *     - hardware: c32
       *     - version: 3.0
       * at first, metadata:
       * .. code-block:: json
       *   {"version": "2.0", "hardware": "c64"}
       * will be used for load balancing. If no host is found, metadata:
       * .. code-block:: json
       *   {"version": "1.0", "hardware": "c32"}
       * is next to try. If it still results in no host, finally metadata:
       * .. code-block:: json
       *   {"version": "3.0"}
       * is used.
       * 
* * FALLBACK_LIST = 1; */ public static final int FALLBACK_LIST_VALUE = 1; 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 LbSubsetMetadataFallbackPolicy 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 LbSubsetMetadataFallbackPolicy forNumber(int value) { switch (value) { case 0: return METADATA_NO_FALLBACK; case 1: return FALLBACK_LIST; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< LbSubsetMetadataFallbackPolicy> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { public LbSubsetMetadataFallbackPolicy findValueByNumber(int number) { return LbSubsetMetadataFallbackPolicy.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.getDescriptor().getEnumTypes().get(1); } private static final LbSubsetMetadataFallbackPolicy[] VALUES = values(); public static LbSubsetMetadataFallbackPolicy 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 LbSubsetMetadataFallbackPolicy(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy) } public interface LbSubsetSelectorOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector) com.google.protobuf.MessageOrBuilder { /** *
       * List of keys to match with the weighted cluster metadata.
       * 
* * repeated string keys = 1; * @return A list containing the keys. */ java.util.List getKeysList(); /** *
       * List of keys to match with the weighted cluster metadata.
       * 
* * repeated string keys = 1; * @return The count of keys. */ int getKeysCount(); /** *
       * List of keys to match with the weighted cluster metadata.
       * 
* * repeated string keys = 1; * @param index The index of the element to return. * @return The keys at the given index. */ java.lang.String getKeys(int index); /** *
       * List of keys to match with the weighted cluster metadata.
       * 
* * repeated string keys = 1; * @param index The index of the value to return. * @return The bytes of the keys at the given index. */ com.google.protobuf.ByteString getKeysBytes(int index); /** *
       * Selects a mode of operation in which each subset has only one host. This mode uses the same rules for
       * choosing a host, but updating hosts is faster, especially for large numbers of hosts.
       * If a match is found to a host, that host will be used regardless of priority levels.
       * When this mode is enabled, configurations that contain more than one host with the same metadata value for the single key in ``keys``
       * will use only one of the hosts with the given key; no requests will be routed to the others. The cluster gauge
       * :ref:`lb_subsets_single_host_per_subset_duplicate<config_cluster_manager_cluster_stats_subset_lb>` indicates how many duplicates are
       * present in the current configuration.
       * 
* * bool single_host_per_subset = 4; * @return The singleHostPerSubset. */ boolean getSingleHostPerSubset(); /** *
       * The behavior used when no endpoint subset matches the selected route's
       * metadata.
       * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy fallback_policy = 2 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for fallbackPolicy. */ int getFallbackPolicyValue(); /** *
       * The behavior used when no endpoint subset matches the selected route's
       * metadata.
       * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy fallback_policy = 2 [(.validate.rules) = { ... } * @return The fallbackPolicy. */ io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy getFallbackPolicy(); /** *
       * Subset of
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
       * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
       * fallback policy.
       * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
       * For any other fallback policy the parameter is not used and should not be set.
       * Only values also present in
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
       * ``fallback_keys_subset`` cannot be equal to ``keys``.
       * 
* * repeated string fallback_keys_subset = 3; * @return A list containing the fallbackKeysSubset. */ java.util.List getFallbackKeysSubsetList(); /** *
       * Subset of
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
       * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
       * fallback policy.
       * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
       * For any other fallback policy the parameter is not used and should not be set.
       * Only values also present in
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
       * ``fallback_keys_subset`` cannot be equal to ``keys``.
       * 
* * repeated string fallback_keys_subset = 3; * @return The count of fallbackKeysSubset. */ int getFallbackKeysSubsetCount(); /** *
       * Subset of
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
       * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
       * fallback policy.
       * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
       * For any other fallback policy the parameter is not used and should not be set.
       * Only values also present in
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
       * ``fallback_keys_subset`` cannot be equal to ``keys``.
       * 
* * repeated string fallback_keys_subset = 3; * @param index The index of the element to return. * @return The fallbackKeysSubset at the given index. */ java.lang.String getFallbackKeysSubset(int index); /** *
       * Subset of
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
       * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
       * fallback policy.
       * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
       * For any other fallback policy the parameter is not used and should not be set.
       * Only values also present in
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
       * ``fallback_keys_subset`` cannot be equal to ``keys``.
       * 
* * repeated string fallback_keys_subset = 3; * @param index The index of the value to return. * @return The bytes of the fallbackKeysSubset at the given index. */ com.google.protobuf.ByteString getFallbackKeysSubsetBytes(int index); } /** *
     * Specifications for subsets.
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector} */ public static final class LbSubsetSelector extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector) LbSubsetSelectorOrBuilder { private static final long serialVersionUID = 0L; // Use LbSubsetSelector.newBuilder() to construct. private LbSubsetSelector(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private LbSubsetSelector() { keys_ = com.google.protobuf.LazyStringArrayList.EMPTY; fallbackPolicy_ = 0; fallbackKeysSubset_ = com.google.protobuf.LazyStringArrayList.EMPTY; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new LbSubsetSelector(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private LbSubsetSelector( 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(); if (!((mutable_bitField0_ & 0x00000001) != 0)) { keys_ = new com.google.protobuf.LazyStringArrayList(); mutable_bitField0_ |= 0x00000001; } keys_.add(s); break; } case 16: { int rawValue = input.readEnum(); fallbackPolicy_ = rawValue; break; } case 26: { java.lang.String s = input.readStringRequireUtf8(); if (!((mutable_bitField0_ & 0x00000002) != 0)) { fallbackKeysSubset_ = new com.google.protobuf.LazyStringArrayList(); mutable_bitField0_ |= 0x00000002; } fallbackKeysSubset_.add(s); break; } case 32: { singleHostPerSubset_ = input.readBool(); break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { if (((mutable_bitField0_ & 0x00000001) != 0)) { keys_ = keys_.getUnmodifiableView(); } if (((mutable_bitField0_ & 0x00000002) != 0)) { fallbackKeysSubset_ = fallbackKeysSubset_.getUnmodifiableView(); } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.Builder.class); } /** *
       * Allows to override top level fallback policy per selector.
       * 
* * Protobuf enum {@code envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy} */ public enum LbSubsetSelectorFallbackPolicy implements com.google.protobuf.ProtocolMessageEnum { /** *
         * If NOT_DEFINED top level config fallback policy is used instead.
         * 
* * NOT_DEFINED = 0; */ NOT_DEFINED(0), /** *
         * If NO_FALLBACK is selected, a result equivalent to no healthy hosts is reported.
         * 
* * NO_FALLBACK = 1; */ NO_FALLBACK(1), /** *
         * If ANY_ENDPOINT is selected, any cluster endpoint may be returned
         * (subject to policy, health checks, etc).
         * 
* * ANY_ENDPOINT = 2; */ ANY_ENDPOINT(2), /** *
         * If DEFAULT_SUBSET is selected, load balancing is performed over the
         * endpoints matching the values from the default_subset field.
         * 
* * DEFAULT_SUBSET = 3; */ DEFAULT_SUBSET(3), /** *
         * If KEYS_SUBSET is selected, subset selector matching is performed again with metadata
         * keys reduced to
         * :ref:`fallback_keys_subset<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.fallback_keys_subset>`.
         * It allows for a fallback to a different, less specific selector if some of the keys of
         * the selector are considered optional.
         * 
* * KEYS_SUBSET = 4; */ KEYS_SUBSET(4), UNRECOGNIZED(-1), ; /** *
         * If NOT_DEFINED top level config fallback policy is used instead.
         * 
* * NOT_DEFINED = 0; */ public static final int NOT_DEFINED_VALUE = 0; /** *
         * If NO_FALLBACK is selected, a result equivalent to no healthy hosts is reported.
         * 
* * NO_FALLBACK = 1; */ public static final int NO_FALLBACK_VALUE = 1; /** *
         * If ANY_ENDPOINT is selected, any cluster endpoint may be returned
         * (subject to policy, health checks, etc).
         * 
* * ANY_ENDPOINT = 2; */ public static final int ANY_ENDPOINT_VALUE = 2; /** *
         * If DEFAULT_SUBSET is selected, load balancing is performed over the
         * endpoints matching the values from the default_subset field.
         * 
* * DEFAULT_SUBSET = 3; */ public static final int DEFAULT_SUBSET_VALUE = 3; /** *
         * If KEYS_SUBSET is selected, subset selector matching is performed again with metadata
         * keys reduced to
         * :ref:`fallback_keys_subset<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.fallback_keys_subset>`.
         * It allows for a fallback to a different, less specific selector if some of the keys of
         * the selector are considered optional.
         * 
* * KEYS_SUBSET = 4; */ public static final int KEYS_SUBSET_VALUE = 4; 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 LbSubsetSelectorFallbackPolicy 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 LbSubsetSelectorFallbackPolicy forNumber(int value) { switch (value) { case 0: return NOT_DEFINED; case 1: return NO_FALLBACK; case 2: return ANY_ENDPOINT; case 3: return DEFAULT_SUBSET; case 4: return KEYS_SUBSET; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< LbSubsetSelectorFallbackPolicy> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { public LbSubsetSelectorFallbackPolicy findValueByNumber(int number) { return LbSubsetSelectorFallbackPolicy.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.getDescriptor().getEnumTypes().get(0); } private static final LbSubsetSelectorFallbackPolicy[] VALUES = values(); public static LbSubsetSelectorFallbackPolicy 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 LbSubsetSelectorFallbackPolicy(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy) } public static final int KEYS_FIELD_NUMBER = 1; private com.google.protobuf.LazyStringList keys_; /** *
       * List of keys to match with the weighted cluster metadata.
       * 
* * repeated string keys = 1; * @return A list containing the keys. */ public com.google.protobuf.ProtocolStringList getKeysList() { return keys_; } /** *
       * List of keys to match with the weighted cluster metadata.
       * 
* * repeated string keys = 1; * @return The count of keys. */ public int getKeysCount() { return keys_.size(); } /** *
       * List of keys to match with the weighted cluster metadata.
       * 
* * repeated string keys = 1; * @param index The index of the element to return. * @return The keys at the given index. */ public java.lang.String getKeys(int index) { return keys_.get(index); } /** *
       * List of keys to match with the weighted cluster metadata.
       * 
* * repeated string keys = 1; * @param index The index of the value to return. * @return The bytes of the keys at the given index. */ public com.google.protobuf.ByteString getKeysBytes(int index) { return keys_.getByteString(index); } public static final int SINGLE_HOST_PER_SUBSET_FIELD_NUMBER = 4; private boolean singleHostPerSubset_; /** *
       * Selects a mode of operation in which each subset has only one host. This mode uses the same rules for
       * choosing a host, but updating hosts is faster, especially for large numbers of hosts.
       * If a match is found to a host, that host will be used regardless of priority levels.
       * When this mode is enabled, configurations that contain more than one host with the same metadata value for the single key in ``keys``
       * will use only one of the hosts with the given key; no requests will be routed to the others. The cluster gauge
       * :ref:`lb_subsets_single_host_per_subset_duplicate<config_cluster_manager_cluster_stats_subset_lb>` indicates how many duplicates are
       * present in the current configuration.
       * 
* * bool single_host_per_subset = 4; * @return The singleHostPerSubset. */ @java.lang.Override public boolean getSingleHostPerSubset() { return singleHostPerSubset_; } public static final int FALLBACK_POLICY_FIELD_NUMBER = 2; private int fallbackPolicy_; /** *
       * The behavior used when no endpoint subset matches the selected route's
       * metadata.
       * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy fallback_policy = 2 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for fallbackPolicy. */ @java.lang.Override public int getFallbackPolicyValue() { return fallbackPolicy_; } /** *
       * The behavior used when no endpoint subset matches the selected route's
       * metadata.
       * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy fallback_policy = 2 [(.validate.rules) = { ... } * @return The fallbackPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy getFallbackPolicy() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy result = io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.valueOf(fallbackPolicy_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.UNRECOGNIZED : result; } public static final int FALLBACK_KEYS_SUBSET_FIELD_NUMBER = 3; private com.google.protobuf.LazyStringList fallbackKeysSubset_; /** *
       * Subset of
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
       * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
       * fallback policy.
       * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
       * For any other fallback policy the parameter is not used and should not be set.
       * Only values also present in
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
       * ``fallback_keys_subset`` cannot be equal to ``keys``.
       * 
* * repeated string fallback_keys_subset = 3; * @return A list containing the fallbackKeysSubset. */ public com.google.protobuf.ProtocolStringList getFallbackKeysSubsetList() { return fallbackKeysSubset_; } /** *
       * Subset of
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
       * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
       * fallback policy.
       * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
       * For any other fallback policy the parameter is not used and should not be set.
       * Only values also present in
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
       * ``fallback_keys_subset`` cannot be equal to ``keys``.
       * 
* * repeated string fallback_keys_subset = 3; * @return The count of fallbackKeysSubset. */ public int getFallbackKeysSubsetCount() { return fallbackKeysSubset_.size(); } /** *
       * Subset of
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
       * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
       * fallback policy.
       * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
       * For any other fallback policy the parameter is not used and should not be set.
       * Only values also present in
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
       * ``fallback_keys_subset`` cannot be equal to ``keys``.
       * 
* * repeated string fallback_keys_subset = 3; * @param index The index of the element to return. * @return The fallbackKeysSubset at the given index. */ public java.lang.String getFallbackKeysSubset(int index) { return fallbackKeysSubset_.get(index); } /** *
       * Subset of
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
       * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
       * fallback policy.
       * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
       * For any other fallback policy the parameter is not used and should not be set.
       * Only values also present in
       * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
       * ``fallback_keys_subset`` cannot be equal to ``keys``.
       * 
* * repeated string fallback_keys_subset = 3; * @param index The index of the value to return. * @return The bytes of the fallbackKeysSubset at the given index. */ public com.google.protobuf.ByteString getFallbackKeysSubsetBytes(int index) { return fallbackKeysSubset_.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 { for (int i = 0; i < keys_.size(); i++) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, keys_.getRaw(i)); } if (fallbackPolicy_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.NOT_DEFINED.getNumber()) { output.writeEnum(2, fallbackPolicy_); } for (int i = 0; i < fallbackKeysSubset_.size(); i++) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, fallbackKeysSubset_.getRaw(i)); } if (singleHostPerSubset_ != false) { output.writeBool(4, singleHostPerSubset_); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; { int dataSize = 0; for (int i = 0; i < keys_.size(); i++) { dataSize += computeStringSizeNoTag(keys_.getRaw(i)); } size += dataSize; size += 1 * getKeysList().size(); } if (fallbackPolicy_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.NOT_DEFINED.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(2, fallbackPolicy_); } { int dataSize = 0; for (int i = 0; i < fallbackKeysSubset_.size(); i++) { dataSize += computeStringSizeNoTag(fallbackKeysSubset_.getRaw(i)); } size += dataSize; size += 1 * getFallbackKeysSubsetList().size(); } if (singleHostPerSubset_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(4, singleHostPerSubset_); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector) obj; if (!getKeysList() .equals(other.getKeysList())) return false; if (getSingleHostPerSubset() != other.getSingleHostPerSubset()) return false; if (fallbackPolicy_ != other.fallbackPolicy_) return false; if (!getFallbackKeysSubsetList() .equals(other.getFallbackKeysSubsetList())) 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 (getKeysCount() > 0) { hash = (37 * hash) + KEYS_FIELD_NUMBER; hash = (53 * hash) + getKeysList().hashCode(); } hash = (37 * hash) + SINGLE_HOST_PER_SUBSET_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getSingleHostPerSubset()); hash = (37 * hash) + FALLBACK_POLICY_FIELD_NUMBER; hash = (53 * hash) + fallbackPolicy_; if (getFallbackKeysSubsetCount() > 0) { hash = (37 * hash) + FALLBACK_KEYS_SUBSET_FIELD_NUMBER; hash = (53 * hash) + getFallbackKeysSubsetList().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector 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; } /** *
       * Specifications for subsets.
       * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector) io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelectorOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.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(); keys_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000001); singleHostPerSubset_ = false; fallbackPolicy_ = 0; fallbackKeysSubset_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000002); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector(this); int from_bitField0_ = bitField0_; if (((bitField0_ & 0x00000001) != 0)) { keys_ = keys_.getUnmodifiableView(); bitField0_ = (bitField0_ & ~0x00000001); } result.keys_ = keys_; result.singleHostPerSubset_ = singleHostPerSubset_; result.fallbackPolicy_ = fallbackPolicy_; if (((bitField0_ & 0x00000002) != 0)) { fallbackKeysSubset_ = fallbackKeysSubset_.getUnmodifiableView(); bitField0_ = (bitField0_ & ~0x00000002); } result.fallbackKeysSubset_ = fallbackKeysSubset_; 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.getDefaultInstance()) return this; if (!other.keys_.isEmpty()) { if (keys_.isEmpty()) { keys_ = other.keys_; bitField0_ = (bitField0_ & ~0x00000001); } else { ensureKeysIsMutable(); keys_.addAll(other.keys_); } onChanged(); } if (other.getSingleHostPerSubset() != false) { setSingleHostPerSubset(other.getSingleHostPerSubset()); } if (other.fallbackPolicy_ != 0) { setFallbackPolicyValue(other.getFallbackPolicyValue()); } if (!other.fallbackKeysSubset_.isEmpty()) { if (fallbackKeysSubset_.isEmpty()) { fallbackKeysSubset_ = other.fallbackKeysSubset_; bitField0_ = (bitField0_ & ~0x00000002); } else { ensureFallbackKeysSubsetIsMutable(); fallbackKeysSubset_.addAll(other.fallbackKeysSubset_); } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int bitField0_; private com.google.protobuf.LazyStringList keys_ = com.google.protobuf.LazyStringArrayList.EMPTY; private void ensureKeysIsMutable() { if (!((bitField0_ & 0x00000001) != 0)) { keys_ = new com.google.protobuf.LazyStringArrayList(keys_); bitField0_ |= 0x00000001; } } /** *
         * List of keys to match with the weighted cluster metadata.
         * 
* * repeated string keys = 1; * @return A list containing the keys. */ public com.google.protobuf.ProtocolStringList getKeysList() { return keys_.getUnmodifiableView(); } /** *
         * List of keys to match with the weighted cluster metadata.
         * 
* * repeated string keys = 1; * @return The count of keys. */ public int getKeysCount() { return keys_.size(); } /** *
         * List of keys to match with the weighted cluster metadata.
         * 
* * repeated string keys = 1; * @param index The index of the element to return. * @return The keys at the given index. */ public java.lang.String getKeys(int index) { return keys_.get(index); } /** *
         * List of keys to match with the weighted cluster metadata.
         * 
* * repeated string keys = 1; * @param index The index of the value to return. * @return The bytes of the keys at the given index. */ public com.google.protobuf.ByteString getKeysBytes(int index) { return keys_.getByteString(index); } /** *
         * List of keys to match with the weighted cluster metadata.
         * 
* * repeated string keys = 1; * @param index The index to set the value at. * @param value The keys to set. * @return This builder for chaining. */ public Builder setKeys( int index, java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureKeysIsMutable(); keys_.set(index, value); onChanged(); return this; } /** *
         * List of keys to match with the weighted cluster metadata.
         * 
* * repeated string keys = 1; * @param value The keys to add. * @return This builder for chaining. */ public Builder addKeys( java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureKeysIsMutable(); keys_.add(value); onChanged(); return this; } /** *
         * List of keys to match with the weighted cluster metadata.
         * 
* * repeated string keys = 1; * @param values The keys to add. * @return This builder for chaining. */ public Builder addAllKeys( java.lang.Iterable values) { ensureKeysIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, keys_); onChanged(); return this; } /** *
         * List of keys to match with the weighted cluster metadata.
         * 
* * repeated string keys = 1; * @return This builder for chaining. */ public Builder clearKeys() { keys_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** *
         * List of keys to match with the weighted cluster metadata.
         * 
* * repeated string keys = 1; * @param value The bytes of the keys to add. * @return This builder for chaining. */ public Builder addKeysBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); ensureKeysIsMutable(); keys_.add(value); onChanged(); return this; } private boolean singleHostPerSubset_ ; /** *
         * Selects a mode of operation in which each subset has only one host. This mode uses the same rules for
         * choosing a host, but updating hosts is faster, especially for large numbers of hosts.
         * If a match is found to a host, that host will be used regardless of priority levels.
         * When this mode is enabled, configurations that contain more than one host with the same metadata value for the single key in ``keys``
         * will use only one of the hosts with the given key; no requests will be routed to the others. The cluster gauge
         * :ref:`lb_subsets_single_host_per_subset_duplicate<config_cluster_manager_cluster_stats_subset_lb>` indicates how many duplicates are
         * present in the current configuration.
         * 
* * bool single_host_per_subset = 4; * @return The singleHostPerSubset. */ @java.lang.Override public boolean getSingleHostPerSubset() { return singleHostPerSubset_; } /** *
         * Selects a mode of operation in which each subset has only one host. This mode uses the same rules for
         * choosing a host, but updating hosts is faster, especially for large numbers of hosts.
         * If a match is found to a host, that host will be used regardless of priority levels.
         * When this mode is enabled, configurations that contain more than one host with the same metadata value for the single key in ``keys``
         * will use only one of the hosts with the given key; no requests will be routed to the others. The cluster gauge
         * :ref:`lb_subsets_single_host_per_subset_duplicate<config_cluster_manager_cluster_stats_subset_lb>` indicates how many duplicates are
         * present in the current configuration.
         * 
* * bool single_host_per_subset = 4; * @param value The singleHostPerSubset to set. * @return This builder for chaining. */ public Builder setSingleHostPerSubset(boolean value) { singleHostPerSubset_ = value; onChanged(); return this; } /** *
         * Selects a mode of operation in which each subset has only one host. This mode uses the same rules for
         * choosing a host, but updating hosts is faster, especially for large numbers of hosts.
         * If a match is found to a host, that host will be used regardless of priority levels.
         * When this mode is enabled, configurations that contain more than one host with the same metadata value for the single key in ``keys``
         * will use only one of the hosts with the given key; no requests will be routed to the others. The cluster gauge
         * :ref:`lb_subsets_single_host_per_subset_duplicate<config_cluster_manager_cluster_stats_subset_lb>` indicates how many duplicates are
         * present in the current configuration.
         * 
* * bool single_host_per_subset = 4; * @return This builder for chaining. */ public Builder clearSingleHostPerSubset() { singleHostPerSubset_ = false; onChanged(); return this; } private int fallbackPolicy_ = 0; /** *
         * The behavior used when no endpoint subset matches the selected route's
         * metadata.
         * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy fallback_policy = 2 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for fallbackPolicy. */ @java.lang.Override public int getFallbackPolicyValue() { return fallbackPolicy_; } /** *
         * The behavior used when no endpoint subset matches the selected route's
         * metadata.
         * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy fallback_policy = 2 [(.validate.rules) = { ... } * @param value The enum numeric value on the wire for fallbackPolicy to set. * @return This builder for chaining. */ public Builder setFallbackPolicyValue(int value) { fallbackPolicy_ = value; onChanged(); return this; } /** *
         * The behavior used when no endpoint subset matches the selected route's
         * metadata.
         * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy fallback_policy = 2 [(.validate.rules) = { ... } * @return The fallbackPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy getFallbackPolicy() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy result = io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.valueOf(fallbackPolicy_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.UNRECOGNIZED : result; } /** *
         * The behavior used when no endpoint subset matches the selected route's
         * metadata.
         * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy fallback_policy = 2 [(.validate.rules) = { ... } * @param value The fallbackPolicy to set. * @return This builder for chaining. */ public Builder setFallbackPolicy(io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy value) { if (value == null) { throw new NullPointerException(); } fallbackPolicy_ = value.getNumber(); onChanged(); return this; } /** *
         * The behavior used when no endpoint subset matches the selected route's
         * metadata.
         * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy fallback_policy = 2 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearFallbackPolicy() { fallbackPolicy_ = 0; onChanged(); return this; } private com.google.protobuf.LazyStringList fallbackKeysSubset_ = com.google.protobuf.LazyStringArrayList.EMPTY; private void ensureFallbackKeysSubsetIsMutable() { if (!((bitField0_ & 0x00000002) != 0)) { fallbackKeysSubset_ = new com.google.protobuf.LazyStringArrayList(fallbackKeysSubset_); bitField0_ |= 0x00000002; } } /** *
         * Subset of
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
         * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
         * fallback policy.
         * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
         * For any other fallback policy the parameter is not used and should not be set.
         * Only values also present in
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
         * ``fallback_keys_subset`` cannot be equal to ``keys``.
         * 
* * repeated string fallback_keys_subset = 3; * @return A list containing the fallbackKeysSubset. */ public com.google.protobuf.ProtocolStringList getFallbackKeysSubsetList() { return fallbackKeysSubset_.getUnmodifiableView(); } /** *
         * Subset of
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
         * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
         * fallback policy.
         * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
         * For any other fallback policy the parameter is not used and should not be set.
         * Only values also present in
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
         * ``fallback_keys_subset`` cannot be equal to ``keys``.
         * 
* * repeated string fallback_keys_subset = 3; * @return The count of fallbackKeysSubset. */ public int getFallbackKeysSubsetCount() { return fallbackKeysSubset_.size(); } /** *
         * Subset of
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
         * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
         * fallback policy.
         * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
         * For any other fallback policy the parameter is not used and should not be set.
         * Only values also present in
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
         * ``fallback_keys_subset`` cannot be equal to ``keys``.
         * 
* * repeated string fallback_keys_subset = 3; * @param index The index of the element to return. * @return The fallbackKeysSubset at the given index. */ public java.lang.String getFallbackKeysSubset(int index) { return fallbackKeysSubset_.get(index); } /** *
         * Subset of
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
         * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
         * fallback policy.
         * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
         * For any other fallback policy the parameter is not used and should not be set.
         * Only values also present in
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
         * ``fallback_keys_subset`` cannot be equal to ``keys``.
         * 
* * repeated string fallback_keys_subset = 3; * @param index The index of the value to return. * @return The bytes of the fallbackKeysSubset at the given index. */ public com.google.protobuf.ByteString getFallbackKeysSubsetBytes(int index) { return fallbackKeysSubset_.getByteString(index); } /** *
         * Subset of
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
         * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
         * fallback policy.
         * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
         * For any other fallback policy the parameter is not used and should not be set.
         * Only values also present in
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
         * ``fallback_keys_subset`` cannot be equal to ``keys``.
         * 
* * repeated string fallback_keys_subset = 3; * @param index The index to set the value at. * @param value The fallbackKeysSubset to set. * @return This builder for chaining. */ public Builder setFallbackKeysSubset( int index, java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureFallbackKeysSubsetIsMutable(); fallbackKeysSubset_.set(index, value); onChanged(); return this; } /** *
         * Subset of
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
         * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
         * fallback policy.
         * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
         * For any other fallback policy the parameter is not used and should not be set.
         * Only values also present in
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
         * ``fallback_keys_subset`` cannot be equal to ``keys``.
         * 
* * repeated string fallback_keys_subset = 3; * @param value The fallbackKeysSubset to add. * @return This builder for chaining. */ public Builder addFallbackKeysSubset( java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureFallbackKeysSubsetIsMutable(); fallbackKeysSubset_.add(value); onChanged(); return this; } /** *
         * Subset of
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
         * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
         * fallback policy.
         * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
         * For any other fallback policy the parameter is not used and should not be set.
         * Only values also present in
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
         * ``fallback_keys_subset`` cannot be equal to ``keys``.
         * 
* * repeated string fallback_keys_subset = 3; * @param values The fallbackKeysSubset to add. * @return This builder for chaining. */ public Builder addAllFallbackKeysSubset( java.lang.Iterable values) { ensureFallbackKeysSubsetIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, fallbackKeysSubset_); onChanged(); return this; } /** *
         * Subset of
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
         * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
         * fallback policy.
         * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
         * For any other fallback policy the parameter is not used and should not be set.
         * Only values also present in
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
         * ``fallback_keys_subset`` cannot be equal to ``keys``.
         * 
* * repeated string fallback_keys_subset = 3; * @return This builder for chaining. */ public Builder clearFallbackKeysSubset() { fallbackKeysSubset_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } /** *
         * Subset of
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
         * :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
         * fallback policy.
         * It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
         * For any other fallback policy the parameter is not used and should not be set.
         * Only values also present in
         * :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
         * ``fallback_keys_subset`` cannot be equal to ``keys``.
         * 
* * repeated string fallback_keys_subset = 3; * @param value The bytes of the fallbackKeysSubset to add. * @return This builder for chaining. */ public Builder addFallbackKeysSubsetBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); ensureFallbackKeysSubsetIsMutable(); fallbackKeysSubset_.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:envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public LbSubsetSelector parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new LbSubsetSelector(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public static final int FALLBACK_POLICY_FIELD_NUMBER = 1; private int fallbackPolicy_; /** *
     * The behavior used when no endpoint subset matches the selected route's
     * metadata. The value defaults to
     * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for fallbackPolicy. */ @java.lang.Override public int getFallbackPolicyValue() { return fallbackPolicy_; } /** *
     * The behavior used when no endpoint subset matches the selected route's
     * metadata. The value defaults to
     * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... } * @return The fallbackPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy getFallbackPolicy() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy result = io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.valueOf(fallbackPolicy_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.UNRECOGNIZED : result; } public static final int DEFAULT_SUBSET_FIELD_NUMBER = 2; private com.google.protobuf.Struct defaultSubset_; /** *
     * Specifies the default subset of endpoints used during fallback if
     * fallback_policy is
     * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
     * Each field in default_subset is
     * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
     * namespace. It is valid for no hosts to match, in which case the behavior
     * is the same as a fallback_policy of
     * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
     * 
* * .google.protobuf.Struct default_subset = 2; * @return Whether the defaultSubset field is set. */ @java.lang.Override public boolean hasDefaultSubset() { return defaultSubset_ != null; } /** *
     * Specifies the default subset of endpoints used during fallback if
     * fallback_policy is
     * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
     * Each field in default_subset is
     * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
     * namespace. It is valid for no hosts to match, in which case the behavior
     * is the same as a fallback_policy of
     * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
     * 
* * .google.protobuf.Struct default_subset = 2; * @return The defaultSubset. */ @java.lang.Override public com.google.protobuf.Struct getDefaultSubset() { return defaultSubset_ == null ? com.google.protobuf.Struct.getDefaultInstance() : defaultSubset_; } /** *
     * Specifies the default subset of endpoints used during fallback if
     * fallback_policy is
     * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
     * Each field in default_subset is
     * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
     * namespace. It is valid for no hosts to match, in which case the behavior
     * is the same as a fallback_policy of
     * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
     * 
* * .google.protobuf.Struct default_subset = 2; */ @java.lang.Override public com.google.protobuf.StructOrBuilder getDefaultSubsetOrBuilder() { return getDefaultSubset(); } public static final int SUBSET_SELECTORS_FIELD_NUMBER = 3; private java.util.List subsetSelectors_; /** *
     * For each entry, LbEndpoint.Metadata's
     * ``envoy.lb`` namespace is traversed and a subset is created for each unique
     * combination of key and value. For example:
     * .. code-block:: json
     *   { "subset_selectors": [
     *       { "keys": [ "version" ] },
     *       { "keys": [ "stage", "hardware_type" ] }
     *   ]}
     * A subset is matched when the metadata from the selected route and
     * weighted cluster contains the same keys and values as the subset's
     * metadata. The same host may appear in multiple subsets.
     * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ @java.lang.Override public java.util.List getSubsetSelectorsList() { return subsetSelectors_; } /** *
     * For each entry, LbEndpoint.Metadata's
     * ``envoy.lb`` namespace is traversed and a subset is created for each unique
     * combination of key and value. For example:
     * .. code-block:: json
     *   { "subset_selectors": [
     *       { "keys": [ "version" ] },
     *       { "keys": [ "stage", "hardware_type" ] }
     *   ]}
     * A subset is matched when the metadata from the selected route and
     * weighted cluster contains the same keys and values as the subset's
     * metadata. The same host may appear in multiple subsets.
     * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ @java.lang.Override public java.util.List getSubsetSelectorsOrBuilderList() { return subsetSelectors_; } /** *
     * For each entry, LbEndpoint.Metadata's
     * ``envoy.lb`` namespace is traversed and a subset is created for each unique
     * combination of key and value. For example:
     * .. code-block:: json
     *   { "subset_selectors": [
     *       { "keys": [ "version" ] },
     *       { "keys": [ "stage", "hardware_type" ] }
     *   ]}
     * A subset is matched when the metadata from the selected route and
     * weighted cluster contains the same keys and values as the subset's
     * metadata. The same host may appear in multiple subsets.
     * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ @java.lang.Override public int getSubsetSelectorsCount() { return subsetSelectors_.size(); } /** *
     * For each entry, LbEndpoint.Metadata's
     * ``envoy.lb`` namespace is traversed and a subset is created for each unique
     * combination of key and value. For example:
     * .. code-block:: json
     *   { "subset_selectors": [
     *       { "keys": [ "version" ] },
     *       { "keys": [ "stage", "hardware_type" ] }
     *   ]}
     * A subset is matched when the metadata from the selected route and
     * weighted cluster contains the same keys and values as the subset's
     * metadata. The same host may appear in multiple subsets.
     * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector getSubsetSelectors(int index) { return subsetSelectors_.get(index); } /** *
     * For each entry, LbEndpoint.Metadata's
     * ``envoy.lb`` namespace is traversed and a subset is created for each unique
     * combination of key and value. For example:
     * .. code-block:: json
     *   { "subset_selectors": [
     *       { "keys": [ "version" ] },
     *       { "keys": [ "stage", "hardware_type" ] }
     *   ]}
     * A subset is matched when the metadata from the selected route and
     * weighted cluster contains the same keys and values as the subset's
     * metadata. The same host may appear in multiple subsets.
     * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelectorOrBuilder getSubsetSelectorsOrBuilder( int index) { return subsetSelectors_.get(index); } public static final int LOCALITY_WEIGHT_AWARE_FIELD_NUMBER = 4; private boolean localityWeightAware_; /** *
     * If true, routing to subsets will take into account the localities and locality weights of the
     * endpoints when making the routing decision.
     * There are some potential pitfalls associated with enabling this feature, as the resulting
     * traffic split after applying both a subset match and locality weights might be undesirable.
     * Consider for example a situation in which you have 50/50 split across two localities X/Y
     * which have 100 hosts each without subsetting. If the subset LB results in X having only 1
     * host selected but Y having 100, then a lot more load is being dumped on the single host in X
     * than originally anticipated in the load balancing assignment delivered via EDS.
     * 
* * bool locality_weight_aware = 4; * @return The localityWeightAware. */ @java.lang.Override public boolean getLocalityWeightAware() { return localityWeightAware_; } public static final int SCALE_LOCALITY_WEIGHT_FIELD_NUMBER = 5; private boolean scaleLocalityWeight_; /** *
     * When used with locality_weight_aware, scales the weight of each locality by the ratio
     * of hosts in the subset vs hosts in the original subset. This aims to even out the load
     * going to an individual locality if said locality is disproportionately affected by the
     * subset predicate.
     * 
* * bool scale_locality_weight = 5; * @return The scaleLocalityWeight. */ @java.lang.Override public boolean getScaleLocalityWeight() { return scaleLocalityWeight_; } public static final int PANIC_MODE_ANY_FIELD_NUMBER = 6; private boolean panicModeAny_; /** *
     * If true, when a fallback policy is configured and its corresponding subset fails to find
     * a host this will cause any host to be selected instead.
     * This is useful when using the default subset as the fallback policy, given the default
     * subset might become empty. With this option enabled, if that happens the LB will attempt
     * to select a host from the entire cluster.
     * 
* * bool panic_mode_any = 6; * @return The panicModeAny. */ @java.lang.Override public boolean getPanicModeAny() { return panicModeAny_; } public static final int LIST_AS_ANY_FIELD_NUMBER = 7; private boolean listAsAny_; /** *
     * If true, metadata specified for a metadata key will be matched against the corresponding
     * endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value
     * and any of the elements in the list matches the criteria.
     * 
* * bool list_as_any = 7; * @return The listAsAny. */ @java.lang.Override public boolean getListAsAny() { return listAsAny_; } public static final int METADATA_FALLBACK_POLICY_FIELD_NUMBER = 8; private int metadataFallbackPolicy_; /** *
     * Fallback mechanism that allows to try different route metadata until a host is found.
     * If load balancing process, including all its mechanisms (like
     * :ref:`fallback_policy<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.fallback_policy>`)
     * fails to select a host, this policy decides if and how the process is repeated using another metadata.
     * The value defaults to
     * :ref:`METADATA_NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for metadataFallbackPolicy. */ @java.lang.Override public int getMetadataFallbackPolicyValue() { return metadataFallbackPolicy_; } /** *
     * Fallback mechanism that allows to try different route metadata until a host is found.
     * If load balancing process, including all its mechanisms (like
     * :ref:`fallback_policy<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.fallback_policy>`)
     * fails to select a host, this policy decides if and how the process is repeated using another metadata.
     * The value defaults to
     * :ref:`METADATA_NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... } * @return The metadataFallbackPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy getMetadataFallbackPolicy() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy result = io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.valueOf(metadataFallbackPolicy_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.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 (fallbackPolicy_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK.getNumber()) { output.writeEnum(1, fallbackPolicy_); } if (defaultSubset_ != null) { output.writeMessage(2, getDefaultSubset()); } for (int i = 0; i < subsetSelectors_.size(); i++) { output.writeMessage(3, subsetSelectors_.get(i)); } if (localityWeightAware_ != false) { output.writeBool(4, localityWeightAware_); } if (scaleLocalityWeight_ != false) { output.writeBool(5, scaleLocalityWeight_); } if (panicModeAny_ != false) { output.writeBool(6, panicModeAny_); } if (listAsAny_ != false) { output.writeBool(7, listAsAny_); } if (metadataFallbackPolicy_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK.getNumber()) { output.writeEnum(8, metadataFallbackPolicy_); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (fallbackPolicy_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(1, fallbackPolicy_); } if (defaultSubset_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getDefaultSubset()); } for (int i = 0; i < subsetSelectors_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, subsetSelectors_.get(i)); } if (localityWeightAware_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(4, localityWeightAware_); } if (scaleLocalityWeight_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(5, scaleLocalityWeight_); } if (panicModeAny_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(6, panicModeAny_); } if (listAsAny_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(7, listAsAny_); } if (metadataFallbackPolicy_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(8, metadataFallbackPolicy_); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig) obj; if (fallbackPolicy_ != other.fallbackPolicy_) return false; if (hasDefaultSubset() != other.hasDefaultSubset()) return false; if (hasDefaultSubset()) { if (!getDefaultSubset() .equals(other.getDefaultSubset())) return false; } if (!getSubsetSelectorsList() .equals(other.getSubsetSelectorsList())) return false; if (getLocalityWeightAware() != other.getLocalityWeightAware()) return false; if (getScaleLocalityWeight() != other.getScaleLocalityWeight()) return false; if (getPanicModeAny() != other.getPanicModeAny()) return false; if (getListAsAny() != other.getListAsAny()) return false; if (metadataFallbackPolicy_ != other.metadataFallbackPolicy_) 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) + FALLBACK_POLICY_FIELD_NUMBER; hash = (53 * hash) + fallbackPolicy_; if (hasDefaultSubset()) { hash = (37 * hash) + DEFAULT_SUBSET_FIELD_NUMBER; hash = (53 * hash) + getDefaultSubset().hashCode(); } if (getSubsetSelectorsCount() > 0) { hash = (37 * hash) + SUBSET_SELECTORS_FIELD_NUMBER; hash = (53 * hash) + getSubsetSelectorsList().hashCode(); } hash = (37 * hash) + LOCALITY_WEIGHT_AWARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getLocalityWeightAware()); hash = (37 * hash) + SCALE_LOCALITY_WEIGHT_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getScaleLocalityWeight()); hash = (37 * hash) + PANIC_MODE_ANY_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getPanicModeAny()); hash = (37 * hash) + LIST_AS_ANY_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getListAsAny()); hash = (37 * hash) + METADATA_FALLBACK_POLICY_FIELD_NUMBER; hash = (53 * hash) + metadataFallbackPolicy_; hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig 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; } /** *
     * Optionally divide the endpoints in this cluster into subsets defined by
     * endpoint metadata and selected by route and weighted cluster metadata.
     * [#next-free-field: 9]
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.LbSubsetConfig} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.LbSubsetConfig) io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LbSubsetConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LbSubsetConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getSubsetSelectorsFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); fallbackPolicy_ = 0; if (defaultSubsetBuilder_ == null) { defaultSubset_ = null; } else { defaultSubset_ = null; defaultSubsetBuilder_ = null; } if (subsetSelectorsBuilder_ == null) { subsetSelectors_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); } else { subsetSelectorsBuilder_.clear(); } localityWeightAware_ = false; scaleLocalityWeight_ = false; panicModeAny_ = false; listAsAny_ = false; metadataFallbackPolicy_ = 0; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LbSubsetConfig_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig(this); int from_bitField0_ = bitField0_; result.fallbackPolicy_ = fallbackPolicy_; if (defaultSubsetBuilder_ == null) { result.defaultSubset_ = defaultSubset_; } else { result.defaultSubset_ = defaultSubsetBuilder_.build(); } if (subsetSelectorsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { subsetSelectors_ = java.util.Collections.unmodifiableList(subsetSelectors_); bitField0_ = (bitField0_ & ~0x00000001); } result.subsetSelectors_ = subsetSelectors_; } else { result.subsetSelectors_ = subsetSelectorsBuilder_.build(); } result.localityWeightAware_ = localityWeightAware_; result.scaleLocalityWeight_ = scaleLocalityWeight_; result.panicModeAny_ = panicModeAny_; result.listAsAny_ = listAsAny_; result.metadataFallbackPolicy_ = metadataFallbackPolicy_; 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.getDefaultInstance()) return this; if (other.fallbackPolicy_ != 0) { setFallbackPolicyValue(other.getFallbackPolicyValue()); } if (other.hasDefaultSubset()) { mergeDefaultSubset(other.getDefaultSubset()); } if (subsetSelectorsBuilder_ == null) { if (!other.subsetSelectors_.isEmpty()) { if (subsetSelectors_.isEmpty()) { subsetSelectors_ = other.subsetSelectors_; bitField0_ = (bitField0_ & ~0x00000001); } else { ensureSubsetSelectorsIsMutable(); subsetSelectors_.addAll(other.subsetSelectors_); } onChanged(); } } else { if (!other.subsetSelectors_.isEmpty()) { if (subsetSelectorsBuilder_.isEmpty()) { subsetSelectorsBuilder_.dispose(); subsetSelectorsBuilder_ = null; subsetSelectors_ = other.subsetSelectors_; bitField0_ = (bitField0_ & ~0x00000001); subsetSelectorsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSubsetSelectorsFieldBuilder() : null; } else { subsetSelectorsBuilder_.addAllMessages(other.subsetSelectors_); } } } if (other.getLocalityWeightAware() != false) { setLocalityWeightAware(other.getLocalityWeightAware()); } if (other.getScaleLocalityWeight() != false) { setScaleLocalityWeight(other.getScaleLocalityWeight()); } if (other.getPanicModeAny() != false) { setPanicModeAny(other.getPanicModeAny()); } if (other.getListAsAny() != false) { setListAsAny(other.getListAsAny()); } if (other.metadataFallbackPolicy_ != 0) { setMetadataFallbackPolicyValue(other.getMetadataFallbackPolicyValue()); } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int bitField0_; private int fallbackPolicy_ = 0; /** *
       * The behavior used when no endpoint subset matches the selected route's
       * metadata. The value defaults to
       * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
       * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for fallbackPolicy. */ @java.lang.Override public int getFallbackPolicyValue() { return fallbackPolicy_; } /** *
       * The behavior used when no endpoint subset matches the selected route's
       * metadata. The value defaults to
       * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
       * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... } * @param value The enum numeric value on the wire for fallbackPolicy to set. * @return This builder for chaining. */ public Builder setFallbackPolicyValue(int value) { fallbackPolicy_ = value; onChanged(); return this; } /** *
       * The behavior used when no endpoint subset matches the selected route's
       * metadata. The value defaults to
       * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
       * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... } * @return The fallbackPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy getFallbackPolicy() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy result = io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.valueOf(fallbackPolicy_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.UNRECOGNIZED : result; } /** *
       * The behavior used when no endpoint subset matches the selected route's
       * metadata. The value defaults to
       * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
       * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... } * @param value The fallbackPolicy to set. * @return This builder for chaining. */ public Builder setFallbackPolicy(io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy value) { if (value == null) { throw new NullPointerException(); } fallbackPolicy_ = value.getNumber(); onChanged(); return this; } /** *
       * The behavior used when no endpoint subset matches the selected route's
       * metadata. The value defaults to
       * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
       * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearFallbackPolicy() { fallbackPolicy_ = 0; onChanged(); return this; } private com.google.protobuf.Struct defaultSubset_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> defaultSubsetBuilder_; /** *
       * Specifies the default subset of endpoints used during fallback if
       * fallback_policy is
       * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
       * Each field in default_subset is
       * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
       * namespace. It is valid for no hosts to match, in which case the behavior
       * is the same as a fallback_policy of
       * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
       * 
* * .google.protobuf.Struct default_subset = 2; * @return Whether the defaultSubset field is set. */ public boolean hasDefaultSubset() { return defaultSubsetBuilder_ != null || defaultSubset_ != null; } /** *
       * Specifies the default subset of endpoints used during fallback if
       * fallback_policy is
       * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
       * Each field in default_subset is
       * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
       * namespace. It is valid for no hosts to match, in which case the behavior
       * is the same as a fallback_policy of
       * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
       * 
* * .google.protobuf.Struct default_subset = 2; * @return The defaultSubset. */ public com.google.protobuf.Struct getDefaultSubset() { if (defaultSubsetBuilder_ == null) { return defaultSubset_ == null ? com.google.protobuf.Struct.getDefaultInstance() : defaultSubset_; } else { return defaultSubsetBuilder_.getMessage(); } } /** *
       * Specifies the default subset of endpoints used during fallback if
       * fallback_policy is
       * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
       * Each field in default_subset is
       * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
       * namespace. It is valid for no hosts to match, in which case the behavior
       * is the same as a fallback_policy of
       * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
       * 
* * .google.protobuf.Struct default_subset = 2; */ public Builder setDefaultSubset(com.google.protobuf.Struct value) { if (defaultSubsetBuilder_ == null) { if (value == null) { throw new NullPointerException(); } defaultSubset_ = value; onChanged(); } else { defaultSubsetBuilder_.setMessage(value); } return this; } /** *
       * Specifies the default subset of endpoints used during fallback if
       * fallback_policy is
       * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
       * Each field in default_subset is
       * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
       * namespace. It is valid for no hosts to match, in which case the behavior
       * is the same as a fallback_policy of
       * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
       * 
* * .google.protobuf.Struct default_subset = 2; */ public Builder setDefaultSubset( com.google.protobuf.Struct.Builder builderForValue) { if (defaultSubsetBuilder_ == null) { defaultSubset_ = builderForValue.build(); onChanged(); } else { defaultSubsetBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Specifies the default subset of endpoints used during fallback if
       * fallback_policy is
       * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
       * Each field in default_subset is
       * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
       * namespace. It is valid for no hosts to match, in which case the behavior
       * is the same as a fallback_policy of
       * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
       * 
* * .google.protobuf.Struct default_subset = 2; */ public Builder mergeDefaultSubset(com.google.protobuf.Struct value) { if (defaultSubsetBuilder_ == null) { if (defaultSubset_ != null) { defaultSubset_ = com.google.protobuf.Struct.newBuilder(defaultSubset_).mergeFrom(value).buildPartial(); } else { defaultSubset_ = value; } onChanged(); } else { defaultSubsetBuilder_.mergeFrom(value); } return this; } /** *
       * Specifies the default subset of endpoints used during fallback if
       * fallback_policy is
       * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
       * Each field in default_subset is
       * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
       * namespace. It is valid for no hosts to match, in which case the behavior
       * is the same as a fallback_policy of
       * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
       * 
* * .google.protobuf.Struct default_subset = 2; */ public Builder clearDefaultSubset() { if (defaultSubsetBuilder_ == null) { defaultSubset_ = null; onChanged(); } else { defaultSubset_ = null; defaultSubsetBuilder_ = null; } return this; } /** *
       * Specifies the default subset of endpoints used during fallback if
       * fallback_policy is
       * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
       * Each field in default_subset is
       * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
       * namespace. It is valid for no hosts to match, in which case the behavior
       * is the same as a fallback_policy of
       * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
       * 
* * .google.protobuf.Struct default_subset = 2; */ public com.google.protobuf.Struct.Builder getDefaultSubsetBuilder() { onChanged(); return getDefaultSubsetFieldBuilder().getBuilder(); } /** *
       * Specifies the default subset of endpoints used during fallback if
       * fallback_policy is
       * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
       * Each field in default_subset is
       * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
       * namespace. It is valid for no hosts to match, in which case the behavior
       * is the same as a fallback_policy of
       * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
       * 
* * .google.protobuf.Struct default_subset = 2; */ public com.google.protobuf.StructOrBuilder getDefaultSubsetOrBuilder() { if (defaultSubsetBuilder_ != null) { return defaultSubsetBuilder_.getMessageOrBuilder(); } else { return defaultSubset_ == null ? com.google.protobuf.Struct.getDefaultInstance() : defaultSubset_; } } /** *
       * Specifies the default subset of endpoints used during fallback if
       * fallback_policy is
       * :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
       * Each field in default_subset is
       * compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
       * namespace. It is valid for no hosts to match, in which case the behavior
       * is the same as a fallback_policy of
       * :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
       * 
* * .google.protobuf.Struct default_subset = 2; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> getDefaultSubsetFieldBuilder() { if (defaultSubsetBuilder_ == null) { defaultSubsetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder>( getDefaultSubset(), getParentForChildren(), isClean()); defaultSubset_ = null; } return defaultSubsetBuilder_; } private java.util.List subsetSelectors_ = java.util.Collections.emptyList(); private void ensureSubsetSelectorsIsMutable() { if (!((bitField0_ & 0x00000001) != 0)) { subsetSelectors_ = new java.util.ArrayList(subsetSelectors_); bitField0_ |= 0x00000001; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelectorOrBuilder> subsetSelectorsBuilder_; /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public java.util.List getSubsetSelectorsList() { if (subsetSelectorsBuilder_ == null) { return java.util.Collections.unmodifiableList(subsetSelectors_); } else { return subsetSelectorsBuilder_.getMessageList(); } } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public int getSubsetSelectorsCount() { if (subsetSelectorsBuilder_ == null) { return subsetSelectors_.size(); } else { return subsetSelectorsBuilder_.getCount(); } } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector getSubsetSelectors(int index) { if (subsetSelectorsBuilder_ == null) { return subsetSelectors_.get(index); } else { return subsetSelectorsBuilder_.getMessage(index); } } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public Builder setSubsetSelectors( int index, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector value) { if (subsetSelectorsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureSubsetSelectorsIsMutable(); subsetSelectors_.set(index, value); onChanged(); } else { subsetSelectorsBuilder_.setMessage(index, value); } return this; } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public Builder setSubsetSelectors( int index, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.Builder builderForValue) { if (subsetSelectorsBuilder_ == null) { ensureSubsetSelectorsIsMutable(); subsetSelectors_.set(index, builderForValue.build()); onChanged(); } else { subsetSelectorsBuilder_.setMessage(index, builderForValue.build()); } return this; } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public Builder addSubsetSelectors(io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector value) { if (subsetSelectorsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureSubsetSelectorsIsMutable(); subsetSelectors_.add(value); onChanged(); } else { subsetSelectorsBuilder_.addMessage(value); } return this; } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public Builder addSubsetSelectors( int index, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector value) { if (subsetSelectorsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureSubsetSelectorsIsMutable(); subsetSelectors_.add(index, value); onChanged(); } else { subsetSelectorsBuilder_.addMessage(index, value); } return this; } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public Builder addSubsetSelectors( io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.Builder builderForValue) { if (subsetSelectorsBuilder_ == null) { ensureSubsetSelectorsIsMutable(); subsetSelectors_.add(builderForValue.build()); onChanged(); } else { subsetSelectorsBuilder_.addMessage(builderForValue.build()); } return this; } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public Builder addSubsetSelectors( int index, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.Builder builderForValue) { if (subsetSelectorsBuilder_ == null) { ensureSubsetSelectorsIsMutable(); subsetSelectors_.add(index, builderForValue.build()); onChanged(); } else { subsetSelectorsBuilder_.addMessage(index, builderForValue.build()); } return this; } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public Builder addAllSubsetSelectors( java.lang.Iterable values) { if (subsetSelectorsBuilder_ == null) { ensureSubsetSelectorsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, subsetSelectors_); onChanged(); } else { subsetSelectorsBuilder_.addAllMessages(values); } return this; } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public Builder clearSubsetSelectors() { if (subsetSelectorsBuilder_ == null) { subsetSelectors_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); } else { subsetSelectorsBuilder_.clear(); } return this; } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public Builder removeSubsetSelectors(int index) { if (subsetSelectorsBuilder_ == null) { ensureSubsetSelectorsIsMutable(); subsetSelectors_.remove(index); onChanged(); } else { subsetSelectorsBuilder_.remove(index); } return this; } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.Builder getSubsetSelectorsBuilder( int index) { return getSubsetSelectorsFieldBuilder().getBuilder(index); } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelectorOrBuilder getSubsetSelectorsOrBuilder( int index) { if (subsetSelectorsBuilder_ == null) { return subsetSelectors_.get(index); } else { return subsetSelectorsBuilder_.getMessageOrBuilder(index); } } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public java.util.List getSubsetSelectorsOrBuilderList() { if (subsetSelectorsBuilder_ != null) { return subsetSelectorsBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(subsetSelectors_); } } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.Builder addSubsetSelectorsBuilder() { return getSubsetSelectorsFieldBuilder().addBuilder( io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.getDefaultInstance()); } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.Builder addSubsetSelectorsBuilder( int index) { return getSubsetSelectorsFieldBuilder().addBuilder( index, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.getDefaultInstance()); } /** *
       * For each entry, LbEndpoint.Metadata's
       * ``envoy.lb`` namespace is traversed and a subset is created for each unique
       * combination of key and value. For example:
       * .. code-block:: json
       *   { "subset_selectors": [
       *       { "keys": [ "version" ] },
       *       { "keys": [ "stage", "hardware_type" ] }
       *   ]}
       * A subset is matched when the metadata from the selected route and
       * weighted cluster contains the same keys and values as the subset's
       * metadata. The same host may appear in multiple subsets.
       * 
* * repeated .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector subset_selectors = 3; */ public java.util.List getSubsetSelectorsBuilderList() { return getSubsetSelectorsFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelectorOrBuilder> getSubsetSelectorsFieldBuilder() { if (subsetSelectorsBuilder_ == null) { subsetSelectorsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelectorOrBuilder>( subsetSelectors_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); subsetSelectors_ = null; } return subsetSelectorsBuilder_; } private boolean localityWeightAware_ ; /** *
       * If true, routing to subsets will take into account the localities and locality weights of the
       * endpoints when making the routing decision.
       * There are some potential pitfalls associated with enabling this feature, as the resulting
       * traffic split after applying both a subset match and locality weights might be undesirable.
       * Consider for example a situation in which you have 50/50 split across two localities X/Y
       * which have 100 hosts each without subsetting. If the subset LB results in X having only 1
       * host selected but Y having 100, then a lot more load is being dumped on the single host in X
       * than originally anticipated in the load balancing assignment delivered via EDS.
       * 
* * bool locality_weight_aware = 4; * @return The localityWeightAware. */ @java.lang.Override public boolean getLocalityWeightAware() { return localityWeightAware_; } /** *
       * If true, routing to subsets will take into account the localities and locality weights of the
       * endpoints when making the routing decision.
       * There are some potential pitfalls associated with enabling this feature, as the resulting
       * traffic split after applying both a subset match and locality weights might be undesirable.
       * Consider for example a situation in which you have 50/50 split across two localities X/Y
       * which have 100 hosts each without subsetting. If the subset LB results in X having only 1
       * host selected but Y having 100, then a lot more load is being dumped on the single host in X
       * than originally anticipated in the load balancing assignment delivered via EDS.
       * 
* * bool locality_weight_aware = 4; * @param value The localityWeightAware to set. * @return This builder for chaining. */ public Builder setLocalityWeightAware(boolean value) { localityWeightAware_ = value; onChanged(); return this; } /** *
       * If true, routing to subsets will take into account the localities and locality weights of the
       * endpoints when making the routing decision.
       * There are some potential pitfalls associated with enabling this feature, as the resulting
       * traffic split after applying both a subset match and locality weights might be undesirable.
       * Consider for example a situation in which you have 50/50 split across two localities X/Y
       * which have 100 hosts each without subsetting. If the subset LB results in X having only 1
       * host selected but Y having 100, then a lot more load is being dumped on the single host in X
       * than originally anticipated in the load balancing assignment delivered via EDS.
       * 
* * bool locality_weight_aware = 4; * @return This builder for chaining. */ public Builder clearLocalityWeightAware() { localityWeightAware_ = false; onChanged(); return this; } private boolean scaleLocalityWeight_ ; /** *
       * When used with locality_weight_aware, scales the weight of each locality by the ratio
       * of hosts in the subset vs hosts in the original subset. This aims to even out the load
       * going to an individual locality if said locality is disproportionately affected by the
       * subset predicate.
       * 
* * bool scale_locality_weight = 5; * @return The scaleLocalityWeight. */ @java.lang.Override public boolean getScaleLocalityWeight() { return scaleLocalityWeight_; } /** *
       * When used with locality_weight_aware, scales the weight of each locality by the ratio
       * of hosts in the subset vs hosts in the original subset. This aims to even out the load
       * going to an individual locality if said locality is disproportionately affected by the
       * subset predicate.
       * 
* * bool scale_locality_weight = 5; * @param value The scaleLocalityWeight to set. * @return This builder for chaining. */ public Builder setScaleLocalityWeight(boolean value) { scaleLocalityWeight_ = value; onChanged(); return this; } /** *
       * When used with locality_weight_aware, scales the weight of each locality by the ratio
       * of hosts in the subset vs hosts in the original subset. This aims to even out the load
       * going to an individual locality if said locality is disproportionately affected by the
       * subset predicate.
       * 
* * bool scale_locality_weight = 5; * @return This builder for chaining. */ public Builder clearScaleLocalityWeight() { scaleLocalityWeight_ = false; onChanged(); return this; } private boolean panicModeAny_ ; /** *
       * If true, when a fallback policy is configured and its corresponding subset fails to find
       * a host this will cause any host to be selected instead.
       * This is useful when using the default subset as the fallback policy, given the default
       * subset might become empty. With this option enabled, if that happens the LB will attempt
       * to select a host from the entire cluster.
       * 
* * bool panic_mode_any = 6; * @return The panicModeAny. */ @java.lang.Override public boolean getPanicModeAny() { return panicModeAny_; } /** *
       * If true, when a fallback policy is configured and its corresponding subset fails to find
       * a host this will cause any host to be selected instead.
       * This is useful when using the default subset as the fallback policy, given the default
       * subset might become empty. With this option enabled, if that happens the LB will attempt
       * to select a host from the entire cluster.
       * 
* * bool panic_mode_any = 6; * @param value The panicModeAny to set. * @return This builder for chaining. */ public Builder setPanicModeAny(boolean value) { panicModeAny_ = value; onChanged(); return this; } /** *
       * If true, when a fallback policy is configured and its corresponding subset fails to find
       * a host this will cause any host to be selected instead.
       * This is useful when using the default subset as the fallback policy, given the default
       * subset might become empty. With this option enabled, if that happens the LB will attempt
       * to select a host from the entire cluster.
       * 
* * bool panic_mode_any = 6; * @return This builder for chaining. */ public Builder clearPanicModeAny() { panicModeAny_ = false; onChanged(); return this; } private boolean listAsAny_ ; /** *
       * If true, metadata specified for a metadata key will be matched against the corresponding
       * endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value
       * and any of the elements in the list matches the criteria.
       * 
* * bool list_as_any = 7; * @return The listAsAny. */ @java.lang.Override public boolean getListAsAny() { return listAsAny_; } /** *
       * If true, metadata specified for a metadata key will be matched against the corresponding
       * endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value
       * and any of the elements in the list matches the criteria.
       * 
* * bool list_as_any = 7; * @param value The listAsAny to set. * @return This builder for chaining. */ public Builder setListAsAny(boolean value) { listAsAny_ = value; onChanged(); return this; } /** *
       * If true, metadata specified for a metadata key will be matched against the corresponding
       * endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value
       * and any of the elements in the list matches the criteria.
       * 
* * bool list_as_any = 7; * @return This builder for chaining. */ public Builder clearListAsAny() { listAsAny_ = false; onChanged(); return this; } private int metadataFallbackPolicy_ = 0; /** *
       * Fallback mechanism that allows to try different route metadata until a host is found.
       * If load balancing process, including all its mechanisms (like
       * :ref:`fallback_policy<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.fallback_policy>`)
       * fails to select a host, this policy decides if and how the process is repeated using another metadata.
       * The value defaults to
       * :ref:`METADATA_NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
       * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for metadataFallbackPolicy. */ @java.lang.Override public int getMetadataFallbackPolicyValue() { return metadataFallbackPolicy_; } /** *
       * Fallback mechanism that allows to try different route metadata until a host is found.
       * If load balancing process, including all its mechanisms (like
       * :ref:`fallback_policy<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.fallback_policy>`)
       * fails to select a host, this policy decides if and how the process is repeated using another metadata.
       * The value defaults to
       * :ref:`METADATA_NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
       * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... } * @param value The enum numeric value on the wire for metadataFallbackPolicy to set. * @return This builder for chaining. */ public Builder setMetadataFallbackPolicyValue(int value) { metadataFallbackPolicy_ = value; onChanged(); return this; } /** *
       * Fallback mechanism that allows to try different route metadata until a host is found.
       * If load balancing process, including all its mechanisms (like
       * :ref:`fallback_policy<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.fallback_policy>`)
       * fails to select a host, this policy decides if and how the process is repeated using another metadata.
       * The value defaults to
       * :ref:`METADATA_NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
       * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... } * @return The metadataFallbackPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy getMetadataFallbackPolicy() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy result = io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.valueOf(metadataFallbackPolicy_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.UNRECOGNIZED : result; } /** *
       * Fallback mechanism that allows to try different route metadata until a host is found.
       * If load balancing process, including all its mechanisms (like
       * :ref:`fallback_policy<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.fallback_policy>`)
       * fails to select a host, this policy decides if and how the process is repeated using another metadata.
       * The value defaults to
       * :ref:`METADATA_NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
       * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... } * @param value The metadataFallbackPolicy to set. * @return This builder for chaining. */ public Builder setMetadataFallbackPolicy(io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy value) { if (value == null) { throw new NullPointerException(); } metadataFallbackPolicy_ = value.getNumber(); onChanged(); return this; } /** *
       * Fallback mechanism that allows to try different route metadata until a host is found.
       * If load balancing process, including all its mechanisms (like
       * :ref:`fallback_policy<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.fallback_policy>`)
       * fails to select a host, this policy decides if and how the process is repeated using another metadata.
       * The value defaults to
       * :ref:`METADATA_NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
       * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearMetadataFallbackPolicy() { metadataFallbackPolicy_ = 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:envoy.config.cluster.v3.Cluster.LbSubsetConfig) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.LbSubsetConfig) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public LbSubsetConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new LbSubsetConfig(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface SlowStartConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.SlowStartConfig) com.google.protobuf.MessageOrBuilder { /** *
     * Represents the size of slow start window.
     * If set, the newly created host remains in slow start mode starting from its creation time
     * for the duration of slow start window.
     * 
* * .google.protobuf.Duration slow_start_window = 1; * @return Whether the slowStartWindow field is set. */ boolean hasSlowStartWindow(); /** *
     * Represents the size of slow start window.
     * If set, the newly created host remains in slow start mode starting from its creation time
     * for the duration of slow start window.
     * 
* * .google.protobuf.Duration slow_start_window = 1; * @return The slowStartWindow. */ com.google.protobuf.Duration getSlowStartWindow(); /** *
     * Represents the size of slow start window.
     * If set, the newly created host remains in slow start mode starting from its creation time
     * for the duration of slow start window.
     * 
* * .google.protobuf.Duration slow_start_window = 1; */ com.google.protobuf.DurationOrBuilder getSlowStartWindowOrBuilder(); /** *
     * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
     * so that endpoint would get linearly increasing amount of traffic.
     * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
     * The value of aggression parameter should be greater than 0.0.
     * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
     * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
     * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
     * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
     * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
     * Once host exits slow start, time_factor and aggression no longer affect its weight.
     * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; * @return Whether the aggression field is set. */ boolean hasAggression(); /** *
     * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
     * so that endpoint would get linearly increasing amount of traffic.
     * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
     * The value of aggression parameter should be greater than 0.0.
     * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
     * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
     * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
     * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
     * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
     * Once host exits slow start, time_factor and aggression no longer affect its weight.
     * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; * @return The aggression. */ io.envoyproxy.envoy.config.core.v3.RuntimeDouble getAggression(); /** *
     * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
     * so that endpoint would get linearly increasing amount of traffic.
     * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
     * The value of aggression parameter should be greater than 0.0.
     * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
     * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
     * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
     * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
     * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
     * Once host exits slow start, time_factor and aggression no longer affect its weight.
     * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; */ io.envoyproxy.envoy.config.core.v3.RuntimeDoubleOrBuilder getAggressionOrBuilder(); /** *
     * Configures the minimum percentage of origin weight that avoids too small new weight,
     * which may cause endpoints in slow start mode receive no traffic in slow start window.
     * If not specified, the default is 10%.
     * 
* * .envoy.type.v3.Percent min_weight_percent = 3; * @return Whether the minWeightPercent field is set. */ boolean hasMinWeightPercent(); /** *
     * Configures the minimum percentage of origin weight that avoids too small new weight,
     * which may cause endpoints in slow start mode receive no traffic in slow start window.
     * If not specified, the default is 10%.
     * 
* * .envoy.type.v3.Percent min_weight_percent = 3; * @return The minWeightPercent. */ io.envoyproxy.envoy.type.v3.Percent getMinWeightPercent(); /** *
     * Configures the minimum percentage of origin weight that avoids too small new weight,
     * which may cause endpoints in slow start mode receive no traffic in slow start window.
     * If not specified, the default is 10%.
     * 
* * .envoy.type.v3.Percent min_weight_percent = 3; */ io.envoyproxy.envoy.type.v3.PercentOrBuilder getMinWeightPercentOrBuilder(); } /** *
   * Configuration for :ref:`slow start mode <arch_overview_load_balancing_slow_start>`.
   * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.SlowStartConfig} */ public static final class SlowStartConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.SlowStartConfig) SlowStartConfigOrBuilder { private static final long serialVersionUID = 0L; // Use SlowStartConfig.newBuilder() to construct. private SlowStartConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private SlowStartConfig() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new SlowStartConfig(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private SlowStartConfig( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { com.google.protobuf.Duration.Builder subBuilder = null; if (slowStartWindow_ != null) { subBuilder = slowStartWindow_.toBuilder(); } slowStartWindow_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(slowStartWindow_); slowStartWindow_ = subBuilder.buildPartial(); } break; } case 18: { io.envoyproxy.envoy.config.core.v3.RuntimeDouble.Builder subBuilder = null; if (aggression_ != null) { subBuilder = aggression_.toBuilder(); } aggression_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.RuntimeDouble.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(aggression_); aggression_ = subBuilder.buildPartial(); } break; } case 26: { io.envoyproxy.envoy.type.v3.Percent.Builder subBuilder = null; if (minWeightPercent_ != null) { subBuilder = minWeightPercent_.toBuilder(); } minWeightPercent_ = input.readMessage(io.envoyproxy.envoy.type.v3.Percent.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(minWeightPercent_); minWeightPercent_ = subBuilder.buildPartial(); } break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_SlowStartConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_SlowStartConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.Builder.class); } public static final int SLOW_START_WINDOW_FIELD_NUMBER = 1; private com.google.protobuf.Duration slowStartWindow_; /** *
     * Represents the size of slow start window.
     * If set, the newly created host remains in slow start mode starting from its creation time
     * for the duration of slow start window.
     * 
* * .google.protobuf.Duration slow_start_window = 1; * @return Whether the slowStartWindow field is set. */ @java.lang.Override public boolean hasSlowStartWindow() { return slowStartWindow_ != null; } /** *
     * Represents the size of slow start window.
     * If set, the newly created host remains in slow start mode starting from its creation time
     * for the duration of slow start window.
     * 
* * .google.protobuf.Duration slow_start_window = 1; * @return The slowStartWindow. */ @java.lang.Override public com.google.protobuf.Duration getSlowStartWindow() { return slowStartWindow_ == null ? com.google.protobuf.Duration.getDefaultInstance() : slowStartWindow_; } /** *
     * Represents the size of slow start window.
     * If set, the newly created host remains in slow start mode starting from its creation time
     * for the duration of slow start window.
     * 
* * .google.protobuf.Duration slow_start_window = 1; */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getSlowStartWindowOrBuilder() { return getSlowStartWindow(); } public static final int AGGRESSION_FIELD_NUMBER = 2; private io.envoyproxy.envoy.config.core.v3.RuntimeDouble aggression_; /** *
     * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
     * so that endpoint would get linearly increasing amount of traffic.
     * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
     * The value of aggression parameter should be greater than 0.0.
     * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
     * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
     * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
     * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
     * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
     * Once host exits slow start, time_factor and aggression no longer affect its weight.
     * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; * @return Whether the aggression field is set. */ @java.lang.Override public boolean hasAggression() { return aggression_ != null; } /** *
     * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
     * so that endpoint would get linearly increasing amount of traffic.
     * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
     * The value of aggression parameter should be greater than 0.0.
     * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
     * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
     * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
     * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
     * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
     * Once host exits slow start, time_factor and aggression no longer affect its weight.
     * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; * @return The aggression. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.RuntimeDouble getAggression() { return aggression_ == null ? io.envoyproxy.envoy.config.core.v3.RuntimeDouble.getDefaultInstance() : aggression_; } /** *
     * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
     * so that endpoint would get linearly increasing amount of traffic.
     * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
     * The value of aggression parameter should be greater than 0.0.
     * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
     * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
     * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
     * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
     * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
     * Once host exits slow start, time_factor and aggression no longer affect its weight.
     * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.RuntimeDoubleOrBuilder getAggressionOrBuilder() { return getAggression(); } public static final int MIN_WEIGHT_PERCENT_FIELD_NUMBER = 3; private io.envoyproxy.envoy.type.v3.Percent minWeightPercent_; /** *
     * Configures the minimum percentage of origin weight that avoids too small new weight,
     * which may cause endpoints in slow start mode receive no traffic in slow start window.
     * If not specified, the default is 10%.
     * 
* * .envoy.type.v3.Percent min_weight_percent = 3; * @return Whether the minWeightPercent field is set. */ @java.lang.Override public boolean hasMinWeightPercent() { return minWeightPercent_ != null; } /** *
     * Configures the minimum percentage of origin weight that avoids too small new weight,
     * which may cause endpoints in slow start mode receive no traffic in slow start window.
     * If not specified, the default is 10%.
     * 
* * .envoy.type.v3.Percent min_weight_percent = 3; * @return The minWeightPercent. */ @java.lang.Override public io.envoyproxy.envoy.type.v3.Percent getMinWeightPercent() { return minWeightPercent_ == null ? io.envoyproxy.envoy.type.v3.Percent.getDefaultInstance() : minWeightPercent_; } /** *
     * Configures the minimum percentage of origin weight that avoids too small new weight,
     * which may cause endpoints in slow start mode receive no traffic in slow start window.
     * If not specified, the default is 10%.
     * 
* * .envoy.type.v3.Percent min_weight_percent = 3; */ @java.lang.Override public io.envoyproxy.envoy.type.v3.PercentOrBuilder getMinWeightPercentOrBuilder() { return getMinWeightPercent(); } 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 (slowStartWindow_ != null) { output.writeMessage(1, getSlowStartWindow()); } if (aggression_ != null) { output.writeMessage(2, getAggression()); } if (minWeightPercent_ != null) { output.writeMessage(3, getMinWeightPercent()); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (slowStartWindow_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getSlowStartWindow()); } if (aggression_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getAggression()); } if (minWeightPercent_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, getMinWeightPercent()); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig) obj; if (hasSlowStartWindow() != other.hasSlowStartWindow()) return false; if (hasSlowStartWindow()) { if (!getSlowStartWindow() .equals(other.getSlowStartWindow())) return false; } if (hasAggression() != other.hasAggression()) return false; if (hasAggression()) { if (!getAggression() .equals(other.getAggression())) return false; } if (hasMinWeightPercent() != other.hasMinWeightPercent()) return false; if (hasMinWeightPercent()) { if (!getMinWeightPercent() .equals(other.getMinWeightPercent())) 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 (hasSlowStartWindow()) { hash = (37 * hash) + SLOW_START_WINDOW_FIELD_NUMBER; hash = (53 * hash) + getSlowStartWindow().hashCode(); } if (hasAggression()) { hash = (37 * hash) + AGGRESSION_FIELD_NUMBER; hash = (53 * hash) + getAggression().hashCode(); } if (hasMinWeightPercent()) { hash = (37 * hash) + MIN_WEIGHT_PERCENT_FIELD_NUMBER; hash = (53 * hash) + getMinWeightPercent().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig 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; } /** *
     * Configuration for :ref:`slow start mode <arch_overview_load_balancing_slow_start>`.
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.SlowStartConfig} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.SlowStartConfig) io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_SlowStartConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_SlowStartConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.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 (slowStartWindowBuilder_ == null) { slowStartWindow_ = null; } else { slowStartWindow_ = null; slowStartWindowBuilder_ = null; } if (aggressionBuilder_ == null) { aggression_ = null; } else { aggression_ = null; aggressionBuilder_ = null; } if (minWeightPercentBuilder_ == null) { minWeightPercent_ = null; } else { minWeightPercent_ = null; minWeightPercentBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_SlowStartConfig_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig(this); if (slowStartWindowBuilder_ == null) { result.slowStartWindow_ = slowStartWindow_; } else { result.slowStartWindow_ = slowStartWindowBuilder_.build(); } if (aggressionBuilder_ == null) { result.aggression_ = aggression_; } else { result.aggression_ = aggressionBuilder_.build(); } if (minWeightPercentBuilder_ == null) { result.minWeightPercent_ = minWeightPercent_; } else { result.minWeightPercent_ = minWeightPercentBuilder_.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.getDefaultInstance()) return this; if (other.hasSlowStartWindow()) { mergeSlowStartWindow(other.getSlowStartWindow()); } if (other.hasAggression()) { mergeAggression(other.getAggression()); } if (other.hasMinWeightPercent()) { mergeMinWeightPercent(other.getMinWeightPercent()); } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private com.google.protobuf.Duration slowStartWindow_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> slowStartWindowBuilder_; /** *
       * Represents the size of slow start window.
       * If set, the newly created host remains in slow start mode starting from its creation time
       * for the duration of slow start window.
       * 
* * .google.protobuf.Duration slow_start_window = 1; * @return Whether the slowStartWindow field is set. */ public boolean hasSlowStartWindow() { return slowStartWindowBuilder_ != null || slowStartWindow_ != null; } /** *
       * Represents the size of slow start window.
       * If set, the newly created host remains in slow start mode starting from its creation time
       * for the duration of slow start window.
       * 
* * .google.protobuf.Duration slow_start_window = 1; * @return The slowStartWindow. */ public com.google.protobuf.Duration getSlowStartWindow() { if (slowStartWindowBuilder_ == null) { return slowStartWindow_ == null ? com.google.protobuf.Duration.getDefaultInstance() : slowStartWindow_; } else { return slowStartWindowBuilder_.getMessage(); } } /** *
       * Represents the size of slow start window.
       * If set, the newly created host remains in slow start mode starting from its creation time
       * for the duration of slow start window.
       * 
* * .google.protobuf.Duration slow_start_window = 1; */ public Builder setSlowStartWindow(com.google.protobuf.Duration value) { if (slowStartWindowBuilder_ == null) { if (value == null) { throw new NullPointerException(); } slowStartWindow_ = value; onChanged(); } else { slowStartWindowBuilder_.setMessage(value); } return this; } /** *
       * Represents the size of slow start window.
       * If set, the newly created host remains in slow start mode starting from its creation time
       * for the duration of slow start window.
       * 
* * .google.protobuf.Duration slow_start_window = 1; */ public Builder setSlowStartWindow( com.google.protobuf.Duration.Builder builderForValue) { if (slowStartWindowBuilder_ == null) { slowStartWindow_ = builderForValue.build(); onChanged(); } else { slowStartWindowBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Represents the size of slow start window.
       * If set, the newly created host remains in slow start mode starting from its creation time
       * for the duration of slow start window.
       * 
* * .google.protobuf.Duration slow_start_window = 1; */ public Builder mergeSlowStartWindow(com.google.protobuf.Duration value) { if (slowStartWindowBuilder_ == null) { if (slowStartWindow_ != null) { slowStartWindow_ = com.google.protobuf.Duration.newBuilder(slowStartWindow_).mergeFrom(value).buildPartial(); } else { slowStartWindow_ = value; } onChanged(); } else { slowStartWindowBuilder_.mergeFrom(value); } return this; } /** *
       * Represents the size of slow start window.
       * If set, the newly created host remains in slow start mode starting from its creation time
       * for the duration of slow start window.
       * 
* * .google.protobuf.Duration slow_start_window = 1; */ public Builder clearSlowStartWindow() { if (slowStartWindowBuilder_ == null) { slowStartWindow_ = null; onChanged(); } else { slowStartWindow_ = null; slowStartWindowBuilder_ = null; } return this; } /** *
       * Represents the size of slow start window.
       * If set, the newly created host remains in slow start mode starting from its creation time
       * for the duration of slow start window.
       * 
* * .google.protobuf.Duration slow_start_window = 1; */ public com.google.protobuf.Duration.Builder getSlowStartWindowBuilder() { onChanged(); return getSlowStartWindowFieldBuilder().getBuilder(); } /** *
       * Represents the size of slow start window.
       * If set, the newly created host remains in slow start mode starting from its creation time
       * for the duration of slow start window.
       * 
* * .google.protobuf.Duration slow_start_window = 1; */ public com.google.protobuf.DurationOrBuilder getSlowStartWindowOrBuilder() { if (slowStartWindowBuilder_ != null) { return slowStartWindowBuilder_.getMessageOrBuilder(); } else { return slowStartWindow_ == null ? com.google.protobuf.Duration.getDefaultInstance() : slowStartWindow_; } } /** *
       * Represents the size of slow start window.
       * If set, the newly created host remains in slow start mode starting from its creation time
       * for the duration of slow start window.
       * 
* * .google.protobuf.Duration slow_start_window = 1; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getSlowStartWindowFieldBuilder() { if (slowStartWindowBuilder_ == null) { slowStartWindowBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getSlowStartWindow(), getParentForChildren(), isClean()); slowStartWindow_ = null; } return slowStartWindowBuilder_; } private io.envoyproxy.envoy.config.core.v3.RuntimeDouble aggression_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.RuntimeDouble, io.envoyproxy.envoy.config.core.v3.RuntimeDouble.Builder, io.envoyproxy.envoy.config.core.v3.RuntimeDoubleOrBuilder> aggressionBuilder_; /** *
       * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
       * so that endpoint would get linearly increasing amount of traffic.
       * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
       * The value of aggression parameter should be greater than 0.0.
       * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
       * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
       * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
       * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
       * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
       * Once host exits slow start, time_factor and aggression no longer affect its weight.
       * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; * @return Whether the aggression field is set. */ public boolean hasAggression() { return aggressionBuilder_ != null || aggression_ != null; } /** *
       * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
       * so that endpoint would get linearly increasing amount of traffic.
       * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
       * The value of aggression parameter should be greater than 0.0.
       * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
       * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
       * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
       * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
       * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
       * Once host exits slow start, time_factor and aggression no longer affect its weight.
       * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; * @return The aggression. */ public io.envoyproxy.envoy.config.core.v3.RuntimeDouble getAggression() { if (aggressionBuilder_ == null) { return aggression_ == null ? io.envoyproxy.envoy.config.core.v3.RuntimeDouble.getDefaultInstance() : aggression_; } else { return aggressionBuilder_.getMessage(); } } /** *
       * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
       * so that endpoint would get linearly increasing amount of traffic.
       * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
       * The value of aggression parameter should be greater than 0.0.
       * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
       * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
       * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
       * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
       * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
       * Once host exits slow start, time_factor and aggression no longer affect its weight.
       * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; */ public Builder setAggression(io.envoyproxy.envoy.config.core.v3.RuntimeDouble value) { if (aggressionBuilder_ == null) { if (value == null) { throw new NullPointerException(); } aggression_ = value; onChanged(); } else { aggressionBuilder_.setMessage(value); } return this; } /** *
       * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
       * so that endpoint would get linearly increasing amount of traffic.
       * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
       * The value of aggression parameter should be greater than 0.0.
       * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
       * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
       * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
       * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
       * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
       * Once host exits slow start, time_factor and aggression no longer affect its weight.
       * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; */ public Builder setAggression( io.envoyproxy.envoy.config.core.v3.RuntimeDouble.Builder builderForValue) { if (aggressionBuilder_ == null) { aggression_ = builderForValue.build(); onChanged(); } else { aggressionBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
       * so that endpoint would get linearly increasing amount of traffic.
       * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
       * The value of aggression parameter should be greater than 0.0.
       * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
       * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
       * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
       * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
       * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
       * Once host exits slow start, time_factor and aggression no longer affect its weight.
       * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; */ public Builder mergeAggression(io.envoyproxy.envoy.config.core.v3.RuntimeDouble value) { if (aggressionBuilder_ == null) { if (aggression_ != null) { aggression_ = io.envoyproxy.envoy.config.core.v3.RuntimeDouble.newBuilder(aggression_).mergeFrom(value).buildPartial(); } else { aggression_ = value; } onChanged(); } else { aggressionBuilder_.mergeFrom(value); } return this; } /** *
       * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
       * so that endpoint would get linearly increasing amount of traffic.
       * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
       * The value of aggression parameter should be greater than 0.0.
       * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
       * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
       * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
       * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
       * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
       * Once host exits slow start, time_factor and aggression no longer affect its weight.
       * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; */ public Builder clearAggression() { if (aggressionBuilder_ == null) { aggression_ = null; onChanged(); } else { aggression_ = null; aggressionBuilder_ = null; } return this; } /** *
       * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
       * so that endpoint would get linearly increasing amount of traffic.
       * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
       * The value of aggression parameter should be greater than 0.0.
       * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
       * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
       * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
       * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
       * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
       * Once host exits slow start, time_factor and aggression no longer affect its weight.
       * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; */ public io.envoyproxy.envoy.config.core.v3.RuntimeDouble.Builder getAggressionBuilder() { onChanged(); return getAggressionFieldBuilder().getBuilder(); } /** *
       * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
       * so that endpoint would get linearly increasing amount of traffic.
       * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
       * The value of aggression parameter should be greater than 0.0.
       * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
       * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
       * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
       * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
       * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
       * Once host exits slow start, time_factor and aggression no longer affect its weight.
       * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; */ public io.envoyproxy.envoy.config.core.v3.RuntimeDoubleOrBuilder getAggressionOrBuilder() { if (aggressionBuilder_ != null) { return aggressionBuilder_.getMessageOrBuilder(); } else { return aggression_ == null ? io.envoyproxy.envoy.config.core.v3.RuntimeDouble.getDefaultInstance() : aggression_; } } /** *
       * This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
       * so that endpoint would get linearly increasing amount of traffic.
       * When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
       * The value of aggression parameter should be greater than 0.0.
       * By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
       * During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
       * ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
       * where ``time_factor=(time_since_start_seconds / slow_start_time_seconds)``.
       * As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
       * Once host exits slow start, time_factor and aggression no longer affect its weight.
       * 
* * .envoy.config.core.v3.RuntimeDouble aggression = 2; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.RuntimeDouble, io.envoyproxy.envoy.config.core.v3.RuntimeDouble.Builder, io.envoyproxy.envoy.config.core.v3.RuntimeDoubleOrBuilder> getAggressionFieldBuilder() { if (aggressionBuilder_ == null) { aggressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.RuntimeDouble, io.envoyproxy.envoy.config.core.v3.RuntimeDouble.Builder, io.envoyproxy.envoy.config.core.v3.RuntimeDoubleOrBuilder>( getAggression(), getParentForChildren(), isClean()); aggression_ = null; } return aggressionBuilder_; } private io.envoyproxy.envoy.type.v3.Percent minWeightPercent_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.v3.Percent, io.envoyproxy.envoy.type.v3.Percent.Builder, io.envoyproxy.envoy.type.v3.PercentOrBuilder> minWeightPercentBuilder_; /** *
       * Configures the minimum percentage of origin weight that avoids too small new weight,
       * which may cause endpoints in slow start mode receive no traffic in slow start window.
       * If not specified, the default is 10%.
       * 
* * .envoy.type.v3.Percent min_weight_percent = 3; * @return Whether the minWeightPercent field is set. */ public boolean hasMinWeightPercent() { return minWeightPercentBuilder_ != null || minWeightPercent_ != null; } /** *
       * Configures the minimum percentage of origin weight that avoids too small new weight,
       * which may cause endpoints in slow start mode receive no traffic in slow start window.
       * If not specified, the default is 10%.
       * 
* * .envoy.type.v3.Percent min_weight_percent = 3; * @return The minWeightPercent. */ public io.envoyproxy.envoy.type.v3.Percent getMinWeightPercent() { if (minWeightPercentBuilder_ == null) { return minWeightPercent_ == null ? io.envoyproxy.envoy.type.v3.Percent.getDefaultInstance() : minWeightPercent_; } else { return minWeightPercentBuilder_.getMessage(); } } /** *
       * Configures the minimum percentage of origin weight that avoids too small new weight,
       * which may cause endpoints in slow start mode receive no traffic in slow start window.
       * If not specified, the default is 10%.
       * 
* * .envoy.type.v3.Percent min_weight_percent = 3; */ public Builder setMinWeightPercent(io.envoyproxy.envoy.type.v3.Percent value) { if (minWeightPercentBuilder_ == null) { if (value == null) { throw new NullPointerException(); } minWeightPercent_ = value; onChanged(); } else { minWeightPercentBuilder_.setMessage(value); } return this; } /** *
       * Configures the minimum percentage of origin weight that avoids too small new weight,
       * which may cause endpoints in slow start mode receive no traffic in slow start window.
       * If not specified, the default is 10%.
       * 
* * .envoy.type.v3.Percent min_weight_percent = 3; */ public Builder setMinWeightPercent( io.envoyproxy.envoy.type.v3.Percent.Builder builderForValue) { if (minWeightPercentBuilder_ == null) { minWeightPercent_ = builderForValue.build(); onChanged(); } else { minWeightPercentBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Configures the minimum percentage of origin weight that avoids too small new weight,
       * which may cause endpoints in slow start mode receive no traffic in slow start window.
       * If not specified, the default is 10%.
       * 
* * .envoy.type.v3.Percent min_weight_percent = 3; */ public Builder mergeMinWeightPercent(io.envoyproxy.envoy.type.v3.Percent value) { if (minWeightPercentBuilder_ == null) { if (minWeightPercent_ != null) { minWeightPercent_ = io.envoyproxy.envoy.type.v3.Percent.newBuilder(minWeightPercent_).mergeFrom(value).buildPartial(); } else { minWeightPercent_ = value; } onChanged(); } else { minWeightPercentBuilder_.mergeFrom(value); } return this; } /** *
       * Configures the minimum percentage of origin weight that avoids too small new weight,
       * which may cause endpoints in slow start mode receive no traffic in slow start window.
       * If not specified, the default is 10%.
       * 
* * .envoy.type.v3.Percent min_weight_percent = 3; */ public Builder clearMinWeightPercent() { if (minWeightPercentBuilder_ == null) { minWeightPercent_ = null; onChanged(); } else { minWeightPercent_ = null; minWeightPercentBuilder_ = null; } return this; } /** *
       * Configures the minimum percentage of origin weight that avoids too small new weight,
       * which may cause endpoints in slow start mode receive no traffic in slow start window.
       * If not specified, the default is 10%.
       * 
* * .envoy.type.v3.Percent min_weight_percent = 3; */ public io.envoyproxy.envoy.type.v3.Percent.Builder getMinWeightPercentBuilder() { onChanged(); return getMinWeightPercentFieldBuilder().getBuilder(); } /** *
       * Configures the minimum percentage of origin weight that avoids too small new weight,
       * which may cause endpoints in slow start mode receive no traffic in slow start window.
       * If not specified, the default is 10%.
       * 
* * .envoy.type.v3.Percent min_weight_percent = 3; */ public io.envoyproxy.envoy.type.v3.PercentOrBuilder getMinWeightPercentOrBuilder() { if (minWeightPercentBuilder_ != null) { return minWeightPercentBuilder_.getMessageOrBuilder(); } else { return minWeightPercent_ == null ? io.envoyproxy.envoy.type.v3.Percent.getDefaultInstance() : minWeightPercent_; } } /** *
       * Configures the minimum percentage of origin weight that avoids too small new weight,
       * which may cause endpoints in slow start mode receive no traffic in slow start window.
       * If not specified, the default is 10%.
       * 
* * .envoy.type.v3.Percent min_weight_percent = 3; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.v3.Percent, io.envoyproxy.envoy.type.v3.Percent.Builder, io.envoyproxy.envoy.type.v3.PercentOrBuilder> getMinWeightPercentFieldBuilder() { if (minWeightPercentBuilder_ == null) { minWeightPercentBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.v3.Percent, io.envoyproxy.envoy.type.v3.Percent.Builder, io.envoyproxy.envoy.type.v3.PercentOrBuilder>( getMinWeightPercent(), getParentForChildren(), isClean()); minWeightPercent_ = null; } return minWeightPercentBuilder_; } @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:envoy.config.cluster.v3.Cluster.SlowStartConfig) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.SlowStartConfig) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public SlowStartConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new SlowStartConfig(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface RoundRobinLbConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) com.google.protobuf.MessageOrBuilder { /** *
     * Configuration for slow start mode.
     * If this configuration is not set, slow start will not be not enabled.
     * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; * @return Whether the slowStartConfig field is set. */ boolean hasSlowStartConfig(); /** *
     * Configuration for slow start mode.
     * If this configuration is not set, slow start will not be not enabled.
     * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; * @return The slowStartConfig. */ io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig getSlowStartConfig(); /** *
     * Configuration for slow start mode.
     * If this configuration is not set, slow start will not be not enabled.
     * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; */ io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfigOrBuilder getSlowStartConfigOrBuilder(); } /** *
   * Specific configuration for the RoundRobin load balancing policy.
   * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.RoundRobinLbConfig} */ public static final class RoundRobinLbConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) RoundRobinLbConfigOrBuilder { private static final long serialVersionUID = 0L; // Use RoundRobinLbConfig.newBuilder() to construct. private RoundRobinLbConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private RoundRobinLbConfig() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new RoundRobinLbConfig(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private RoundRobinLbConfig( 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: { io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.Builder subBuilder = null; if (slowStartConfig_ != null) { subBuilder = slowStartConfig_.toBuilder(); } slowStartConfig_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(slowStartConfig_); slowStartConfig_ = subBuilder.buildPartial(); } break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RoundRobinLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RoundRobinLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.Builder.class); } public static final int SLOW_START_CONFIG_FIELD_NUMBER = 1; private io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig slowStartConfig_; /** *
     * Configuration for slow start mode.
     * If this configuration is not set, slow start will not be not enabled.
     * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; * @return Whether the slowStartConfig field is set. */ @java.lang.Override public boolean hasSlowStartConfig() { return slowStartConfig_ != null; } /** *
     * Configuration for slow start mode.
     * If this configuration is not set, slow start will not be not enabled.
     * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; * @return The slowStartConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig getSlowStartConfig() { return slowStartConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.getDefaultInstance() : slowStartConfig_; } /** *
     * Configuration for slow start mode.
     * If this configuration is not set, slow start will not be not enabled.
     * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfigOrBuilder getSlowStartConfigOrBuilder() { return getSlowStartConfig(); } 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 (slowStartConfig_ != null) { output.writeMessage(1, getSlowStartConfig()); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (slowStartConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getSlowStartConfig()); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) obj; if (hasSlowStartConfig() != other.hasSlowStartConfig()) return false; if (hasSlowStartConfig()) { if (!getSlowStartConfig() .equals(other.getSlowStartConfig())) 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 (hasSlowStartConfig()) { hash = (37 * hash) + SLOW_START_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getSlowStartConfig().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig 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; } /** *
     * Specific configuration for the RoundRobin load balancing policy.
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.RoundRobinLbConfig} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RoundRobinLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RoundRobinLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.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 (slowStartConfigBuilder_ == null) { slowStartConfig_ = null; } else { slowStartConfig_ = null; slowStartConfigBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RoundRobinLbConfig_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig(this); if (slowStartConfigBuilder_ == null) { result.slowStartConfig_ = slowStartConfig_; } else { result.slowStartConfig_ = slowStartConfigBuilder_.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.getDefaultInstance()) return this; if (other.hasSlowStartConfig()) { mergeSlowStartConfig(other.getSlowStartConfig()); } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig slowStartConfig_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfigOrBuilder> slowStartConfigBuilder_; /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; * @return Whether the slowStartConfig field is set. */ public boolean hasSlowStartConfig() { return slowStartConfigBuilder_ != null || slowStartConfig_ != null; } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; * @return The slowStartConfig. */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig getSlowStartConfig() { if (slowStartConfigBuilder_ == null) { return slowStartConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.getDefaultInstance() : slowStartConfig_; } else { return slowStartConfigBuilder_.getMessage(); } } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; */ public Builder setSlowStartConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig value) { if (slowStartConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } slowStartConfig_ = value; onChanged(); } else { slowStartConfigBuilder_.setMessage(value); } return this; } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; */ public Builder setSlowStartConfig( io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.Builder builderForValue) { if (slowStartConfigBuilder_ == null) { slowStartConfig_ = builderForValue.build(); onChanged(); } else { slowStartConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; */ public Builder mergeSlowStartConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig value) { if (slowStartConfigBuilder_ == null) { if (slowStartConfig_ != null) { slowStartConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.newBuilder(slowStartConfig_).mergeFrom(value).buildPartial(); } else { slowStartConfig_ = value; } onChanged(); } else { slowStartConfigBuilder_.mergeFrom(value); } return this; } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; */ public Builder clearSlowStartConfig() { if (slowStartConfigBuilder_ == null) { slowStartConfig_ = null; onChanged(); } else { slowStartConfig_ = null; slowStartConfigBuilder_ = null; } return this; } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.Builder getSlowStartConfigBuilder() { onChanged(); return getSlowStartConfigFieldBuilder().getBuilder(); } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfigOrBuilder getSlowStartConfigOrBuilder() { if (slowStartConfigBuilder_ != null) { return slowStartConfigBuilder_.getMessageOrBuilder(); } else { return slowStartConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.getDefaultInstance() : slowStartConfig_; } } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 1; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfigOrBuilder> getSlowStartConfigFieldBuilder() { if (slowStartConfigBuilder_ == null) { slowStartConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfigOrBuilder>( getSlowStartConfig(), getParentForChildren(), isClean()); slowStartConfig_ = null; } return slowStartConfigBuilder_; } @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:envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public RoundRobinLbConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new RoundRobinLbConfig(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface LeastRequestLbConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) com.google.protobuf.MessageOrBuilder { /** *
     * The number of random healthy hosts from which the host with the fewest active requests will
     * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
     * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } * @return Whether the choiceCount field is set. */ boolean hasChoiceCount(); /** *
     * The number of random healthy hosts from which the host with the fewest active requests will
     * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
     * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } * @return The choiceCount. */ com.google.protobuf.UInt32Value getChoiceCount(); /** *
     * The number of random healthy hosts from which the host with the fewest active requests will
     * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
     * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } */ com.google.protobuf.UInt32ValueOrBuilder getChoiceCountOrBuilder(); /** *
     * The following formula is used to calculate the dynamic weights when hosts have different load
     * balancing weights:
     * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
     * The larger the active request bias is, the more aggressively active requests will lower the
     * effective weight when all host weights are not equal.
     * ``active_request_bias`` must be greater than or equal to 0.0.
     * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
     * of active requests at the time it picks a host and behaves like the Round Robin Load
     * Balancer.
     * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
     * weight by the number of active requests at the time it does a pick.
     * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
     * host sets changes, e.g., whenever there is a host membership update or a host load balancing
     * weight change.
     * .. note::
     *   This setting only takes effect if all host weights are not equal.
     * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; * @return Whether the activeRequestBias field is set. */ boolean hasActiveRequestBias(); /** *
     * The following formula is used to calculate the dynamic weights when hosts have different load
     * balancing weights:
     * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
     * The larger the active request bias is, the more aggressively active requests will lower the
     * effective weight when all host weights are not equal.
     * ``active_request_bias`` must be greater than or equal to 0.0.
     * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
     * of active requests at the time it picks a host and behaves like the Round Robin Load
     * Balancer.
     * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
     * weight by the number of active requests at the time it does a pick.
     * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
     * host sets changes, e.g., whenever there is a host membership update or a host load balancing
     * weight change.
     * .. note::
     *   This setting only takes effect if all host weights are not equal.
     * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; * @return The activeRequestBias. */ io.envoyproxy.envoy.config.core.v3.RuntimeDouble getActiveRequestBias(); /** *
     * The following formula is used to calculate the dynamic weights when hosts have different load
     * balancing weights:
     * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
     * The larger the active request bias is, the more aggressively active requests will lower the
     * effective weight when all host weights are not equal.
     * ``active_request_bias`` must be greater than or equal to 0.0.
     * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
     * of active requests at the time it picks a host and behaves like the Round Robin Load
     * Balancer.
     * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
     * weight by the number of active requests at the time it does a pick.
     * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
     * host sets changes, e.g., whenever there is a host membership update or a host load balancing
     * weight change.
     * .. note::
     *   This setting only takes effect if all host weights are not equal.
     * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; */ io.envoyproxy.envoy.config.core.v3.RuntimeDoubleOrBuilder getActiveRequestBiasOrBuilder(); /** *
     * Configuration for slow start mode.
     * If this configuration is not set, slow start will not be not enabled.
     * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; * @return Whether the slowStartConfig field is set. */ boolean hasSlowStartConfig(); /** *
     * Configuration for slow start mode.
     * If this configuration is not set, slow start will not be not enabled.
     * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; * @return The slowStartConfig. */ io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig getSlowStartConfig(); /** *
     * Configuration for slow start mode.
     * If this configuration is not set, slow start will not be not enabled.
     * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; */ io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfigOrBuilder getSlowStartConfigOrBuilder(); } /** *
   * Specific configuration for the LeastRequest load balancing policy.
   * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.LeastRequestLbConfig} */ public static final class LeastRequestLbConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) LeastRequestLbConfigOrBuilder { private static final long serialVersionUID = 0L; // Use LeastRequestLbConfig.newBuilder() to construct. private LeastRequestLbConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private LeastRequestLbConfig() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new LeastRequestLbConfig(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private LeastRequestLbConfig( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { com.google.protobuf.UInt32Value.Builder subBuilder = null; if (choiceCount_ != null) { subBuilder = choiceCount_.toBuilder(); } choiceCount_ = input.readMessage(com.google.protobuf.UInt32Value.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(choiceCount_); choiceCount_ = subBuilder.buildPartial(); } break; } case 18: { io.envoyproxy.envoy.config.core.v3.RuntimeDouble.Builder subBuilder = null; if (activeRequestBias_ != null) { subBuilder = activeRequestBias_.toBuilder(); } activeRequestBias_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.RuntimeDouble.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(activeRequestBias_); activeRequestBias_ = subBuilder.buildPartial(); } break; } case 26: { io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.Builder subBuilder = null; if (slowStartConfig_ != null) { subBuilder = slowStartConfig_.toBuilder(); } slowStartConfig_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(slowStartConfig_); slowStartConfig_ = subBuilder.buildPartial(); } break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.Builder.class); } public static final int CHOICE_COUNT_FIELD_NUMBER = 1; private com.google.protobuf.UInt32Value choiceCount_; /** *
     * The number of random healthy hosts from which the host with the fewest active requests will
     * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
     * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } * @return Whether the choiceCount field is set. */ @java.lang.Override public boolean hasChoiceCount() { return choiceCount_ != null; } /** *
     * The number of random healthy hosts from which the host with the fewest active requests will
     * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
     * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } * @return The choiceCount. */ @java.lang.Override public com.google.protobuf.UInt32Value getChoiceCount() { return choiceCount_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : choiceCount_; } /** *
     * The number of random healthy hosts from which the host with the fewest active requests will
     * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
     * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } */ @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getChoiceCountOrBuilder() { return getChoiceCount(); } public static final int ACTIVE_REQUEST_BIAS_FIELD_NUMBER = 2; private io.envoyproxy.envoy.config.core.v3.RuntimeDouble activeRequestBias_; /** *
     * The following formula is used to calculate the dynamic weights when hosts have different load
     * balancing weights:
     * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
     * The larger the active request bias is, the more aggressively active requests will lower the
     * effective weight when all host weights are not equal.
     * ``active_request_bias`` must be greater than or equal to 0.0.
     * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
     * of active requests at the time it picks a host and behaves like the Round Robin Load
     * Balancer.
     * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
     * weight by the number of active requests at the time it does a pick.
     * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
     * host sets changes, e.g., whenever there is a host membership update or a host load balancing
     * weight change.
     * .. note::
     *   This setting only takes effect if all host weights are not equal.
     * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; * @return Whether the activeRequestBias field is set. */ @java.lang.Override public boolean hasActiveRequestBias() { return activeRequestBias_ != null; } /** *
     * The following formula is used to calculate the dynamic weights when hosts have different load
     * balancing weights:
     * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
     * The larger the active request bias is, the more aggressively active requests will lower the
     * effective weight when all host weights are not equal.
     * ``active_request_bias`` must be greater than or equal to 0.0.
     * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
     * of active requests at the time it picks a host and behaves like the Round Robin Load
     * Balancer.
     * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
     * weight by the number of active requests at the time it does a pick.
     * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
     * host sets changes, e.g., whenever there is a host membership update or a host load balancing
     * weight change.
     * .. note::
     *   This setting only takes effect if all host weights are not equal.
     * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; * @return The activeRequestBias. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.RuntimeDouble getActiveRequestBias() { return activeRequestBias_ == null ? io.envoyproxy.envoy.config.core.v3.RuntimeDouble.getDefaultInstance() : activeRequestBias_; } /** *
     * The following formula is used to calculate the dynamic weights when hosts have different load
     * balancing weights:
     * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
     * The larger the active request bias is, the more aggressively active requests will lower the
     * effective weight when all host weights are not equal.
     * ``active_request_bias`` must be greater than or equal to 0.0.
     * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
     * of active requests at the time it picks a host and behaves like the Round Robin Load
     * Balancer.
     * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
     * weight by the number of active requests at the time it does a pick.
     * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
     * host sets changes, e.g., whenever there is a host membership update or a host load balancing
     * weight change.
     * .. note::
     *   This setting only takes effect if all host weights are not equal.
     * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.RuntimeDoubleOrBuilder getActiveRequestBiasOrBuilder() { return getActiveRequestBias(); } public static final int SLOW_START_CONFIG_FIELD_NUMBER = 3; private io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig slowStartConfig_; /** *
     * Configuration for slow start mode.
     * If this configuration is not set, slow start will not be not enabled.
     * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; * @return Whether the slowStartConfig field is set. */ @java.lang.Override public boolean hasSlowStartConfig() { return slowStartConfig_ != null; } /** *
     * Configuration for slow start mode.
     * If this configuration is not set, slow start will not be not enabled.
     * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; * @return The slowStartConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig getSlowStartConfig() { return slowStartConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.getDefaultInstance() : slowStartConfig_; } /** *
     * Configuration for slow start mode.
     * If this configuration is not set, slow start will not be not enabled.
     * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfigOrBuilder getSlowStartConfigOrBuilder() { return getSlowStartConfig(); } 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 (choiceCount_ != null) { output.writeMessage(1, getChoiceCount()); } if (activeRequestBias_ != null) { output.writeMessage(2, getActiveRequestBias()); } if (slowStartConfig_ != null) { output.writeMessage(3, getSlowStartConfig()); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (choiceCount_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getChoiceCount()); } if (activeRequestBias_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getActiveRequestBias()); } if (slowStartConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, getSlowStartConfig()); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) obj; if (hasChoiceCount() != other.hasChoiceCount()) return false; if (hasChoiceCount()) { if (!getChoiceCount() .equals(other.getChoiceCount())) return false; } if (hasActiveRequestBias() != other.hasActiveRequestBias()) return false; if (hasActiveRequestBias()) { if (!getActiveRequestBias() .equals(other.getActiveRequestBias())) return false; } if (hasSlowStartConfig() != other.hasSlowStartConfig()) return false; if (hasSlowStartConfig()) { if (!getSlowStartConfig() .equals(other.getSlowStartConfig())) 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 (hasChoiceCount()) { hash = (37 * hash) + CHOICE_COUNT_FIELD_NUMBER; hash = (53 * hash) + getChoiceCount().hashCode(); } if (hasActiveRequestBias()) { hash = (37 * hash) + ACTIVE_REQUEST_BIAS_FIELD_NUMBER; hash = (53 * hash) + getActiveRequestBias().hashCode(); } if (hasSlowStartConfig()) { hash = (37 * hash) + SLOW_START_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getSlowStartConfig().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig 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; } /** *
     * Specific configuration for the LeastRequest load balancing policy.
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.LeastRequestLbConfig} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.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 (choiceCountBuilder_ == null) { choiceCount_ = null; } else { choiceCount_ = null; choiceCountBuilder_ = null; } if (activeRequestBiasBuilder_ == null) { activeRequestBias_ = null; } else { activeRequestBias_ = null; activeRequestBiasBuilder_ = null; } if (slowStartConfigBuilder_ == null) { slowStartConfig_ = null; } else { slowStartConfig_ = null; slowStartConfigBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_LeastRequestLbConfig_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig(this); if (choiceCountBuilder_ == null) { result.choiceCount_ = choiceCount_; } else { result.choiceCount_ = choiceCountBuilder_.build(); } if (activeRequestBiasBuilder_ == null) { result.activeRequestBias_ = activeRequestBias_; } else { result.activeRequestBias_ = activeRequestBiasBuilder_.build(); } if (slowStartConfigBuilder_ == null) { result.slowStartConfig_ = slowStartConfig_; } else { result.slowStartConfig_ = slowStartConfigBuilder_.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.getDefaultInstance()) return this; if (other.hasChoiceCount()) { mergeChoiceCount(other.getChoiceCount()); } if (other.hasActiveRequestBias()) { mergeActiveRequestBias(other.getActiveRequestBias()); } if (other.hasSlowStartConfig()) { mergeSlowStartConfig(other.getSlowStartConfig()); } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private com.google.protobuf.UInt32Value choiceCount_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder> choiceCountBuilder_; /** *
       * The number of random healthy hosts from which the host with the fewest active requests will
       * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
       * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } * @return Whether the choiceCount field is set. */ public boolean hasChoiceCount() { return choiceCountBuilder_ != null || choiceCount_ != null; } /** *
       * The number of random healthy hosts from which the host with the fewest active requests will
       * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
       * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } * @return The choiceCount. */ public com.google.protobuf.UInt32Value getChoiceCount() { if (choiceCountBuilder_ == null) { return choiceCount_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : choiceCount_; } else { return choiceCountBuilder_.getMessage(); } } /** *
       * The number of random healthy hosts from which the host with the fewest active requests will
       * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
       * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } */ public Builder setChoiceCount(com.google.protobuf.UInt32Value value) { if (choiceCountBuilder_ == null) { if (value == null) { throw new NullPointerException(); } choiceCount_ = value; onChanged(); } else { choiceCountBuilder_.setMessage(value); } return this; } /** *
       * The number of random healthy hosts from which the host with the fewest active requests will
       * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
       * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } */ public Builder setChoiceCount( com.google.protobuf.UInt32Value.Builder builderForValue) { if (choiceCountBuilder_ == null) { choiceCount_ = builderForValue.build(); onChanged(); } else { choiceCountBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * The number of random healthy hosts from which the host with the fewest active requests will
       * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
       * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } */ public Builder mergeChoiceCount(com.google.protobuf.UInt32Value value) { if (choiceCountBuilder_ == null) { if (choiceCount_ != null) { choiceCount_ = com.google.protobuf.UInt32Value.newBuilder(choiceCount_).mergeFrom(value).buildPartial(); } else { choiceCount_ = value; } onChanged(); } else { choiceCountBuilder_.mergeFrom(value); } return this; } /** *
       * The number of random healthy hosts from which the host with the fewest active requests will
       * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
       * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } */ public Builder clearChoiceCount() { if (choiceCountBuilder_ == null) { choiceCount_ = null; onChanged(); } else { choiceCount_ = null; choiceCountBuilder_ = null; } return this; } /** *
       * The number of random healthy hosts from which the host with the fewest active requests will
       * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
       * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } */ public com.google.protobuf.UInt32Value.Builder getChoiceCountBuilder() { onChanged(); return getChoiceCountFieldBuilder().getBuilder(); } /** *
       * The number of random healthy hosts from which the host with the fewest active requests will
       * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
       * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } */ public com.google.protobuf.UInt32ValueOrBuilder getChoiceCountOrBuilder() { if (choiceCountBuilder_ != null) { return choiceCountBuilder_.getMessageOrBuilder(); } else { return choiceCount_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : choiceCount_; } } /** *
       * The number of random healthy hosts from which the host with the fewest active requests will
       * be chosen. Defaults to 2 so that we perform two-choice selection if the field is not set.
       * 
* * .google.protobuf.UInt32Value choice_count = 1 [(.validate.rules) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder> getChoiceCountFieldBuilder() { if (choiceCountBuilder_ == null) { choiceCountBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder>( getChoiceCount(), getParentForChildren(), isClean()); choiceCount_ = null; } return choiceCountBuilder_; } private io.envoyproxy.envoy.config.core.v3.RuntimeDouble activeRequestBias_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.RuntimeDouble, io.envoyproxy.envoy.config.core.v3.RuntimeDouble.Builder, io.envoyproxy.envoy.config.core.v3.RuntimeDoubleOrBuilder> activeRequestBiasBuilder_; /** *
       * The following formula is used to calculate the dynamic weights when hosts have different load
       * balancing weights:
       * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
       * The larger the active request bias is, the more aggressively active requests will lower the
       * effective weight when all host weights are not equal.
       * ``active_request_bias`` must be greater than or equal to 0.0.
       * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
       * of active requests at the time it picks a host and behaves like the Round Robin Load
       * Balancer.
       * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
       * weight by the number of active requests at the time it does a pick.
       * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
       * host sets changes, e.g., whenever there is a host membership update or a host load balancing
       * weight change.
       * .. note::
       *   This setting only takes effect if all host weights are not equal.
       * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; * @return Whether the activeRequestBias field is set. */ public boolean hasActiveRequestBias() { return activeRequestBiasBuilder_ != null || activeRequestBias_ != null; } /** *
       * The following formula is used to calculate the dynamic weights when hosts have different load
       * balancing weights:
       * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
       * The larger the active request bias is, the more aggressively active requests will lower the
       * effective weight when all host weights are not equal.
       * ``active_request_bias`` must be greater than or equal to 0.0.
       * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
       * of active requests at the time it picks a host and behaves like the Round Robin Load
       * Balancer.
       * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
       * weight by the number of active requests at the time it does a pick.
       * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
       * host sets changes, e.g., whenever there is a host membership update or a host load balancing
       * weight change.
       * .. note::
       *   This setting only takes effect if all host weights are not equal.
       * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; * @return The activeRequestBias. */ public io.envoyproxy.envoy.config.core.v3.RuntimeDouble getActiveRequestBias() { if (activeRequestBiasBuilder_ == null) { return activeRequestBias_ == null ? io.envoyproxy.envoy.config.core.v3.RuntimeDouble.getDefaultInstance() : activeRequestBias_; } else { return activeRequestBiasBuilder_.getMessage(); } } /** *
       * The following formula is used to calculate the dynamic weights when hosts have different load
       * balancing weights:
       * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
       * The larger the active request bias is, the more aggressively active requests will lower the
       * effective weight when all host weights are not equal.
       * ``active_request_bias`` must be greater than or equal to 0.0.
       * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
       * of active requests at the time it picks a host and behaves like the Round Robin Load
       * Balancer.
       * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
       * weight by the number of active requests at the time it does a pick.
       * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
       * host sets changes, e.g., whenever there is a host membership update or a host load balancing
       * weight change.
       * .. note::
       *   This setting only takes effect if all host weights are not equal.
       * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; */ public Builder setActiveRequestBias(io.envoyproxy.envoy.config.core.v3.RuntimeDouble value) { if (activeRequestBiasBuilder_ == null) { if (value == null) { throw new NullPointerException(); } activeRequestBias_ = value; onChanged(); } else { activeRequestBiasBuilder_.setMessage(value); } return this; } /** *
       * The following formula is used to calculate the dynamic weights when hosts have different load
       * balancing weights:
       * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
       * The larger the active request bias is, the more aggressively active requests will lower the
       * effective weight when all host weights are not equal.
       * ``active_request_bias`` must be greater than or equal to 0.0.
       * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
       * of active requests at the time it picks a host and behaves like the Round Robin Load
       * Balancer.
       * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
       * weight by the number of active requests at the time it does a pick.
       * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
       * host sets changes, e.g., whenever there is a host membership update or a host load balancing
       * weight change.
       * .. note::
       *   This setting only takes effect if all host weights are not equal.
       * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; */ public Builder setActiveRequestBias( io.envoyproxy.envoy.config.core.v3.RuntimeDouble.Builder builderForValue) { if (activeRequestBiasBuilder_ == null) { activeRequestBias_ = builderForValue.build(); onChanged(); } else { activeRequestBiasBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * The following formula is used to calculate the dynamic weights when hosts have different load
       * balancing weights:
       * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
       * The larger the active request bias is, the more aggressively active requests will lower the
       * effective weight when all host weights are not equal.
       * ``active_request_bias`` must be greater than or equal to 0.0.
       * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
       * of active requests at the time it picks a host and behaves like the Round Robin Load
       * Balancer.
       * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
       * weight by the number of active requests at the time it does a pick.
       * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
       * host sets changes, e.g., whenever there is a host membership update or a host load balancing
       * weight change.
       * .. note::
       *   This setting only takes effect if all host weights are not equal.
       * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; */ public Builder mergeActiveRequestBias(io.envoyproxy.envoy.config.core.v3.RuntimeDouble value) { if (activeRequestBiasBuilder_ == null) { if (activeRequestBias_ != null) { activeRequestBias_ = io.envoyproxy.envoy.config.core.v3.RuntimeDouble.newBuilder(activeRequestBias_).mergeFrom(value).buildPartial(); } else { activeRequestBias_ = value; } onChanged(); } else { activeRequestBiasBuilder_.mergeFrom(value); } return this; } /** *
       * The following formula is used to calculate the dynamic weights when hosts have different load
       * balancing weights:
       * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
       * The larger the active request bias is, the more aggressively active requests will lower the
       * effective weight when all host weights are not equal.
       * ``active_request_bias`` must be greater than or equal to 0.0.
       * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
       * of active requests at the time it picks a host and behaves like the Round Robin Load
       * Balancer.
       * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
       * weight by the number of active requests at the time it does a pick.
       * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
       * host sets changes, e.g., whenever there is a host membership update or a host load balancing
       * weight change.
       * .. note::
       *   This setting only takes effect if all host weights are not equal.
       * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; */ public Builder clearActiveRequestBias() { if (activeRequestBiasBuilder_ == null) { activeRequestBias_ = null; onChanged(); } else { activeRequestBias_ = null; activeRequestBiasBuilder_ = null; } return this; } /** *
       * The following formula is used to calculate the dynamic weights when hosts have different load
       * balancing weights:
       * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
       * The larger the active request bias is, the more aggressively active requests will lower the
       * effective weight when all host weights are not equal.
       * ``active_request_bias`` must be greater than or equal to 0.0.
       * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
       * of active requests at the time it picks a host and behaves like the Round Robin Load
       * Balancer.
       * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
       * weight by the number of active requests at the time it does a pick.
       * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
       * host sets changes, e.g., whenever there is a host membership update or a host load balancing
       * weight change.
       * .. note::
       *   This setting only takes effect if all host weights are not equal.
       * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; */ public io.envoyproxy.envoy.config.core.v3.RuntimeDouble.Builder getActiveRequestBiasBuilder() { onChanged(); return getActiveRequestBiasFieldBuilder().getBuilder(); } /** *
       * The following formula is used to calculate the dynamic weights when hosts have different load
       * balancing weights:
       * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
       * The larger the active request bias is, the more aggressively active requests will lower the
       * effective weight when all host weights are not equal.
       * ``active_request_bias`` must be greater than or equal to 0.0.
       * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
       * of active requests at the time it picks a host and behaves like the Round Robin Load
       * Balancer.
       * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
       * weight by the number of active requests at the time it does a pick.
       * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
       * host sets changes, e.g., whenever there is a host membership update or a host load balancing
       * weight change.
       * .. note::
       *   This setting only takes effect if all host weights are not equal.
       * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; */ public io.envoyproxy.envoy.config.core.v3.RuntimeDoubleOrBuilder getActiveRequestBiasOrBuilder() { if (activeRequestBiasBuilder_ != null) { return activeRequestBiasBuilder_.getMessageOrBuilder(); } else { return activeRequestBias_ == null ? io.envoyproxy.envoy.config.core.v3.RuntimeDouble.getDefaultInstance() : activeRequestBias_; } } /** *
       * The following formula is used to calculate the dynamic weights when hosts have different load
       * balancing weights:
       * ``weight = load_balancing_weight / (active_requests + 1)^active_request_bias``
       * The larger the active request bias is, the more aggressively active requests will lower the
       * effective weight when all host weights are not equal.
       * ``active_request_bias`` must be greater than or equal to 0.0.
       * When ``active_request_bias == 0.0`` the Least Request Load Balancer doesn't consider the number
       * of active requests at the time it picks a host and behaves like the Round Robin Load
       * Balancer.
       * When ``active_request_bias > 0.0`` the Least Request Load Balancer scales the load balancing
       * weight by the number of active requests at the time it does a pick.
       * The value is cached for performance reasons and refreshed whenever one of the Load Balancer's
       * host sets changes, e.g., whenever there is a host membership update or a host load balancing
       * weight change.
       * .. note::
       *   This setting only takes effect if all host weights are not equal.
       * 
* * .envoy.config.core.v3.RuntimeDouble active_request_bias = 2; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.RuntimeDouble, io.envoyproxy.envoy.config.core.v3.RuntimeDouble.Builder, io.envoyproxy.envoy.config.core.v3.RuntimeDoubleOrBuilder> getActiveRequestBiasFieldBuilder() { if (activeRequestBiasBuilder_ == null) { activeRequestBiasBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.RuntimeDouble, io.envoyproxy.envoy.config.core.v3.RuntimeDouble.Builder, io.envoyproxy.envoy.config.core.v3.RuntimeDoubleOrBuilder>( getActiveRequestBias(), getParentForChildren(), isClean()); activeRequestBias_ = null; } return activeRequestBiasBuilder_; } private io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig slowStartConfig_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfigOrBuilder> slowStartConfigBuilder_; /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; * @return Whether the slowStartConfig field is set. */ public boolean hasSlowStartConfig() { return slowStartConfigBuilder_ != null || slowStartConfig_ != null; } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; * @return The slowStartConfig. */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig getSlowStartConfig() { if (slowStartConfigBuilder_ == null) { return slowStartConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.getDefaultInstance() : slowStartConfig_; } else { return slowStartConfigBuilder_.getMessage(); } } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; */ public Builder setSlowStartConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig value) { if (slowStartConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } slowStartConfig_ = value; onChanged(); } else { slowStartConfigBuilder_.setMessage(value); } return this; } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; */ public Builder setSlowStartConfig( io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.Builder builderForValue) { if (slowStartConfigBuilder_ == null) { slowStartConfig_ = builderForValue.build(); onChanged(); } else { slowStartConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; */ public Builder mergeSlowStartConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig value) { if (slowStartConfigBuilder_ == null) { if (slowStartConfig_ != null) { slowStartConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.newBuilder(slowStartConfig_).mergeFrom(value).buildPartial(); } else { slowStartConfig_ = value; } onChanged(); } else { slowStartConfigBuilder_.mergeFrom(value); } return this; } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; */ public Builder clearSlowStartConfig() { if (slowStartConfigBuilder_ == null) { slowStartConfig_ = null; onChanged(); } else { slowStartConfig_ = null; slowStartConfigBuilder_ = null; } return this; } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.Builder getSlowStartConfigBuilder() { onChanged(); return getSlowStartConfigFieldBuilder().getBuilder(); } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfigOrBuilder getSlowStartConfigOrBuilder() { if (slowStartConfigBuilder_ != null) { return slowStartConfigBuilder_.getMessageOrBuilder(); } else { return slowStartConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.getDefaultInstance() : slowStartConfig_; } } /** *
       * Configuration for slow start mode.
       * If this configuration is not set, slow start will not be not enabled.
       * 
* * .envoy.config.cluster.v3.Cluster.SlowStartConfig slow_start_config = 3; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfigOrBuilder> getSlowStartConfigFieldBuilder() { if (slowStartConfigBuilder_ == null) { slowStartConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.SlowStartConfigOrBuilder>( getSlowStartConfig(), getParentForChildren(), isClean()); slowStartConfig_ = null; } return slowStartConfigBuilder_; } @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:envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public LeastRequestLbConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new LeastRequestLbConfig(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface RingHashLbConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.RingHashLbConfig) com.google.protobuf.MessageOrBuilder { /** *
     * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
     * provided host) the better the request distribution will reflect the desired weights. Defaults
     * to 1024 entries, and limited to 8M entries. See also
     * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
     * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } * @return Whether the minimumRingSize field is set. */ boolean hasMinimumRingSize(); /** *
     * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
     * provided host) the better the request distribution will reflect the desired weights. Defaults
     * to 1024 entries, and limited to 8M entries. See also
     * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
     * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } * @return The minimumRingSize. */ com.google.protobuf.UInt64Value getMinimumRingSize(); /** *
     * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
     * provided host) the better the request distribution will reflect the desired weights. Defaults
     * to 1024 entries, and limited to 8M entries. See also
     * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
     * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } */ com.google.protobuf.UInt64ValueOrBuilder getMinimumRingSizeOrBuilder(); /** *
     * The hash function used to hash hosts onto the ketama ring. The value defaults to
     * :ref:`XX_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
     * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction hash_function = 3 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for hashFunction. */ int getHashFunctionValue(); /** *
     * The hash function used to hash hosts onto the ketama ring. The value defaults to
     * :ref:`XX_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
     * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction hash_function = 3 [(.validate.rules) = { ... } * @return The hashFunction. */ io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction getHashFunction(); /** *
     * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
     * to further constrain resource use. See also
     * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
     * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } * @return Whether the maximumRingSize field is set. */ boolean hasMaximumRingSize(); /** *
     * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
     * to further constrain resource use. See also
     * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
     * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } * @return The maximumRingSize. */ com.google.protobuf.UInt64Value getMaximumRingSize(); /** *
     * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
     * to further constrain resource use. See also
     * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
     * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } */ com.google.protobuf.UInt64ValueOrBuilder getMaximumRingSizeOrBuilder(); } /** *
   * Specific configuration for the :ref:`RingHash<arch_overview_load_balancing_types_ring_hash>`
   * load balancing policy.
   * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.RingHashLbConfig} */ public static final class RingHashLbConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.RingHashLbConfig) RingHashLbConfigOrBuilder { private static final long serialVersionUID = 0L; // Use RingHashLbConfig.newBuilder() to construct. private RingHashLbConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private RingHashLbConfig() { hashFunction_ = 0; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new RingHashLbConfig(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private RingHashLbConfig( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { com.google.protobuf.UInt64Value.Builder subBuilder = null; if (minimumRingSize_ != null) { subBuilder = minimumRingSize_.toBuilder(); } minimumRingSize_ = input.readMessage(com.google.protobuf.UInt64Value.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(minimumRingSize_); minimumRingSize_ = subBuilder.buildPartial(); } break; } case 24: { int rawValue = input.readEnum(); hashFunction_ = rawValue; break; } case 34: { com.google.protobuf.UInt64Value.Builder subBuilder = null; if (maximumRingSize_ != null) { subBuilder = maximumRingSize_.toBuilder(); } maximumRingSize_ = input.readMessage(com.google.protobuf.UInt64Value.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(maximumRingSize_); maximumRingSize_ = subBuilder.buildPartial(); } break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RingHashLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RingHashLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.Builder.class); } /** *
     * The hash function used to hash hosts onto the ketama ring.
     * 
* * Protobuf enum {@code envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction} */ public enum HashFunction implements com.google.protobuf.ProtocolMessageEnum { /** *
       * Use `xxHash <https://github.com/Cyan4973/xxHash>`_, this is the default hash function.
       * 
* * XX_HASH = 0; */ XX_HASH(0), /** *
       * Use `MurmurHash2 <https://sites.google.com/site/murmurhash/>`_, this is compatible with
       * std:hash<string> in GNU libstdc++ 3.4.20 or above. This is typically the case when compiled
       * on Linux and not macOS.
       * 
* * MURMUR_HASH_2 = 1; */ MURMUR_HASH_2(1), UNRECOGNIZED(-1), ; /** *
       * Use `xxHash <https://github.com/Cyan4973/xxHash>`_, this is the default hash function.
       * 
* * XX_HASH = 0; */ public static final int XX_HASH_VALUE = 0; /** *
       * Use `MurmurHash2 <https://sites.google.com/site/murmurhash/>`_, this is compatible with
       * std:hash<string> in GNU libstdc++ 3.4.20 or above. This is typically the case when compiled
       * on Linux and not macOS.
       * 
* * MURMUR_HASH_2 = 1; */ public static final int MURMUR_HASH_2_VALUE = 1; 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 HashFunction 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 HashFunction forNumber(int value) { switch (value) { case 0: return XX_HASH; case 1: return MURMUR_HASH_2; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< HashFunction> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { public HashFunction findValueByNumber(int number) { return HashFunction.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.getDescriptor().getEnumTypes().get(0); } private static final HashFunction[] VALUES = values(); public static HashFunction 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 HashFunction(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction) } public static final int MINIMUM_RING_SIZE_FIELD_NUMBER = 1; private com.google.protobuf.UInt64Value minimumRingSize_; /** *
     * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
     * provided host) the better the request distribution will reflect the desired weights. Defaults
     * to 1024 entries, and limited to 8M entries. See also
     * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
     * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } * @return Whether the minimumRingSize field is set. */ @java.lang.Override public boolean hasMinimumRingSize() { return minimumRingSize_ != null; } /** *
     * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
     * provided host) the better the request distribution will reflect the desired weights. Defaults
     * to 1024 entries, and limited to 8M entries. See also
     * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
     * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } * @return The minimumRingSize. */ @java.lang.Override public com.google.protobuf.UInt64Value getMinimumRingSize() { return minimumRingSize_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : minimumRingSize_; } /** *
     * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
     * provided host) the better the request distribution will reflect the desired weights. Defaults
     * to 1024 entries, and limited to 8M entries. See also
     * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
     * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } */ @java.lang.Override public com.google.protobuf.UInt64ValueOrBuilder getMinimumRingSizeOrBuilder() { return getMinimumRingSize(); } public static final int HASH_FUNCTION_FIELD_NUMBER = 3; private int hashFunction_; /** *
     * The hash function used to hash hosts onto the ketama ring. The value defaults to
     * :ref:`XX_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
     * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction hash_function = 3 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for hashFunction. */ @java.lang.Override public int getHashFunctionValue() { return hashFunction_; } /** *
     * The hash function used to hash hosts onto the ketama ring. The value defaults to
     * :ref:`XX_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
     * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction hash_function = 3 [(.validate.rules) = { ... } * @return The hashFunction. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction getHashFunction() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction result = io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.valueOf(hashFunction_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.UNRECOGNIZED : result; } public static final int MAXIMUM_RING_SIZE_FIELD_NUMBER = 4; private com.google.protobuf.UInt64Value maximumRingSize_; /** *
     * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
     * to further constrain resource use. See also
     * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
     * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } * @return Whether the maximumRingSize field is set. */ @java.lang.Override public boolean hasMaximumRingSize() { return maximumRingSize_ != null; } /** *
     * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
     * to further constrain resource use. See also
     * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
     * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } * @return The maximumRingSize. */ @java.lang.Override public com.google.protobuf.UInt64Value getMaximumRingSize() { return maximumRingSize_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : maximumRingSize_; } /** *
     * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
     * to further constrain resource use. See also
     * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
     * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } */ @java.lang.Override public com.google.protobuf.UInt64ValueOrBuilder getMaximumRingSizeOrBuilder() { return getMaximumRingSize(); } 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 (minimumRingSize_ != null) { output.writeMessage(1, getMinimumRingSize()); } if (hashFunction_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH.getNumber()) { output.writeEnum(3, hashFunction_); } if (maximumRingSize_ != null) { output.writeMessage(4, getMaximumRingSize()); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (minimumRingSize_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getMinimumRingSize()); } if (hashFunction_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(3, hashFunction_); } if (maximumRingSize_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getMaximumRingSize()); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig) obj; if (hasMinimumRingSize() != other.hasMinimumRingSize()) return false; if (hasMinimumRingSize()) { if (!getMinimumRingSize() .equals(other.getMinimumRingSize())) return false; } if (hashFunction_ != other.hashFunction_) return false; if (hasMaximumRingSize() != other.hasMaximumRingSize()) return false; if (hasMaximumRingSize()) { if (!getMaximumRingSize() .equals(other.getMaximumRingSize())) 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 (hasMinimumRingSize()) { hash = (37 * hash) + MINIMUM_RING_SIZE_FIELD_NUMBER; hash = (53 * hash) + getMinimumRingSize().hashCode(); } hash = (37 * hash) + HASH_FUNCTION_FIELD_NUMBER; hash = (53 * hash) + hashFunction_; if (hasMaximumRingSize()) { hash = (37 * hash) + MAXIMUM_RING_SIZE_FIELD_NUMBER; hash = (53 * hash) + getMaximumRingSize().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig 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; } /** *
     * Specific configuration for the :ref:`RingHash<arch_overview_load_balancing_types_ring_hash>`
     * load balancing policy.
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.RingHashLbConfig} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.RingHashLbConfig) io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RingHashLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RingHashLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.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 (minimumRingSizeBuilder_ == null) { minimumRingSize_ = null; } else { minimumRingSize_ = null; minimumRingSizeBuilder_ = null; } hashFunction_ = 0; if (maximumRingSizeBuilder_ == null) { maximumRingSize_ = null; } else { maximumRingSize_ = null; maximumRingSizeBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RingHashLbConfig_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig(this); if (minimumRingSizeBuilder_ == null) { result.minimumRingSize_ = minimumRingSize_; } else { result.minimumRingSize_ = minimumRingSizeBuilder_.build(); } result.hashFunction_ = hashFunction_; if (maximumRingSizeBuilder_ == null) { result.maximumRingSize_ = maximumRingSize_; } else { result.maximumRingSize_ = maximumRingSizeBuilder_.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.getDefaultInstance()) return this; if (other.hasMinimumRingSize()) { mergeMinimumRingSize(other.getMinimumRingSize()); } if (other.hashFunction_ != 0) { setHashFunctionValue(other.getHashFunctionValue()); } if (other.hasMaximumRingSize()) { mergeMaximumRingSize(other.getMaximumRingSize()); } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private com.google.protobuf.UInt64Value minimumRingSize_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt64Value, com.google.protobuf.UInt64Value.Builder, com.google.protobuf.UInt64ValueOrBuilder> minimumRingSizeBuilder_; /** *
       * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
       * provided host) the better the request distribution will reflect the desired weights. Defaults
       * to 1024 entries, and limited to 8M entries. See also
       * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } * @return Whether the minimumRingSize field is set. */ public boolean hasMinimumRingSize() { return minimumRingSizeBuilder_ != null || minimumRingSize_ != null; } /** *
       * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
       * provided host) the better the request distribution will reflect the desired weights. Defaults
       * to 1024 entries, and limited to 8M entries. See also
       * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } * @return The minimumRingSize. */ public com.google.protobuf.UInt64Value getMinimumRingSize() { if (minimumRingSizeBuilder_ == null) { return minimumRingSize_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : minimumRingSize_; } else { return minimumRingSizeBuilder_.getMessage(); } } /** *
       * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
       * provided host) the better the request distribution will reflect the desired weights. Defaults
       * to 1024 entries, and limited to 8M entries. See also
       * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } */ public Builder setMinimumRingSize(com.google.protobuf.UInt64Value value) { if (minimumRingSizeBuilder_ == null) { if (value == null) { throw new NullPointerException(); } minimumRingSize_ = value; onChanged(); } else { minimumRingSizeBuilder_.setMessage(value); } return this; } /** *
       * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
       * provided host) the better the request distribution will reflect the desired weights. Defaults
       * to 1024 entries, and limited to 8M entries. See also
       * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } */ public Builder setMinimumRingSize( com.google.protobuf.UInt64Value.Builder builderForValue) { if (minimumRingSizeBuilder_ == null) { minimumRingSize_ = builderForValue.build(); onChanged(); } else { minimumRingSizeBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
       * provided host) the better the request distribution will reflect the desired weights. Defaults
       * to 1024 entries, and limited to 8M entries. See also
       * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } */ public Builder mergeMinimumRingSize(com.google.protobuf.UInt64Value value) { if (minimumRingSizeBuilder_ == null) { if (minimumRingSize_ != null) { minimumRingSize_ = com.google.protobuf.UInt64Value.newBuilder(minimumRingSize_).mergeFrom(value).buildPartial(); } else { minimumRingSize_ = value; } onChanged(); } else { minimumRingSizeBuilder_.mergeFrom(value); } return this; } /** *
       * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
       * provided host) the better the request distribution will reflect the desired weights. Defaults
       * to 1024 entries, and limited to 8M entries. See also
       * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } */ public Builder clearMinimumRingSize() { if (minimumRingSizeBuilder_ == null) { minimumRingSize_ = null; onChanged(); } else { minimumRingSize_ = null; minimumRingSizeBuilder_ = null; } return this; } /** *
       * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
       * provided host) the better the request distribution will reflect the desired weights. Defaults
       * to 1024 entries, and limited to 8M entries. See also
       * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } */ public com.google.protobuf.UInt64Value.Builder getMinimumRingSizeBuilder() { onChanged(); return getMinimumRingSizeFieldBuilder().getBuilder(); } /** *
       * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
       * provided host) the better the request distribution will reflect the desired weights. Defaults
       * to 1024 entries, and limited to 8M entries. See also
       * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } */ public com.google.protobuf.UInt64ValueOrBuilder getMinimumRingSizeOrBuilder() { if (minimumRingSizeBuilder_ != null) { return minimumRingSizeBuilder_.getMessageOrBuilder(); } else { return minimumRingSize_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : minimumRingSize_; } } /** *
       * Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
       * provided host) the better the request distribution will reflect the desired weights. Defaults
       * to 1024 entries, and limited to 8M entries. See also
       * :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value minimum_ring_size = 1 [(.validate.rules) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt64Value, com.google.protobuf.UInt64Value.Builder, com.google.protobuf.UInt64ValueOrBuilder> getMinimumRingSizeFieldBuilder() { if (minimumRingSizeBuilder_ == null) { minimumRingSizeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt64Value, com.google.protobuf.UInt64Value.Builder, com.google.protobuf.UInt64ValueOrBuilder>( getMinimumRingSize(), getParentForChildren(), isClean()); minimumRingSize_ = null; } return minimumRingSizeBuilder_; } private int hashFunction_ = 0; /** *
       * The hash function used to hash hosts onto the ketama ring. The value defaults to
       * :ref:`XX_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
       * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction hash_function = 3 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for hashFunction. */ @java.lang.Override public int getHashFunctionValue() { return hashFunction_; } /** *
       * The hash function used to hash hosts onto the ketama ring. The value defaults to
       * :ref:`XX_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
       * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction hash_function = 3 [(.validate.rules) = { ... } * @param value The enum numeric value on the wire for hashFunction to set. * @return This builder for chaining. */ public Builder setHashFunctionValue(int value) { hashFunction_ = value; onChanged(); return this; } /** *
       * The hash function used to hash hosts onto the ketama ring. The value defaults to
       * :ref:`XX_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
       * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction hash_function = 3 [(.validate.rules) = { ... } * @return The hashFunction. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction getHashFunction() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction result = io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.valueOf(hashFunction_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.UNRECOGNIZED : result; } /** *
       * The hash function used to hash hosts onto the ketama ring. The value defaults to
       * :ref:`XX_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
       * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction hash_function = 3 [(.validate.rules) = { ... } * @param value The hashFunction to set. * @return This builder for chaining. */ public Builder setHashFunction(io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction value) { if (value == null) { throw new NullPointerException(); } hashFunction_ = value.getNumber(); onChanged(); return this; } /** *
       * The hash function used to hash hosts onto the ketama ring. The value defaults to
       * :ref:`XX_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
       * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction hash_function = 3 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearHashFunction() { hashFunction_ = 0; onChanged(); return this; } private com.google.protobuf.UInt64Value maximumRingSize_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt64Value, com.google.protobuf.UInt64Value.Builder, com.google.protobuf.UInt64ValueOrBuilder> maximumRingSizeBuilder_; /** *
       * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
       * to further constrain resource use. See also
       * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } * @return Whether the maximumRingSize field is set. */ public boolean hasMaximumRingSize() { return maximumRingSizeBuilder_ != null || maximumRingSize_ != null; } /** *
       * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
       * to further constrain resource use. See also
       * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } * @return The maximumRingSize. */ public com.google.protobuf.UInt64Value getMaximumRingSize() { if (maximumRingSizeBuilder_ == null) { return maximumRingSize_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : maximumRingSize_; } else { return maximumRingSizeBuilder_.getMessage(); } } /** *
       * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
       * to further constrain resource use. See also
       * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } */ public Builder setMaximumRingSize(com.google.protobuf.UInt64Value value) { if (maximumRingSizeBuilder_ == null) { if (value == null) { throw new NullPointerException(); } maximumRingSize_ = value; onChanged(); } else { maximumRingSizeBuilder_.setMessage(value); } return this; } /** *
       * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
       * to further constrain resource use. See also
       * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } */ public Builder setMaximumRingSize( com.google.protobuf.UInt64Value.Builder builderForValue) { if (maximumRingSizeBuilder_ == null) { maximumRingSize_ = builderForValue.build(); onChanged(); } else { maximumRingSizeBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
       * to further constrain resource use. See also
       * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } */ public Builder mergeMaximumRingSize(com.google.protobuf.UInt64Value value) { if (maximumRingSizeBuilder_ == null) { if (maximumRingSize_ != null) { maximumRingSize_ = com.google.protobuf.UInt64Value.newBuilder(maximumRingSize_).mergeFrom(value).buildPartial(); } else { maximumRingSize_ = value; } onChanged(); } else { maximumRingSizeBuilder_.mergeFrom(value); } return this; } /** *
       * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
       * to further constrain resource use. See also
       * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } */ public Builder clearMaximumRingSize() { if (maximumRingSizeBuilder_ == null) { maximumRingSize_ = null; onChanged(); } else { maximumRingSize_ = null; maximumRingSizeBuilder_ = null; } return this; } /** *
       * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
       * to further constrain resource use. See also
       * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } */ public com.google.protobuf.UInt64Value.Builder getMaximumRingSizeBuilder() { onChanged(); return getMaximumRingSizeFieldBuilder().getBuilder(); } /** *
       * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
       * to further constrain resource use. See also
       * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } */ public com.google.protobuf.UInt64ValueOrBuilder getMaximumRingSizeOrBuilder() { if (maximumRingSizeBuilder_ != null) { return maximumRingSizeBuilder_.getMessageOrBuilder(); } else { return maximumRingSize_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : maximumRingSize_; } } /** *
       * Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
       * to further constrain resource use. See also
       * :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
       * 
* * .google.protobuf.UInt64Value maximum_ring_size = 4 [(.validate.rules) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt64Value, com.google.protobuf.UInt64Value.Builder, com.google.protobuf.UInt64ValueOrBuilder> getMaximumRingSizeFieldBuilder() { if (maximumRingSizeBuilder_ == null) { maximumRingSizeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt64Value, com.google.protobuf.UInt64Value.Builder, com.google.protobuf.UInt64ValueOrBuilder>( getMaximumRingSize(), getParentForChildren(), isClean()); maximumRingSize_ = null; } return maximumRingSizeBuilder_; } @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:envoy.config.cluster.v3.Cluster.RingHashLbConfig) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.RingHashLbConfig) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public RingHashLbConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new RingHashLbConfig(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface MaglevLbConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.MaglevLbConfig) com.google.protobuf.MessageOrBuilder { /** *
     * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
     * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
     * upstream as it was before. Increasing the table size reduces the amount of disruption.
     * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
     * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } * @return Whether the tableSize field is set. */ boolean hasTableSize(); /** *
     * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
     * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
     * upstream as it was before. Increasing the table size reduces the amount of disruption.
     * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
     * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } * @return The tableSize. */ com.google.protobuf.UInt64Value getTableSize(); /** *
     * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
     * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
     * upstream as it was before. Increasing the table size reduces the amount of disruption.
     * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
     * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } */ com.google.protobuf.UInt64ValueOrBuilder getTableSizeOrBuilder(); } /** *
   * Specific configuration for the :ref:`Maglev<arch_overview_load_balancing_types_maglev>`
   * load balancing policy.
   * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.MaglevLbConfig} */ public static final class MaglevLbConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.MaglevLbConfig) MaglevLbConfigOrBuilder { private static final long serialVersionUID = 0L; // Use MaglevLbConfig.newBuilder() to construct. private MaglevLbConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private MaglevLbConfig() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new MaglevLbConfig(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private MaglevLbConfig( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { com.google.protobuf.UInt64Value.Builder subBuilder = null; if (tableSize_ != null) { subBuilder = tableSize_.toBuilder(); } tableSize_ = input.readMessage(com.google.protobuf.UInt64Value.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(tableSize_); tableSize_ = subBuilder.buildPartial(); } break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_MaglevLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_MaglevLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.Builder.class); } public static final int TABLE_SIZE_FIELD_NUMBER = 1; private com.google.protobuf.UInt64Value tableSize_; /** *
     * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
     * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
     * upstream as it was before. Increasing the table size reduces the amount of disruption.
     * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
     * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } * @return Whether the tableSize field is set. */ @java.lang.Override public boolean hasTableSize() { return tableSize_ != null; } /** *
     * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
     * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
     * upstream as it was before. Increasing the table size reduces the amount of disruption.
     * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
     * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } * @return The tableSize. */ @java.lang.Override public com.google.protobuf.UInt64Value getTableSize() { return tableSize_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : tableSize_; } /** *
     * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
     * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
     * upstream as it was before. Increasing the table size reduces the amount of disruption.
     * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
     * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } */ @java.lang.Override public com.google.protobuf.UInt64ValueOrBuilder getTableSizeOrBuilder() { return getTableSize(); } 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 (tableSize_ != null) { output.writeMessage(1, getTableSize()); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (tableSize_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getTableSize()); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig) obj; if (hasTableSize() != other.hasTableSize()) return false; if (hasTableSize()) { if (!getTableSize() .equals(other.getTableSize())) 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 (hasTableSize()) { hash = (37 * hash) + TABLE_SIZE_FIELD_NUMBER; hash = (53 * hash) + getTableSize().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig 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; } /** *
     * Specific configuration for the :ref:`Maglev<arch_overview_load_balancing_types_maglev>`
     * load balancing policy.
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.MaglevLbConfig} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.MaglevLbConfig) io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_MaglevLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_MaglevLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.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 (tableSizeBuilder_ == null) { tableSize_ = null; } else { tableSize_ = null; tableSizeBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_MaglevLbConfig_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig(this); if (tableSizeBuilder_ == null) { result.tableSize_ = tableSize_; } else { result.tableSize_ = tableSizeBuilder_.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.getDefaultInstance()) return this; if (other.hasTableSize()) { mergeTableSize(other.getTableSize()); } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private com.google.protobuf.UInt64Value tableSize_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt64Value, com.google.protobuf.UInt64Value.Builder, com.google.protobuf.UInt64ValueOrBuilder> tableSizeBuilder_; /** *
       * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
       * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
       * upstream as it was before. Increasing the table size reduces the amount of disruption.
       * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
       * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } * @return Whether the tableSize field is set. */ public boolean hasTableSize() { return tableSizeBuilder_ != null || tableSize_ != null; } /** *
       * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
       * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
       * upstream as it was before. Increasing the table size reduces the amount of disruption.
       * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
       * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } * @return The tableSize. */ public com.google.protobuf.UInt64Value getTableSize() { if (tableSizeBuilder_ == null) { return tableSize_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : tableSize_; } else { return tableSizeBuilder_.getMessage(); } } /** *
       * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
       * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
       * upstream as it was before. Increasing the table size reduces the amount of disruption.
       * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
       * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } */ public Builder setTableSize(com.google.protobuf.UInt64Value value) { if (tableSizeBuilder_ == null) { if (value == null) { throw new NullPointerException(); } tableSize_ = value; onChanged(); } else { tableSizeBuilder_.setMessage(value); } return this; } /** *
       * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
       * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
       * upstream as it was before. Increasing the table size reduces the amount of disruption.
       * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
       * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } */ public Builder setTableSize( com.google.protobuf.UInt64Value.Builder builderForValue) { if (tableSizeBuilder_ == null) { tableSize_ = builderForValue.build(); onChanged(); } else { tableSizeBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
       * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
       * upstream as it was before. Increasing the table size reduces the amount of disruption.
       * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
       * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } */ public Builder mergeTableSize(com.google.protobuf.UInt64Value value) { if (tableSizeBuilder_ == null) { if (tableSize_ != null) { tableSize_ = com.google.protobuf.UInt64Value.newBuilder(tableSize_).mergeFrom(value).buildPartial(); } else { tableSize_ = value; } onChanged(); } else { tableSizeBuilder_.mergeFrom(value); } return this; } /** *
       * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
       * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
       * upstream as it was before. Increasing the table size reduces the amount of disruption.
       * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
       * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } */ public Builder clearTableSize() { if (tableSizeBuilder_ == null) { tableSize_ = null; onChanged(); } else { tableSize_ = null; tableSizeBuilder_ = null; } return this; } /** *
       * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
       * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
       * upstream as it was before. Increasing the table size reduces the amount of disruption.
       * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
       * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } */ public com.google.protobuf.UInt64Value.Builder getTableSizeBuilder() { onChanged(); return getTableSizeFieldBuilder().getBuilder(); } /** *
       * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
       * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
       * upstream as it was before. Increasing the table size reduces the amount of disruption.
       * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
       * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } */ public com.google.protobuf.UInt64ValueOrBuilder getTableSizeOrBuilder() { if (tableSizeBuilder_ != null) { return tableSizeBuilder_.getMessageOrBuilder(); } else { return tableSize_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : tableSize_; } } /** *
       * The table size for Maglev hashing. Maglev aims for "minimal disruption" rather than an absolute guarantee.
       * Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same
       * upstream as it was before. Increasing the table size reduces the amount of disruption.
       * The table size must be prime number limited to 5000011. If it is not specified, the default is 65537.
       * 
* * .google.protobuf.UInt64Value table_size = 1 [(.validate.rules) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt64Value, com.google.protobuf.UInt64Value.Builder, com.google.protobuf.UInt64ValueOrBuilder> getTableSizeFieldBuilder() { if (tableSizeBuilder_ == null) { tableSizeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt64Value, com.google.protobuf.UInt64Value.Builder, com.google.protobuf.UInt64ValueOrBuilder>( getTableSize(), getParentForChildren(), isClean()); tableSize_ = null; } return tableSizeBuilder_; } @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:envoy.config.cluster.v3.Cluster.MaglevLbConfig) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.MaglevLbConfig) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public MaglevLbConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new MaglevLbConfig(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface OriginalDstLbConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) com.google.protobuf.MessageOrBuilder { /** *
     * When true, a HTTP header can be used to override the original dst address. The default header is
     * :ref:`x-envoy-original-dst-host <config_http_conn_man_headers_x-envoy-original-dst-host>`.
     * .. attention::
     *   This header isn't sanitized by default, so enabling this feature allows HTTP clients to
     *   route traffic to arbitrary hosts and/or ports, which may have serious security
     *   consequences.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * bool use_http_header = 1; * @return The useHttpHeader. */ boolean getUseHttpHeader(); /** *
     * The http header to override destination address if :ref:`use_http_header <envoy_v3_api_field_config.cluster.v3.Cluster.OriginalDstLbConfig.use_http_header>`.
     * is set to true. If the value is empty, :ref:`x-envoy-original-dst-host <config_http_conn_man_headers_x-envoy-original-dst-host>` will be used.
     * 
* * string http_header_name = 2; * @return The httpHeaderName. */ java.lang.String getHttpHeaderName(); /** *
     * The http header to override destination address if :ref:`use_http_header <envoy_v3_api_field_config.cluster.v3.Cluster.OriginalDstLbConfig.use_http_header>`.
     * is set to true. If the value is empty, :ref:`x-envoy-original-dst-host <config_http_conn_man_headers_x-envoy-original-dst-host>` will be used.
     * 
* * string http_header_name = 2; * @return The bytes for httpHeaderName. */ com.google.protobuf.ByteString getHttpHeaderNameBytes(); /** *
     * The port to override for the original dst address. This port
     * will take precedence over filter state and header override ports
     * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } * @return Whether the upstreamPortOverride field is set. */ boolean hasUpstreamPortOverride(); /** *
     * The port to override for the original dst address. This port
     * will take precedence over filter state and header override ports
     * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } * @return The upstreamPortOverride. */ com.google.protobuf.UInt32Value getUpstreamPortOverride(); /** *
     * The port to override for the original dst address. This port
     * will take precedence over filter state and header override ports
     * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } */ com.google.protobuf.UInt32ValueOrBuilder getUpstreamPortOverrideOrBuilder(); } /** *
   * Specific configuration for the
   * :ref:`Original Destination <arch_overview_load_balancing_types_original_destination>`
   * load balancing policy.
   * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.OriginalDstLbConfig} */ public static final class OriginalDstLbConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) OriginalDstLbConfigOrBuilder { private static final long serialVersionUID = 0L; // Use OriginalDstLbConfig.newBuilder() to construct. private OriginalDstLbConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private OriginalDstLbConfig() { httpHeaderName_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new OriginalDstLbConfig(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private OriginalDstLbConfig( 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: { useHttpHeader_ = input.readBool(); break; } case 18: { java.lang.String s = input.readStringRequireUtf8(); httpHeaderName_ = s; break; } case 26: { com.google.protobuf.UInt32Value.Builder subBuilder = null; if (upstreamPortOverride_ != null) { subBuilder = upstreamPortOverride_.toBuilder(); } upstreamPortOverride_ = input.readMessage(com.google.protobuf.UInt32Value.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(upstreamPortOverride_); upstreamPortOverride_ = subBuilder.buildPartial(); } break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.Builder.class); } public static final int USE_HTTP_HEADER_FIELD_NUMBER = 1; private boolean useHttpHeader_; /** *
     * When true, a HTTP header can be used to override the original dst address. The default header is
     * :ref:`x-envoy-original-dst-host <config_http_conn_man_headers_x-envoy-original-dst-host>`.
     * .. attention::
     *   This header isn't sanitized by default, so enabling this feature allows HTTP clients to
     *   route traffic to arbitrary hosts and/or ports, which may have serious security
     *   consequences.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * bool use_http_header = 1; * @return The useHttpHeader. */ @java.lang.Override public boolean getUseHttpHeader() { return useHttpHeader_; } public static final int HTTP_HEADER_NAME_FIELD_NUMBER = 2; private volatile java.lang.Object httpHeaderName_; /** *
     * The http header to override destination address if :ref:`use_http_header <envoy_v3_api_field_config.cluster.v3.Cluster.OriginalDstLbConfig.use_http_header>`.
     * is set to true. If the value is empty, :ref:`x-envoy-original-dst-host <config_http_conn_man_headers_x-envoy-original-dst-host>` will be used.
     * 
* * string http_header_name = 2; * @return The httpHeaderName. */ @java.lang.Override public java.lang.String getHttpHeaderName() { java.lang.Object ref = httpHeaderName_; 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(); httpHeaderName_ = s; return s; } } /** *
     * The http header to override destination address if :ref:`use_http_header <envoy_v3_api_field_config.cluster.v3.Cluster.OriginalDstLbConfig.use_http_header>`.
     * is set to true. If the value is empty, :ref:`x-envoy-original-dst-host <config_http_conn_man_headers_x-envoy-original-dst-host>` will be used.
     * 
* * string http_header_name = 2; * @return The bytes for httpHeaderName. */ @java.lang.Override public com.google.protobuf.ByteString getHttpHeaderNameBytes() { java.lang.Object ref = httpHeaderName_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); httpHeaderName_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int UPSTREAM_PORT_OVERRIDE_FIELD_NUMBER = 3; private com.google.protobuf.UInt32Value upstreamPortOverride_; /** *
     * The port to override for the original dst address. This port
     * will take precedence over filter state and header override ports
     * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } * @return Whether the upstreamPortOverride field is set. */ @java.lang.Override public boolean hasUpstreamPortOverride() { return upstreamPortOverride_ != null; } /** *
     * The port to override for the original dst address. This port
     * will take precedence over filter state and header override ports
     * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } * @return The upstreamPortOverride. */ @java.lang.Override public com.google.protobuf.UInt32Value getUpstreamPortOverride() { return upstreamPortOverride_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : upstreamPortOverride_; } /** *
     * The port to override for the original dst address. This port
     * will take precedence over filter state and header override ports
     * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } */ @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getUpstreamPortOverrideOrBuilder() { return getUpstreamPortOverride(); } 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 (useHttpHeader_ != false) { output.writeBool(1, useHttpHeader_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(httpHeaderName_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, httpHeaderName_); } if (upstreamPortOverride_ != null) { output.writeMessage(3, getUpstreamPortOverride()); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (useHttpHeader_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(1, useHttpHeader_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(httpHeaderName_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, httpHeaderName_); } if (upstreamPortOverride_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, getUpstreamPortOverride()); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) obj; if (getUseHttpHeader() != other.getUseHttpHeader()) return false; if (!getHttpHeaderName() .equals(other.getHttpHeaderName())) return false; if (hasUpstreamPortOverride() != other.hasUpstreamPortOverride()) return false; if (hasUpstreamPortOverride()) { if (!getUpstreamPortOverride() .equals(other.getUpstreamPortOverride())) 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) + USE_HTTP_HEADER_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getUseHttpHeader()); hash = (37 * hash) + HTTP_HEADER_NAME_FIELD_NUMBER; hash = (53 * hash) + getHttpHeaderName().hashCode(); if (hasUpstreamPortOverride()) { hash = (37 * hash) + UPSTREAM_PORT_OVERRIDE_FIELD_NUMBER; hash = (53 * hash) + getUpstreamPortOverride().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig 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; } /** *
     * Specific configuration for the
     * :ref:`Original Destination <arch_overview_load_balancing_types_original_destination>`
     * load balancing policy.
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.OriginalDstLbConfig} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.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(); useHttpHeader_ = false; httpHeaderName_ = ""; if (upstreamPortOverrideBuilder_ == null) { upstreamPortOverride_ = null; } else { upstreamPortOverride_ = null; upstreamPortOverrideBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_OriginalDstLbConfig_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig(this); result.useHttpHeader_ = useHttpHeader_; result.httpHeaderName_ = httpHeaderName_; if (upstreamPortOverrideBuilder_ == null) { result.upstreamPortOverride_ = upstreamPortOverride_; } else { result.upstreamPortOverride_ = upstreamPortOverrideBuilder_.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.getDefaultInstance()) return this; if (other.getUseHttpHeader() != false) { setUseHttpHeader(other.getUseHttpHeader()); } if (!other.getHttpHeaderName().isEmpty()) { httpHeaderName_ = other.httpHeaderName_; onChanged(); } if (other.hasUpstreamPortOverride()) { mergeUpstreamPortOverride(other.getUpstreamPortOverride()); } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private boolean useHttpHeader_ ; /** *
       * When true, a HTTP header can be used to override the original dst address. The default header is
       * :ref:`x-envoy-original-dst-host <config_http_conn_man_headers_x-envoy-original-dst-host>`.
       * .. attention::
       *   This header isn't sanitized by default, so enabling this feature allows HTTP clients to
       *   route traffic to arbitrary hosts and/or ports, which may have serious security
       *   consequences.
       * .. note::
       *   If the header appears multiple times only the first value is used.
       * 
* * bool use_http_header = 1; * @return The useHttpHeader. */ @java.lang.Override public boolean getUseHttpHeader() { return useHttpHeader_; } /** *
       * When true, a HTTP header can be used to override the original dst address. The default header is
       * :ref:`x-envoy-original-dst-host <config_http_conn_man_headers_x-envoy-original-dst-host>`.
       * .. attention::
       *   This header isn't sanitized by default, so enabling this feature allows HTTP clients to
       *   route traffic to arbitrary hosts and/or ports, which may have serious security
       *   consequences.
       * .. note::
       *   If the header appears multiple times only the first value is used.
       * 
* * bool use_http_header = 1; * @param value The useHttpHeader to set. * @return This builder for chaining. */ public Builder setUseHttpHeader(boolean value) { useHttpHeader_ = value; onChanged(); return this; } /** *
       * When true, a HTTP header can be used to override the original dst address. The default header is
       * :ref:`x-envoy-original-dst-host <config_http_conn_man_headers_x-envoy-original-dst-host>`.
       * .. attention::
       *   This header isn't sanitized by default, so enabling this feature allows HTTP clients to
       *   route traffic to arbitrary hosts and/or ports, which may have serious security
       *   consequences.
       * .. note::
       *   If the header appears multiple times only the first value is used.
       * 
* * bool use_http_header = 1; * @return This builder for chaining. */ public Builder clearUseHttpHeader() { useHttpHeader_ = false; onChanged(); return this; } private java.lang.Object httpHeaderName_ = ""; /** *
       * The http header to override destination address if :ref:`use_http_header <envoy_v3_api_field_config.cluster.v3.Cluster.OriginalDstLbConfig.use_http_header>`.
       * is set to true. If the value is empty, :ref:`x-envoy-original-dst-host <config_http_conn_man_headers_x-envoy-original-dst-host>` will be used.
       * 
* * string http_header_name = 2; * @return The httpHeaderName. */ public java.lang.String getHttpHeaderName() { java.lang.Object ref = httpHeaderName_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); httpHeaderName_ = s; return s; } else { return (java.lang.String) ref; } } /** *
       * The http header to override destination address if :ref:`use_http_header <envoy_v3_api_field_config.cluster.v3.Cluster.OriginalDstLbConfig.use_http_header>`.
       * is set to true. If the value is empty, :ref:`x-envoy-original-dst-host <config_http_conn_man_headers_x-envoy-original-dst-host>` will be used.
       * 
* * string http_header_name = 2; * @return The bytes for httpHeaderName. */ public com.google.protobuf.ByteString getHttpHeaderNameBytes() { java.lang.Object ref = httpHeaderName_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); httpHeaderName_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
       * The http header to override destination address if :ref:`use_http_header <envoy_v3_api_field_config.cluster.v3.Cluster.OriginalDstLbConfig.use_http_header>`.
       * is set to true. If the value is empty, :ref:`x-envoy-original-dst-host <config_http_conn_man_headers_x-envoy-original-dst-host>` will be used.
       * 
* * string http_header_name = 2; * @param value The httpHeaderName to set. * @return This builder for chaining. */ public Builder setHttpHeaderName( java.lang.String value) { if (value == null) { throw new NullPointerException(); } httpHeaderName_ = value; onChanged(); return this; } /** *
       * The http header to override destination address if :ref:`use_http_header <envoy_v3_api_field_config.cluster.v3.Cluster.OriginalDstLbConfig.use_http_header>`.
       * is set to true. If the value is empty, :ref:`x-envoy-original-dst-host <config_http_conn_man_headers_x-envoy-original-dst-host>` will be used.
       * 
* * string http_header_name = 2; * @return This builder for chaining. */ public Builder clearHttpHeaderName() { httpHeaderName_ = getDefaultInstance().getHttpHeaderName(); onChanged(); return this; } /** *
       * The http header to override destination address if :ref:`use_http_header <envoy_v3_api_field_config.cluster.v3.Cluster.OriginalDstLbConfig.use_http_header>`.
       * is set to true. If the value is empty, :ref:`x-envoy-original-dst-host <config_http_conn_man_headers_x-envoy-original-dst-host>` will be used.
       * 
* * string http_header_name = 2; * @param value The bytes for httpHeaderName to set. * @return This builder for chaining. */ public Builder setHttpHeaderNameBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); httpHeaderName_ = value; onChanged(); return this; } private com.google.protobuf.UInt32Value upstreamPortOverride_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder> upstreamPortOverrideBuilder_; /** *
       * The port to override for the original dst address. This port
       * will take precedence over filter state and header override ports
       * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } * @return Whether the upstreamPortOverride field is set. */ public boolean hasUpstreamPortOverride() { return upstreamPortOverrideBuilder_ != null || upstreamPortOverride_ != null; } /** *
       * The port to override for the original dst address. This port
       * will take precedence over filter state and header override ports
       * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } * @return The upstreamPortOverride. */ public com.google.protobuf.UInt32Value getUpstreamPortOverride() { if (upstreamPortOverrideBuilder_ == null) { return upstreamPortOverride_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : upstreamPortOverride_; } else { return upstreamPortOverrideBuilder_.getMessage(); } } /** *
       * The port to override for the original dst address. This port
       * will take precedence over filter state and header override ports
       * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } */ public Builder setUpstreamPortOverride(com.google.protobuf.UInt32Value value) { if (upstreamPortOverrideBuilder_ == null) { if (value == null) { throw new NullPointerException(); } upstreamPortOverride_ = value; onChanged(); } else { upstreamPortOverrideBuilder_.setMessage(value); } return this; } /** *
       * The port to override for the original dst address. This port
       * will take precedence over filter state and header override ports
       * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } */ public Builder setUpstreamPortOverride( com.google.protobuf.UInt32Value.Builder builderForValue) { if (upstreamPortOverrideBuilder_ == null) { upstreamPortOverride_ = builderForValue.build(); onChanged(); } else { upstreamPortOverrideBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * The port to override for the original dst address. This port
       * will take precedence over filter state and header override ports
       * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } */ public Builder mergeUpstreamPortOverride(com.google.protobuf.UInt32Value value) { if (upstreamPortOverrideBuilder_ == null) { if (upstreamPortOverride_ != null) { upstreamPortOverride_ = com.google.protobuf.UInt32Value.newBuilder(upstreamPortOverride_).mergeFrom(value).buildPartial(); } else { upstreamPortOverride_ = value; } onChanged(); } else { upstreamPortOverrideBuilder_.mergeFrom(value); } return this; } /** *
       * The port to override for the original dst address. This port
       * will take precedence over filter state and header override ports
       * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } */ public Builder clearUpstreamPortOverride() { if (upstreamPortOverrideBuilder_ == null) { upstreamPortOverride_ = null; onChanged(); } else { upstreamPortOverride_ = null; upstreamPortOverrideBuilder_ = null; } return this; } /** *
       * The port to override for the original dst address. This port
       * will take precedence over filter state and header override ports
       * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } */ public com.google.protobuf.UInt32Value.Builder getUpstreamPortOverrideBuilder() { onChanged(); return getUpstreamPortOverrideFieldBuilder().getBuilder(); } /** *
       * The port to override for the original dst address. This port
       * will take precedence over filter state and header override ports
       * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } */ public com.google.protobuf.UInt32ValueOrBuilder getUpstreamPortOverrideOrBuilder() { if (upstreamPortOverrideBuilder_ != null) { return upstreamPortOverrideBuilder_.getMessageOrBuilder(); } else { return upstreamPortOverride_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : upstreamPortOverride_; } } /** *
       * The port to override for the original dst address. This port
       * will take precedence over filter state and header override ports
       * 
* * .google.protobuf.UInt32Value upstream_port_override = 3 [(.validate.rules) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder> getUpstreamPortOverrideFieldBuilder() { if (upstreamPortOverrideBuilder_ == null) { upstreamPortOverrideBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder>( getUpstreamPortOverride(), getParentForChildren(), isClean()); upstreamPortOverride_ = null; } return upstreamPortOverrideBuilder_; } @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:envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public OriginalDstLbConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new OriginalDstLbConfig(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface CommonLbConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.CommonLbConfig) com.google.protobuf.MessageOrBuilder { /** *
     * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
     * If not specified, the default is 50%.
     * To disable panic mode, set to 0%.
     * .. note::
     *   The specified percent will be truncated to the nearest 1%.
     * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; * @return Whether the healthyPanicThreshold field is set. */ boolean hasHealthyPanicThreshold(); /** *
     * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
     * If not specified, the default is 50%.
     * To disable panic mode, set to 0%.
     * .. note::
     *   The specified percent will be truncated to the nearest 1%.
     * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; * @return The healthyPanicThreshold. */ io.envoyproxy.envoy.type.v3.Percent getHealthyPanicThreshold(); /** *
     * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
     * If not specified, the default is 50%.
     * To disable panic mode, set to 0%.
     * .. note::
     *   The specified percent will be truncated to the nearest 1%.
     * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; */ io.envoyproxy.envoy.type.v3.PercentOrBuilder getHealthyPanicThresholdOrBuilder(); /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; * @return Whether the zoneAwareLbConfig field is set. */ boolean hasZoneAwareLbConfig(); /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; * @return The zoneAwareLbConfig. */ io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig getZoneAwareLbConfig(); /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; */ io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfigOrBuilder getZoneAwareLbConfigOrBuilder(); /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; * @return Whether the localityWeightedLbConfig field is set. */ boolean hasLocalityWeightedLbConfig(); /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; * @return The localityWeightedLbConfig. */ io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig getLocalityWeightedLbConfig(); /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; */ io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfigOrBuilder getLocalityWeightedLbConfigOrBuilder(); /** *
     * If set, all health check/weight/metadata updates that happen within this duration will be
     * merged and delivered in one shot when the duration expires. The start of the duration is when
     * the first update happens. This is useful for big clusters, with potentially noisy deploys
     * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
     * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
     * cluster). Please always keep in mind that the use of sandbox technologies may change this
     * behavior.
     * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
     * window to 0.
     * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
     * because merging those updates isn't currently safe. See
     * https://github.com/envoyproxy/envoy/pull/3941.
     * 
* * .google.protobuf.Duration update_merge_window = 4; * @return Whether the updateMergeWindow field is set. */ boolean hasUpdateMergeWindow(); /** *
     * If set, all health check/weight/metadata updates that happen within this duration will be
     * merged and delivered in one shot when the duration expires. The start of the duration is when
     * the first update happens. This is useful for big clusters, with potentially noisy deploys
     * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
     * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
     * cluster). Please always keep in mind that the use of sandbox technologies may change this
     * behavior.
     * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
     * window to 0.
     * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
     * because merging those updates isn't currently safe. See
     * https://github.com/envoyproxy/envoy/pull/3941.
     * 
* * .google.protobuf.Duration update_merge_window = 4; * @return The updateMergeWindow. */ com.google.protobuf.Duration getUpdateMergeWindow(); /** *
     * If set, all health check/weight/metadata updates that happen within this duration will be
     * merged and delivered in one shot when the duration expires. The start of the duration is when
     * the first update happens. This is useful for big clusters, with potentially noisy deploys
     * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
     * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
     * cluster). Please always keep in mind that the use of sandbox technologies may change this
     * behavior.
     * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
     * window to 0.
     * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
     * because merging those updates isn't currently safe. See
     * https://github.com/envoyproxy/envoy/pull/3941.
     * 
* * .google.protobuf.Duration update_merge_window = 4; */ com.google.protobuf.DurationOrBuilder getUpdateMergeWindowOrBuilder(); /** *
     * If set to true, Envoy will :ref:`exclude <arch_overview_load_balancing_excluded>` new hosts
     * when computing load balancing weights until they have been health checked for the first time.
     * This will have no effect unless active health checking is also configured.
     * 
* * bool ignore_new_hosts_until_first_hc = 5; * @return The ignoreNewHostsUntilFirstHc. */ boolean getIgnoreNewHostsUntilFirstHc(); /** *
     * If set to ``true``, the cluster manager will drain all existing
     * connections to upstream hosts whenever hosts are added or removed from the cluster.
     * 
* * bool close_connections_on_host_set_change = 6; * @return The closeConnectionsOnHostSetChange. */ boolean getCloseConnectionsOnHostSetChange(); /** *
     * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; * @return Whether the consistentHashingLbConfig field is set. */ boolean hasConsistentHashingLbConfig(); /** *
     * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; * @return The consistentHashingLbConfig. */ io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig getConsistentHashingLbConfig(); /** *
     * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; */ io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfigOrBuilder getConsistentHashingLbConfigOrBuilder(); /** *
     * This controls what hosts are considered valid when using
     * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
     * filters to modify the load balancing decision.
     * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
     * set with an empty set of statuses then host overrides will be ignored by the load balancing.
     * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; * @return Whether the overrideHostStatus field is set. */ boolean hasOverrideHostStatus(); /** *
     * This controls what hosts are considered valid when using
     * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
     * filters to modify the load balancing decision.
     * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
     * set with an empty set of statuses then host overrides will be ignored by the load balancing.
     * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; * @return The overrideHostStatus. */ io.envoyproxy.envoy.config.core.v3.HealthStatusSet getOverrideHostStatus(); /** *
     * This controls what hosts are considered valid when using
     * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
     * filters to modify the load balancing decision.
     * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
     * set with an empty set of statuses then host overrides will be ignored by the load balancing.
     * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; */ io.envoyproxy.envoy.config.core.v3.HealthStatusSetOrBuilder getOverrideHostStatusOrBuilder(); public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityConfigSpecifierCase getLocalityConfigSpecifierCase(); } /** *
   * Common configuration for all load balancer implementations.
   * [#next-free-field: 9]
   * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.CommonLbConfig} */ public static final class CommonLbConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.CommonLbConfig) CommonLbConfigOrBuilder { private static final long serialVersionUID = 0L; // Use CommonLbConfig.newBuilder() to construct. private CommonLbConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private CommonLbConfig() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new CommonLbConfig(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private CommonLbConfig( 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: { io.envoyproxy.envoy.type.v3.Percent.Builder subBuilder = null; if (healthyPanicThreshold_ != null) { subBuilder = healthyPanicThreshold_.toBuilder(); } healthyPanicThreshold_ = input.readMessage(io.envoyproxy.envoy.type.v3.Percent.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(healthyPanicThreshold_); healthyPanicThreshold_ = subBuilder.buildPartial(); } break; } case 18: { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.Builder subBuilder = null; if (localityConfigSpecifierCase_ == 2) { subBuilder = ((io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) localityConfigSpecifier_).toBuilder(); } localityConfigSpecifier_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) localityConfigSpecifier_); localityConfigSpecifier_ = subBuilder.buildPartial(); } localityConfigSpecifierCase_ = 2; break; } case 26: { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.Builder subBuilder = null; if (localityConfigSpecifierCase_ == 3) { subBuilder = ((io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) localityConfigSpecifier_).toBuilder(); } localityConfigSpecifier_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) localityConfigSpecifier_); localityConfigSpecifier_ = subBuilder.buildPartial(); } localityConfigSpecifierCase_ = 3; break; } case 34: { com.google.protobuf.Duration.Builder subBuilder = null; if (updateMergeWindow_ != null) { subBuilder = updateMergeWindow_.toBuilder(); } updateMergeWindow_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(updateMergeWindow_); updateMergeWindow_ = subBuilder.buildPartial(); } break; } case 40: { ignoreNewHostsUntilFirstHc_ = input.readBool(); break; } case 48: { closeConnectionsOnHostSetChange_ = input.readBool(); break; } case 58: { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.Builder subBuilder = null; if (consistentHashingLbConfig_ != null) { subBuilder = consistentHashingLbConfig_.toBuilder(); } consistentHashingLbConfig_ = input.readMessage(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(consistentHashingLbConfig_); consistentHashingLbConfig_ = subBuilder.buildPartial(); } break; } case 66: { io.envoyproxy.envoy.config.core.v3.HealthStatusSet.Builder subBuilder = null; if (overrideHostStatus_ != null) { subBuilder = overrideHostStatus_.toBuilder(); } overrideHostStatus_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.HealthStatusSet.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(overrideHostStatus_); overrideHostStatus_ = subBuilder.buildPartial(); } break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.Builder.class); } public interface ZoneAwareLbConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) com.google.protobuf.MessageOrBuilder { /** *
       * Configures percentage of requests that will be considered for zone aware routing
       * if zone aware routing is configured. If not specified, the default is 100%.
       * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
       * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
       * 
* * .envoy.type.v3.Percent routing_enabled = 1; * @return Whether the routingEnabled field is set. */ boolean hasRoutingEnabled(); /** *
       * Configures percentage of requests that will be considered for zone aware routing
       * if zone aware routing is configured. If not specified, the default is 100%.
       * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
       * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
       * 
* * .envoy.type.v3.Percent routing_enabled = 1; * @return The routingEnabled. */ io.envoyproxy.envoy.type.v3.Percent getRoutingEnabled(); /** *
       * Configures percentage of requests that will be considered for zone aware routing
       * if zone aware routing is configured. If not specified, the default is 100%.
       * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
       * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
       * 
* * .envoy.type.v3.Percent routing_enabled = 1; */ io.envoyproxy.envoy.type.v3.PercentOrBuilder getRoutingEnabledOrBuilder(); /** *
       * Configures minimum upstream cluster size required for zone aware routing
       * If upstream cluster size is less than specified, zone aware routing is not performed
       * even if zone aware routing is configured. If not specified, the default is 6.
       * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
       * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
       * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; * @return Whether the minClusterSize field is set. */ boolean hasMinClusterSize(); /** *
       * Configures minimum upstream cluster size required for zone aware routing
       * If upstream cluster size is less than specified, zone aware routing is not performed
       * even if zone aware routing is configured. If not specified, the default is 6.
       * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
       * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
       * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; * @return The minClusterSize. */ com.google.protobuf.UInt64Value getMinClusterSize(); /** *
       * Configures minimum upstream cluster size required for zone aware routing
       * If upstream cluster size is less than specified, zone aware routing is not performed
       * even if zone aware routing is configured. If not specified, the default is 6.
       * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
       * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
       * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; */ com.google.protobuf.UInt64ValueOrBuilder getMinClusterSizeOrBuilder(); /** *
       * If set to true, Envoy will not consider any hosts when the cluster is in :ref:`panic
       * mode<arch_overview_load_balancing_panic_threshold>`. Instead, the cluster will fail all
       * requests as if all hosts are unhealthy. This can help avoid potentially overwhelming a
       * failing service.
       * 
* * bool fail_traffic_on_panic = 3; * @return The failTrafficOnPanic. */ boolean getFailTrafficOnPanic(); } /** *
     * Configuration for :ref:`zone aware routing
     * <arch_overview_load_balancing_zone_aware_routing>`.
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig} */ public static final class ZoneAwareLbConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) ZoneAwareLbConfigOrBuilder { private static final long serialVersionUID = 0L; // Use ZoneAwareLbConfig.newBuilder() to construct. private ZoneAwareLbConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private ZoneAwareLbConfig() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new ZoneAwareLbConfig(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private ZoneAwareLbConfig( 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: { io.envoyproxy.envoy.type.v3.Percent.Builder subBuilder = null; if (routingEnabled_ != null) { subBuilder = routingEnabled_.toBuilder(); } routingEnabled_ = input.readMessage(io.envoyproxy.envoy.type.v3.Percent.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(routingEnabled_); routingEnabled_ = subBuilder.buildPartial(); } break; } case 18: { com.google.protobuf.UInt64Value.Builder subBuilder = null; if (minClusterSize_ != null) { subBuilder = minClusterSize_.toBuilder(); } minClusterSize_ = input.readMessage(com.google.protobuf.UInt64Value.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(minClusterSize_); minClusterSize_ = subBuilder.buildPartial(); } break; } case 24: { failTrafficOnPanic_ = input.readBool(); break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.Builder.class); } public static final int ROUTING_ENABLED_FIELD_NUMBER = 1; private io.envoyproxy.envoy.type.v3.Percent routingEnabled_; /** *
       * Configures percentage of requests that will be considered for zone aware routing
       * if zone aware routing is configured. If not specified, the default is 100%.
       * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
       * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
       * 
* * .envoy.type.v3.Percent routing_enabled = 1; * @return Whether the routingEnabled field is set. */ @java.lang.Override public boolean hasRoutingEnabled() { return routingEnabled_ != null; } /** *
       * Configures percentage of requests that will be considered for zone aware routing
       * if zone aware routing is configured. If not specified, the default is 100%.
       * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
       * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
       * 
* * .envoy.type.v3.Percent routing_enabled = 1; * @return The routingEnabled. */ @java.lang.Override public io.envoyproxy.envoy.type.v3.Percent getRoutingEnabled() { return routingEnabled_ == null ? io.envoyproxy.envoy.type.v3.Percent.getDefaultInstance() : routingEnabled_; } /** *
       * Configures percentage of requests that will be considered for zone aware routing
       * if zone aware routing is configured. If not specified, the default is 100%.
       * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
       * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
       * 
* * .envoy.type.v3.Percent routing_enabled = 1; */ @java.lang.Override public io.envoyproxy.envoy.type.v3.PercentOrBuilder getRoutingEnabledOrBuilder() { return getRoutingEnabled(); } public static final int MIN_CLUSTER_SIZE_FIELD_NUMBER = 2; private com.google.protobuf.UInt64Value minClusterSize_; /** *
       * Configures minimum upstream cluster size required for zone aware routing
       * If upstream cluster size is less than specified, zone aware routing is not performed
       * even if zone aware routing is configured. If not specified, the default is 6.
       * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
       * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
       * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; * @return Whether the minClusterSize field is set. */ @java.lang.Override public boolean hasMinClusterSize() { return minClusterSize_ != null; } /** *
       * Configures minimum upstream cluster size required for zone aware routing
       * If upstream cluster size is less than specified, zone aware routing is not performed
       * even if zone aware routing is configured. If not specified, the default is 6.
       * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
       * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
       * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; * @return The minClusterSize. */ @java.lang.Override public com.google.protobuf.UInt64Value getMinClusterSize() { return minClusterSize_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : minClusterSize_; } /** *
       * Configures minimum upstream cluster size required for zone aware routing
       * If upstream cluster size is less than specified, zone aware routing is not performed
       * even if zone aware routing is configured. If not specified, the default is 6.
       * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
       * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
       * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; */ @java.lang.Override public com.google.protobuf.UInt64ValueOrBuilder getMinClusterSizeOrBuilder() { return getMinClusterSize(); } public static final int FAIL_TRAFFIC_ON_PANIC_FIELD_NUMBER = 3; private boolean failTrafficOnPanic_; /** *
       * If set to true, Envoy will not consider any hosts when the cluster is in :ref:`panic
       * mode<arch_overview_load_balancing_panic_threshold>`. Instead, the cluster will fail all
       * requests as if all hosts are unhealthy. This can help avoid potentially overwhelming a
       * failing service.
       * 
* * bool fail_traffic_on_panic = 3; * @return The failTrafficOnPanic. */ @java.lang.Override public boolean getFailTrafficOnPanic() { return failTrafficOnPanic_; } 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 (routingEnabled_ != null) { output.writeMessage(1, getRoutingEnabled()); } if (minClusterSize_ != null) { output.writeMessage(2, getMinClusterSize()); } if (failTrafficOnPanic_ != false) { output.writeBool(3, failTrafficOnPanic_); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (routingEnabled_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getRoutingEnabled()); } if (minClusterSize_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getMinClusterSize()); } if (failTrafficOnPanic_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(3, failTrafficOnPanic_); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) obj; if (hasRoutingEnabled() != other.hasRoutingEnabled()) return false; if (hasRoutingEnabled()) { if (!getRoutingEnabled() .equals(other.getRoutingEnabled())) return false; } if (hasMinClusterSize() != other.hasMinClusterSize()) return false; if (hasMinClusterSize()) { if (!getMinClusterSize() .equals(other.getMinClusterSize())) return false; } if (getFailTrafficOnPanic() != other.getFailTrafficOnPanic()) 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 (hasRoutingEnabled()) { hash = (37 * hash) + ROUTING_ENABLED_FIELD_NUMBER; hash = (53 * hash) + getRoutingEnabled().hashCode(); } if (hasMinClusterSize()) { hash = (37 * hash) + MIN_CLUSTER_SIZE_FIELD_NUMBER; hash = (53 * hash) + getMinClusterSize().hashCode(); } hash = (37 * hash) + FAIL_TRAFFIC_ON_PANIC_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getFailTrafficOnPanic()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig 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; } /** *
       * Configuration for :ref:`zone aware routing
       * <arch_overview_load_balancing_zone_aware_routing>`.
       * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.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 (routingEnabledBuilder_ == null) { routingEnabled_ = null; } else { routingEnabled_ = null; routingEnabledBuilder_ = null; } if (minClusterSizeBuilder_ == null) { minClusterSize_ = null; } else { minClusterSize_ = null; minClusterSizeBuilder_ = null; } failTrafficOnPanic_ = false; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_ZoneAwareLbConfig_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig(this); if (routingEnabledBuilder_ == null) { result.routingEnabled_ = routingEnabled_; } else { result.routingEnabled_ = routingEnabledBuilder_.build(); } if (minClusterSizeBuilder_ == null) { result.minClusterSize_ = minClusterSize_; } else { result.minClusterSize_ = minClusterSizeBuilder_.build(); } result.failTrafficOnPanic_ = failTrafficOnPanic_; 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.getDefaultInstance()) return this; if (other.hasRoutingEnabled()) { mergeRoutingEnabled(other.getRoutingEnabled()); } if (other.hasMinClusterSize()) { mergeMinClusterSize(other.getMinClusterSize()); } if (other.getFailTrafficOnPanic() != false) { setFailTrafficOnPanic(other.getFailTrafficOnPanic()); } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private io.envoyproxy.envoy.type.v3.Percent routingEnabled_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.v3.Percent, io.envoyproxy.envoy.type.v3.Percent.Builder, io.envoyproxy.envoy.type.v3.PercentOrBuilder> routingEnabledBuilder_; /** *
         * Configures percentage of requests that will be considered for zone aware routing
         * if zone aware routing is configured. If not specified, the default is 100%.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .envoy.type.v3.Percent routing_enabled = 1; * @return Whether the routingEnabled field is set. */ public boolean hasRoutingEnabled() { return routingEnabledBuilder_ != null || routingEnabled_ != null; } /** *
         * Configures percentage of requests that will be considered for zone aware routing
         * if zone aware routing is configured. If not specified, the default is 100%.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .envoy.type.v3.Percent routing_enabled = 1; * @return The routingEnabled. */ public io.envoyproxy.envoy.type.v3.Percent getRoutingEnabled() { if (routingEnabledBuilder_ == null) { return routingEnabled_ == null ? io.envoyproxy.envoy.type.v3.Percent.getDefaultInstance() : routingEnabled_; } else { return routingEnabledBuilder_.getMessage(); } } /** *
         * Configures percentage of requests that will be considered for zone aware routing
         * if zone aware routing is configured. If not specified, the default is 100%.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .envoy.type.v3.Percent routing_enabled = 1; */ public Builder setRoutingEnabled(io.envoyproxy.envoy.type.v3.Percent value) { if (routingEnabledBuilder_ == null) { if (value == null) { throw new NullPointerException(); } routingEnabled_ = value; onChanged(); } else { routingEnabledBuilder_.setMessage(value); } return this; } /** *
         * Configures percentage of requests that will be considered for zone aware routing
         * if zone aware routing is configured. If not specified, the default is 100%.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .envoy.type.v3.Percent routing_enabled = 1; */ public Builder setRoutingEnabled( io.envoyproxy.envoy.type.v3.Percent.Builder builderForValue) { if (routingEnabledBuilder_ == null) { routingEnabled_ = builderForValue.build(); onChanged(); } else { routingEnabledBuilder_.setMessage(builderForValue.build()); } return this; } /** *
         * Configures percentage of requests that will be considered for zone aware routing
         * if zone aware routing is configured. If not specified, the default is 100%.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .envoy.type.v3.Percent routing_enabled = 1; */ public Builder mergeRoutingEnabled(io.envoyproxy.envoy.type.v3.Percent value) { if (routingEnabledBuilder_ == null) { if (routingEnabled_ != null) { routingEnabled_ = io.envoyproxy.envoy.type.v3.Percent.newBuilder(routingEnabled_).mergeFrom(value).buildPartial(); } else { routingEnabled_ = value; } onChanged(); } else { routingEnabledBuilder_.mergeFrom(value); } return this; } /** *
         * Configures percentage of requests that will be considered for zone aware routing
         * if zone aware routing is configured. If not specified, the default is 100%.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .envoy.type.v3.Percent routing_enabled = 1; */ public Builder clearRoutingEnabled() { if (routingEnabledBuilder_ == null) { routingEnabled_ = null; onChanged(); } else { routingEnabled_ = null; routingEnabledBuilder_ = null; } return this; } /** *
         * Configures percentage of requests that will be considered for zone aware routing
         * if zone aware routing is configured. If not specified, the default is 100%.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .envoy.type.v3.Percent routing_enabled = 1; */ public io.envoyproxy.envoy.type.v3.Percent.Builder getRoutingEnabledBuilder() { onChanged(); return getRoutingEnabledFieldBuilder().getBuilder(); } /** *
         * Configures percentage of requests that will be considered for zone aware routing
         * if zone aware routing is configured. If not specified, the default is 100%.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .envoy.type.v3.Percent routing_enabled = 1; */ public io.envoyproxy.envoy.type.v3.PercentOrBuilder getRoutingEnabledOrBuilder() { if (routingEnabledBuilder_ != null) { return routingEnabledBuilder_.getMessageOrBuilder(); } else { return routingEnabled_ == null ? io.envoyproxy.envoy.type.v3.Percent.getDefaultInstance() : routingEnabled_; } } /** *
         * Configures percentage of requests that will be considered for zone aware routing
         * if zone aware routing is configured. If not specified, the default is 100%.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .envoy.type.v3.Percent routing_enabled = 1; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.v3.Percent, io.envoyproxy.envoy.type.v3.Percent.Builder, io.envoyproxy.envoy.type.v3.PercentOrBuilder> getRoutingEnabledFieldBuilder() { if (routingEnabledBuilder_ == null) { routingEnabledBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.v3.Percent, io.envoyproxy.envoy.type.v3.Percent.Builder, io.envoyproxy.envoy.type.v3.PercentOrBuilder>( getRoutingEnabled(), getParentForChildren(), isClean()); routingEnabled_ = null; } return routingEnabledBuilder_; } private com.google.protobuf.UInt64Value minClusterSize_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt64Value, com.google.protobuf.UInt64Value.Builder, com.google.protobuf.UInt64ValueOrBuilder> minClusterSizeBuilder_; /** *
         * Configures minimum upstream cluster size required for zone aware routing
         * If upstream cluster size is less than specified, zone aware routing is not performed
         * even if zone aware routing is configured. If not specified, the default is 6.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; * @return Whether the minClusterSize field is set. */ public boolean hasMinClusterSize() { return minClusterSizeBuilder_ != null || minClusterSize_ != null; } /** *
         * Configures minimum upstream cluster size required for zone aware routing
         * If upstream cluster size is less than specified, zone aware routing is not performed
         * even if zone aware routing is configured. If not specified, the default is 6.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; * @return The minClusterSize. */ public com.google.protobuf.UInt64Value getMinClusterSize() { if (minClusterSizeBuilder_ == null) { return minClusterSize_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : minClusterSize_; } else { return minClusterSizeBuilder_.getMessage(); } } /** *
         * Configures minimum upstream cluster size required for zone aware routing
         * If upstream cluster size is less than specified, zone aware routing is not performed
         * even if zone aware routing is configured. If not specified, the default is 6.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; */ public Builder setMinClusterSize(com.google.protobuf.UInt64Value value) { if (minClusterSizeBuilder_ == null) { if (value == null) { throw new NullPointerException(); } minClusterSize_ = value; onChanged(); } else { minClusterSizeBuilder_.setMessage(value); } return this; } /** *
         * Configures minimum upstream cluster size required for zone aware routing
         * If upstream cluster size is less than specified, zone aware routing is not performed
         * even if zone aware routing is configured. If not specified, the default is 6.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; */ public Builder setMinClusterSize( com.google.protobuf.UInt64Value.Builder builderForValue) { if (minClusterSizeBuilder_ == null) { minClusterSize_ = builderForValue.build(); onChanged(); } else { minClusterSizeBuilder_.setMessage(builderForValue.build()); } return this; } /** *
         * Configures minimum upstream cluster size required for zone aware routing
         * If upstream cluster size is less than specified, zone aware routing is not performed
         * even if zone aware routing is configured. If not specified, the default is 6.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; */ public Builder mergeMinClusterSize(com.google.protobuf.UInt64Value value) { if (minClusterSizeBuilder_ == null) { if (minClusterSize_ != null) { minClusterSize_ = com.google.protobuf.UInt64Value.newBuilder(minClusterSize_).mergeFrom(value).buildPartial(); } else { minClusterSize_ = value; } onChanged(); } else { minClusterSizeBuilder_.mergeFrom(value); } return this; } /** *
         * Configures minimum upstream cluster size required for zone aware routing
         * If upstream cluster size is less than specified, zone aware routing is not performed
         * even if zone aware routing is configured. If not specified, the default is 6.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; */ public Builder clearMinClusterSize() { if (minClusterSizeBuilder_ == null) { minClusterSize_ = null; onChanged(); } else { minClusterSize_ = null; minClusterSizeBuilder_ = null; } return this; } /** *
         * Configures minimum upstream cluster size required for zone aware routing
         * If upstream cluster size is less than specified, zone aware routing is not performed
         * even if zone aware routing is configured. If not specified, the default is 6.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; */ public com.google.protobuf.UInt64Value.Builder getMinClusterSizeBuilder() { onChanged(); return getMinClusterSizeFieldBuilder().getBuilder(); } /** *
         * Configures minimum upstream cluster size required for zone aware routing
         * If upstream cluster size is less than specified, zone aware routing is not performed
         * even if zone aware routing is configured. If not specified, the default is 6.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; */ public com.google.protobuf.UInt64ValueOrBuilder getMinClusterSizeOrBuilder() { if (minClusterSizeBuilder_ != null) { return minClusterSizeBuilder_.getMessageOrBuilder(); } else { return minClusterSize_ == null ? com.google.protobuf.UInt64Value.getDefaultInstance() : minClusterSize_; } } /** *
         * Configures minimum upstream cluster size required for zone aware routing
         * If upstream cluster size is less than specified, zone aware routing is not performed
         * even if zone aware routing is configured. If not specified, the default is 6.
         * * :ref:`runtime values <config_cluster_manager_cluster_runtime_zone_routing>`.
         * * :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
         * 
* * .google.protobuf.UInt64Value min_cluster_size = 2; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt64Value, com.google.protobuf.UInt64Value.Builder, com.google.protobuf.UInt64ValueOrBuilder> getMinClusterSizeFieldBuilder() { if (minClusterSizeBuilder_ == null) { minClusterSizeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt64Value, com.google.protobuf.UInt64Value.Builder, com.google.protobuf.UInt64ValueOrBuilder>( getMinClusterSize(), getParentForChildren(), isClean()); minClusterSize_ = null; } return minClusterSizeBuilder_; } private boolean failTrafficOnPanic_ ; /** *
         * If set to true, Envoy will not consider any hosts when the cluster is in :ref:`panic
         * mode<arch_overview_load_balancing_panic_threshold>`. Instead, the cluster will fail all
         * requests as if all hosts are unhealthy. This can help avoid potentially overwhelming a
         * failing service.
         * 
* * bool fail_traffic_on_panic = 3; * @return The failTrafficOnPanic. */ @java.lang.Override public boolean getFailTrafficOnPanic() { return failTrafficOnPanic_; } /** *
         * If set to true, Envoy will not consider any hosts when the cluster is in :ref:`panic
         * mode<arch_overview_load_balancing_panic_threshold>`. Instead, the cluster will fail all
         * requests as if all hosts are unhealthy. This can help avoid potentially overwhelming a
         * failing service.
         * 
* * bool fail_traffic_on_panic = 3; * @param value The failTrafficOnPanic to set. * @return This builder for chaining. */ public Builder setFailTrafficOnPanic(boolean value) { failTrafficOnPanic_ = value; onChanged(); return this; } /** *
         * If set to true, Envoy will not consider any hosts when the cluster is in :ref:`panic
         * mode<arch_overview_load_balancing_panic_threshold>`. Instead, the cluster will fail all
         * requests as if all hosts are unhealthy. This can help avoid potentially overwhelming a
         * failing service.
         * 
* * bool fail_traffic_on_panic = 3; * @return This builder for chaining. */ public Builder clearFailTrafficOnPanic() { failTrafficOnPanic_ = 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:envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public ZoneAwareLbConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new ZoneAwareLbConfig(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface LocalityWeightedLbConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) com.google.protobuf.MessageOrBuilder { } /** *
     * Configuration for :ref:`locality weighted load balancing
     * <arch_overview_load_balancing_locality_weighted_lb>`
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig} */ public static final class LocalityWeightedLbConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) LocalityWeightedLbConfigOrBuilder { private static final long serialVersionUID = 0L; // Use LocalityWeightedLbConfig.newBuilder() to construct. private LocalityWeightedLbConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private LocalityWeightedLbConfig() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new LocalityWeightedLbConfig(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private LocalityWeightedLbConfig( 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; default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.Builder.class); } 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 { unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) obj; 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 = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig 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; } /** *
       * Configuration for :ref:`locality weighted load balancing
       * <arch_overview_load_balancing_locality_weighted_lb>`
       * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.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(); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_LocalityWeightedLbConfig_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig(this); 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.getDefaultInstance()) return this; 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } 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:envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public LocalityWeightedLbConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new LocalityWeightedLbConfig(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface ConsistentHashingLbConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig) com.google.protobuf.MessageOrBuilder { /** *
       * If set to ``true``, the cluster will use hostname instead of the resolved
       * address as the key to consistently hash to an upstream host. Only valid for StrictDNS clusters with hostnames which resolve to a single IP address.
       * 
* * bool use_hostname_for_hashing = 1; * @return The useHostnameForHashing. */ boolean getUseHostnameForHashing(); /** *
       * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
       * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
       * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
       * Minimum is 100.
       * Applies to both Ring Hash and Maglev load balancers.
       * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
       * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
       * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
       * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
       * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
       * cascading overflow effect when choosing the next host in the ring/table).
       * If weights are specified on the hosts, they are respected.
       * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
       * being probed, so use a higher value if you require better performance.
       * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } * @return Whether the hashBalanceFactor field is set. */ boolean hasHashBalanceFactor(); /** *
       * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
       * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
       * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
       * Minimum is 100.
       * Applies to both Ring Hash and Maglev load balancers.
       * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
       * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
       * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
       * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
       * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
       * cascading overflow effect when choosing the next host in the ring/table).
       * If weights are specified on the hosts, they are respected.
       * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
       * being probed, so use a higher value if you require better performance.
       * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } * @return The hashBalanceFactor. */ com.google.protobuf.UInt32Value getHashBalanceFactor(); /** *
       * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
       * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
       * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
       * Minimum is 100.
       * Applies to both Ring Hash and Maglev load balancers.
       * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
       * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
       * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
       * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
       * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
       * cascading overflow effect when choosing the next host in the ring/table).
       * If weights are specified on the hosts, they are respected.
       * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
       * being probed, so use a higher value if you require better performance.
       * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } */ com.google.protobuf.UInt32ValueOrBuilder getHashBalanceFactorOrBuilder(); } /** *
     * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig} */ public static final class ConsistentHashingLbConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig) ConsistentHashingLbConfigOrBuilder { private static final long serialVersionUID = 0L; // Use ConsistentHashingLbConfig.newBuilder() to construct. private ConsistentHashingLbConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private ConsistentHashingLbConfig() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new ConsistentHashingLbConfig(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private ConsistentHashingLbConfig( 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: { useHostnameForHashing_ = input.readBool(); break; } case 18: { com.google.protobuf.UInt32Value.Builder subBuilder = null; if (hashBalanceFactor_ != null) { subBuilder = hashBalanceFactor_.toBuilder(); } hashBalanceFactor_ = input.readMessage(com.google.protobuf.UInt32Value.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(hashBalanceFactor_); hashBalanceFactor_ = subBuilder.buildPartial(); } break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.Builder.class); } public static final int USE_HOSTNAME_FOR_HASHING_FIELD_NUMBER = 1; private boolean useHostnameForHashing_; /** *
       * If set to ``true``, the cluster will use hostname instead of the resolved
       * address as the key to consistently hash to an upstream host. Only valid for StrictDNS clusters with hostnames which resolve to a single IP address.
       * 
* * bool use_hostname_for_hashing = 1; * @return The useHostnameForHashing. */ @java.lang.Override public boolean getUseHostnameForHashing() { return useHostnameForHashing_; } public static final int HASH_BALANCE_FACTOR_FIELD_NUMBER = 2; private com.google.protobuf.UInt32Value hashBalanceFactor_; /** *
       * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
       * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
       * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
       * Minimum is 100.
       * Applies to both Ring Hash and Maglev load balancers.
       * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
       * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
       * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
       * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
       * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
       * cascading overflow effect when choosing the next host in the ring/table).
       * If weights are specified on the hosts, they are respected.
       * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
       * being probed, so use a higher value if you require better performance.
       * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } * @return Whether the hashBalanceFactor field is set. */ @java.lang.Override public boolean hasHashBalanceFactor() { return hashBalanceFactor_ != null; } /** *
       * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
       * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
       * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
       * Minimum is 100.
       * Applies to both Ring Hash and Maglev load balancers.
       * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
       * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
       * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
       * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
       * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
       * cascading overflow effect when choosing the next host in the ring/table).
       * If weights are specified on the hosts, they are respected.
       * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
       * being probed, so use a higher value if you require better performance.
       * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } * @return The hashBalanceFactor. */ @java.lang.Override public com.google.protobuf.UInt32Value getHashBalanceFactor() { return hashBalanceFactor_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : hashBalanceFactor_; } /** *
       * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
       * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
       * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
       * Minimum is 100.
       * Applies to both Ring Hash and Maglev load balancers.
       * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
       * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
       * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
       * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
       * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
       * cascading overflow effect when choosing the next host in the ring/table).
       * If weights are specified on the hosts, they are respected.
       * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
       * being probed, so use a higher value if you require better performance.
       * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } */ @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getHashBalanceFactorOrBuilder() { return getHashBalanceFactor(); } 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 (useHostnameForHashing_ != false) { output.writeBool(1, useHostnameForHashing_); } if (hashBalanceFactor_ != null) { output.writeMessage(2, getHashBalanceFactor()); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (useHostnameForHashing_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(1, useHostnameForHashing_); } if (hashBalanceFactor_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getHashBalanceFactor()); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig) obj; if (getUseHostnameForHashing() != other.getUseHostnameForHashing()) return false; if (hasHashBalanceFactor() != other.hasHashBalanceFactor()) return false; if (hasHashBalanceFactor()) { if (!getHashBalanceFactor() .equals(other.getHashBalanceFactor())) 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) + USE_HOSTNAME_FOR_HASHING_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getUseHostnameForHashing()); if (hasHashBalanceFactor()) { hash = (37 * hash) + HASH_BALANCE_FACTOR_FIELD_NUMBER; hash = (53 * hash) + getHashBalanceFactor().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig 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; } /** *
       * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
       * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig) io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.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(); useHostnameForHashing_ = false; if (hashBalanceFactorBuilder_ == null) { hashBalanceFactor_ = null; } else { hashBalanceFactor_ = null; hashBalanceFactorBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_ConsistentHashingLbConfig_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig(this); result.useHostnameForHashing_ = useHostnameForHashing_; if (hashBalanceFactorBuilder_ == null) { result.hashBalanceFactor_ = hashBalanceFactor_; } else { result.hashBalanceFactor_ = hashBalanceFactorBuilder_.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.getDefaultInstance()) return this; if (other.getUseHostnameForHashing() != false) { setUseHostnameForHashing(other.getUseHostnameForHashing()); } if (other.hasHashBalanceFactor()) { mergeHashBalanceFactor(other.getHashBalanceFactor()); } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private boolean useHostnameForHashing_ ; /** *
         * If set to ``true``, the cluster will use hostname instead of the resolved
         * address as the key to consistently hash to an upstream host. Only valid for StrictDNS clusters with hostnames which resolve to a single IP address.
         * 
* * bool use_hostname_for_hashing = 1; * @return The useHostnameForHashing. */ @java.lang.Override public boolean getUseHostnameForHashing() { return useHostnameForHashing_; } /** *
         * If set to ``true``, the cluster will use hostname instead of the resolved
         * address as the key to consistently hash to an upstream host. Only valid for StrictDNS clusters with hostnames which resolve to a single IP address.
         * 
* * bool use_hostname_for_hashing = 1; * @param value The useHostnameForHashing to set. * @return This builder for chaining. */ public Builder setUseHostnameForHashing(boolean value) { useHostnameForHashing_ = value; onChanged(); return this; } /** *
         * If set to ``true``, the cluster will use hostname instead of the resolved
         * address as the key to consistently hash to an upstream host. Only valid for StrictDNS clusters with hostnames which resolve to a single IP address.
         * 
* * bool use_hostname_for_hashing = 1; * @return This builder for chaining. */ public Builder clearUseHostnameForHashing() { useHostnameForHashing_ = false; onChanged(); return this; } private com.google.protobuf.UInt32Value hashBalanceFactor_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder> hashBalanceFactorBuilder_; /** *
         * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
         * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
         * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
         * Minimum is 100.
         * Applies to both Ring Hash and Maglev load balancers.
         * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
         * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
         * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
         * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
         * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
         * cascading overflow effect when choosing the next host in the ring/table).
         * If weights are specified on the hosts, they are respected.
         * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
         * being probed, so use a higher value if you require better performance.
         * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } * @return Whether the hashBalanceFactor field is set. */ public boolean hasHashBalanceFactor() { return hashBalanceFactorBuilder_ != null || hashBalanceFactor_ != null; } /** *
         * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
         * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
         * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
         * Minimum is 100.
         * Applies to both Ring Hash and Maglev load balancers.
         * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
         * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
         * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
         * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
         * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
         * cascading overflow effect when choosing the next host in the ring/table).
         * If weights are specified on the hosts, they are respected.
         * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
         * being probed, so use a higher value if you require better performance.
         * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } * @return The hashBalanceFactor. */ public com.google.protobuf.UInt32Value getHashBalanceFactor() { if (hashBalanceFactorBuilder_ == null) { return hashBalanceFactor_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : hashBalanceFactor_; } else { return hashBalanceFactorBuilder_.getMessage(); } } /** *
         * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
         * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
         * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
         * Minimum is 100.
         * Applies to both Ring Hash and Maglev load balancers.
         * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
         * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
         * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
         * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
         * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
         * cascading overflow effect when choosing the next host in the ring/table).
         * If weights are specified on the hosts, they are respected.
         * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
         * being probed, so use a higher value if you require better performance.
         * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } */ public Builder setHashBalanceFactor(com.google.protobuf.UInt32Value value) { if (hashBalanceFactorBuilder_ == null) { if (value == null) { throw new NullPointerException(); } hashBalanceFactor_ = value; onChanged(); } else { hashBalanceFactorBuilder_.setMessage(value); } return this; } /** *
         * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
         * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
         * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
         * Minimum is 100.
         * Applies to both Ring Hash and Maglev load balancers.
         * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
         * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
         * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
         * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
         * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
         * cascading overflow effect when choosing the next host in the ring/table).
         * If weights are specified on the hosts, they are respected.
         * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
         * being probed, so use a higher value if you require better performance.
         * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } */ public Builder setHashBalanceFactor( com.google.protobuf.UInt32Value.Builder builderForValue) { if (hashBalanceFactorBuilder_ == null) { hashBalanceFactor_ = builderForValue.build(); onChanged(); } else { hashBalanceFactorBuilder_.setMessage(builderForValue.build()); } return this; } /** *
         * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
         * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
         * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
         * Minimum is 100.
         * Applies to both Ring Hash and Maglev load balancers.
         * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
         * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
         * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
         * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
         * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
         * cascading overflow effect when choosing the next host in the ring/table).
         * If weights are specified on the hosts, they are respected.
         * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
         * being probed, so use a higher value if you require better performance.
         * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } */ public Builder mergeHashBalanceFactor(com.google.protobuf.UInt32Value value) { if (hashBalanceFactorBuilder_ == null) { if (hashBalanceFactor_ != null) { hashBalanceFactor_ = com.google.protobuf.UInt32Value.newBuilder(hashBalanceFactor_).mergeFrom(value).buildPartial(); } else { hashBalanceFactor_ = value; } onChanged(); } else { hashBalanceFactorBuilder_.mergeFrom(value); } return this; } /** *
         * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
         * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
         * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
         * Minimum is 100.
         * Applies to both Ring Hash and Maglev load balancers.
         * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
         * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
         * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
         * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
         * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
         * cascading overflow effect when choosing the next host in the ring/table).
         * If weights are specified on the hosts, they are respected.
         * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
         * being probed, so use a higher value if you require better performance.
         * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } */ public Builder clearHashBalanceFactor() { if (hashBalanceFactorBuilder_ == null) { hashBalanceFactor_ = null; onChanged(); } else { hashBalanceFactor_ = null; hashBalanceFactorBuilder_ = null; } return this; } /** *
         * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
         * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
         * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
         * Minimum is 100.
         * Applies to both Ring Hash and Maglev load balancers.
         * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
         * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
         * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
         * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
         * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
         * cascading overflow effect when choosing the next host in the ring/table).
         * If weights are specified on the hosts, they are respected.
         * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
         * being probed, so use a higher value if you require better performance.
         * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } */ public com.google.protobuf.UInt32Value.Builder getHashBalanceFactorBuilder() { onChanged(); return getHashBalanceFactorFieldBuilder().getBuilder(); } /** *
         * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
         * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
         * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
         * Minimum is 100.
         * Applies to both Ring Hash and Maglev load balancers.
         * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
         * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
         * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
         * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
         * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
         * cascading overflow effect when choosing the next host in the ring/table).
         * If weights are specified on the hosts, they are respected.
         * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
         * being probed, so use a higher value if you require better performance.
         * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } */ public com.google.protobuf.UInt32ValueOrBuilder getHashBalanceFactorOrBuilder() { if (hashBalanceFactorBuilder_ != null) { return hashBalanceFactorBuilder_.getMessageOrBuilder(); } else { return hashBalanceFactor_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : hashBalanceFactor_; } } /** *
         * Configures percentage of average cluster load to bound per upstream host. For example, with a value of 150
         * no upstream host will get a load more than 1.5 times the average load of all the hosts in the cluster.
         * If not specified, the load is not bounded for any upstream host. Typical value for this parameter is between 120 and 200.
         * Minimum is 100.
         * Applies to both Ring Hash and Maglev load balancers.
         * This is implemented based on the method described in the paper https://arxiv.org/abs/1608.01350. For the specified
         * ``hash_balance_factor``, requests to any upstream host are capped at ``hash_balance_factor/100`` times the average number of requests
         * across the cluster. When a request arrives for an upstream host that is currently serving at its max capacity, linear probing
         * is used to identify an eligible host. Further, the linear probe is implemented using a random jump in hosts ring/table to identify
         * the eligible host (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump avoids the
         * cascading overflow effect when choosing the next host in the ring/table).
         * If weights are specified on the hosts, they are respected.
         * This is an O(N) algorithm, unlike other load balancers. Using a lower ``hash_balance_factor`` results in more hosts
         * being probed, so use a higher value if you require better performance.
         * 
* * .google.protobuf.UInt32Value hash_balance_factor = 2 [(.validate.rules) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder> getHashBalanceFactorFieldBuilder() { if (hashBalanceFactorBuilder_ == null) { hashBalanceFactorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder>( getHashBalanceFactor(), getParentForChildren(), isClean()); hashBalanceFactor_ = null; } return hashBalanceFactorBuilder_; } @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:envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public ConsistentHashingLbConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new ConsistentHashingLbConfig(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private int localityConfigSpecifierCase_ = 0; private java.lang.Object localityConfigSpecifier_; public enum LocalityConfigSpecifierCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { ZONE_AWARE_LB_CONFIG(2), LOCALITY_WEIGHTED_LB_CONFIG(3), LOCALITYCONFIGSPECIFIER_NOT_SET(0); private final int value; private LocalityConfigSpecifierCase(int value) { this.value = value; } /** * @param value The number of the enum to look for. * @return The enum associated with the given number. * @deprecated Use {@link #forNumber(int)} instead. */ @java.lang.Deprecated public static LocalityConfigSpecifierCase valueOf(int value) { return forNumber(value); } public static LocalityConfigSpecifierCase forNumber(int value) { switch (value) { case 2: return ZONE_AWARE_LB_CONFIG; case 3: return LOCALITY_WEIGHTED_LB_CONFIG; case 0: return LOCALITYCONFIGSPECIFIER_NOT_SET; default: return null; } } public int getNumber() { return this.value; } }; public LocalityConfigSpecifierCase getLocalityConfigSpecifierCase() { return LocalityConfigSpecifierCase.forNumber( localityConfigSpecifierCase_); } public static final int HEALTHY_PANIC_THRESHOLD_FIELD_NUMBER = 1; private io.envoyproxy.envoy.type.v3.Percent healthyPanicThreshold_; /** *
     * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
     * If not specified, the default is 50%.
     * To disable panic mode, set to 0%.
     * .. note::
     *   The specified percent will be truncated to the nearest 1%.
     * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; * @return Whether the healthyPanicThreshold field is set. */ @java.lang.Override public boolean hasHealthyPanicThreshold() { return healthyPanicThreshold_ != null; } /** *
     * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
     * If not specified, the default is 50%.
     * To disable panic mode, set to 0%.
     * .. note::
     *   The specified percent will be truncated to the nearest 1%.
     * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; * @return The healthyPanicThreshold. */ @java.lang.Override public io.envoyproxy.envoy.type.v3.Percent getHealthyPanicThreshold() { return healthyPanicThreshold_ == null ? io.envoyproxy.envoy.type.v3.Percent.getDefaultInstance() : healthyPanicThreshold_; } /** *
     * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
     * If not specified, the default is 50%.
     * To disable panic mode, set to 0%.
     * .. note::
     *   The specified percent will be truncated to the nearest 1%.
     * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; */ @java.lang.Override public io.envoyproxy.envoy.type.v3.PercentOrBuilder getHealthyPanicThresholdOrBuilder() { return getHealthyPanicThreshold(); } public static final int ZONE_AWARE_LB_CONFIG_FIELD_NUMBER = 2; /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; * @return Whether the zoneAwareLbConfig field is set. */ @java.lang.Override public boolean hasZoneAwareLbConfig() { return localityConfigSpecifierCase_ == 2; } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; * @return The zoneAwareLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig getZoneAwareLbConfig() { if (localityConfigSpecifierCase_ == 2) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) localityConfigSpecifier_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.getDefaultInstance(); } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfigOrBuilder getZoneAwareLbConfigOrBuilder() { if (localityConfigSpecifierCase_ == 2) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) localityConfigSpecifier_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.getDefaultInstance(); } public static final int LOCALITY_WEIGHTED_LB_CONFIG_FIELD_NUMBER = 3; /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; * @return Whether the localityWeightedLbConfig field is set. */ @java.lang.Override public boolean hasLocalityWeightedLbConfig() { return localityConfigSpecifierCase_ == 3; } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; * @return The localityWeightedLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig getLocalityWeightedLbConfig() { if (localityConfigSpecifierCase_ == 3) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) localityConfigSpecifier_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.getDefaultInstance(); } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfigOrBuilder getLocalityWeightedLbConfigOrBuilder() { if (localityConfigSpecifierCase_ == 3) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) localityConfigSpecifier_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.getDefaultInstance(); } public static final int UPDATE_MERGE_WINDOW_FIELD_NUMBER = 4; private com.google.protobuf.Duration updateMergeWindow_; /** *
     * If set, all health check/weight/metadata updates that happen within this duration will be
     * merged and delivered in one shot when the duration expires. The start of the duration is when
     * the first update happens. This is useful for big clusters, with potentially noisy deploys
     * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
     * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
     * cluster). Please always keep in mind that the use of sandbox technologies may change this
     * behavior.
     * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
     * window to 0.
     * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
     * because merging those updates isn't currently safe. See
     * https://github.com/envoyproxy/envoy/pull/3941.
     * 
* * .google.protobuf.Duration update_merge_window = 4; * @return Whether the updateMergeWindow field is set. */ @java.lang.Override public boolean hasUpdateMergeWindow() { return updateMergeWindow_ != null; } /** *
     * If set, all health check/weight/metadata updates that happen within this duration will be
     * merged and delivered in one shot when the duration expires. The start of the duration is when
     * the first update happens. This is useful for big clusters, with potentially noisy deploys
     * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
     * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
     * cluster). Please always keep in mind that the use of sandbox technologies may change this
     * behavior.
     * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
     * window to 0.
     * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
     * because merging those updates isn't currently safe. See
     * https://github.com/envoyproxy/envoy/pull/3941.
     * 
* * .google.protobuf.Duration update_merge_window = 4; * @return The updateMergeWindow. */ @java.lang.Override public com.google.protobuf.Duration getUpdateMergeWindow() { return updateMergeWindow_ == null ? com.google.protobuf.Duration.getDefaultInstance() : updateMergeWindow_; } /** *
     * If set, all health check/weight/metadata updates that happen within this duration will be
     * merged and delivered in one shot when the duration expires. The start of the duration is when
     * the first update happens. This is useful for big clusters, with potentially noisy deploys
     * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
     * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
     * cluster). Please always keep in mind that the use of sandbox technologies may change this
     * behavior.
     * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
     * window to 0.
     * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
     * because merging those updates isn't currently safe. See
     * https://github.com/envoyproxy/envoy/pull/3941.
     * 
* * .google.protobuf.Duration update_merge_window = 4; */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getUpdateMergeWindowOrBuilder() { return getUpdateMergeWindow(); } public static final int IGNORE_NEW_HOSTS_UNTIL_FIRST_HC_FIELD_NUMBER = 5; private boolean ignoreNewHostsUntilFirstHc_; /** *
     * If set to true, Envoy will :ref:`exclude <arch_overview_load_balancing_excluded>` new hosts
     * when computing load balancing weights until they have been health checked for the first time.
     * This will have no effect unless active health checking is also configured.
     * 
* * bool ignore_new_hosts_until_first_hc = 5; * @return The ignoreNewHostsUntilFirstHc. */ @java.lang.Override public boolean getIgnoreNewHostsUntilFirstHc() { return ignoreNewHostsUntilFirstHc_; } public static final int CLOSE_CONNECTIONS_ON_HOST_SET_CHANGE_FIELD_NUMBER = 6; private boolean closeConnectionsOnHostSetChange_; /** *
     * If set to ``true``, the cluster manager will drain all existing
     * connections to upstream hosts whenever hosts are added or removed from the cluster.
     * 
* * bool close_connections_on_host_set_change = 6; * @return The closeConnectionsOnHostSetChange. */ @java.lang.Override public boolean getCloseConnectionsOnHostSetChange() { return closeConnectionsOnHostSetChange_; } public static final int CONSISTENT_HASHING_LB_CONFIG_FIELD_NUMBER = 7; private io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistentHashingLbConfig_; /** *
     * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; * @return Whether the consistentHashingLbConfig field is set. */ @java.lang.Override public boolean hasConsistentHashingLbConfig() { return consistentHashingLbConfig_ != null; } /** *
     * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; * @return The consistentHashingLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig getConsistentHashingLbConfig() { return consistentHashingLbConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.getDefaultInstance() : consistentHashingLbConfig_; } /** *
     * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfigOrBuilder getConsistentHashingLbConfigOrBuilder() { return getConsistentHashingLbConfig(); } public static final int OVERRIDE_HOST_STATUS_FIELD_NUMBER = 8; private io.envoyproxy.envoy.config.core.v3.HealthStatusSet overrideHostStatus_; /** *
     * This controls what hosts are considered valid when using
     * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
     * filters to modify the load balancing decision.
     * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
     * set with an empty set of statuses then host overrides will be ignored by the load balancing.
     * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; * @return Whether the overrideHostStatus field is set. */ @java.lang.Override public boolean hasOverrideHostStatus() { return overrideHostStatus_ != null; } /** *
     * This controls what hosts are considered valid when using
     * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
     * filters to modify the load balancing decision.
     * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
     * set with an empty set of statuses then host overrides will be ignored by the load balancing.
     * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; * @return The overrideHostStatus. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.HealthStatusSet getOverrideHostStatus() { return overrideHostStatus_ == null ? io.envoyproxy.envoy.config.core.v3.HealthStatusSet.getDefaultInstance() : overrideHostStatus_; } /** *
     * This controls what hosts are considered valid when using
     * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
     * filters to modify the load balancing decision.
     * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
     * set with an empty set of statuses then host overrides will be ignored by the load balancing.
     * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.HealthStatusSetOrBuilder getOverrideHostStatusOrBuilder() { return getOverrideHostStatus(); } 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 (healthyPanicThreshold_ != null) { output.writeMessage(1, getHealthyPanicThreshold()); } if (localityConfigSpecifierCase_ == 2) { output.writeMessage(2, (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) localityConfigSpecifier_); } if (localityConfigSpecifierCase_ == 3) { output.writeMessage(3, (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) localityConfigSpecifier_); } if (updateMergeWindow_ != null) { output.writeMessage(4, getUpdateMergeWindow()); } if (ignoreNewHostsUntilFirstHc_ != false) { output.writeBool(5, ignoreNewHostsUntilFirstHc_); } if (closeConnectionsOnHostSetChange_ != false) { output.writeBool(6, closeConnectionsOnHostSetChange_); } if (consistentHashingLbConfig_ != null) { output.writeMessage(7, getConsistentHashingLbConfig()); } if (overrideHostStatus_ != null) { output.writeMessage(8, getOverrideHostStatus()); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (healthyPanicThreshold_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getHealthyPanicThreshold()); } if (localityConfigSpecifierCase_ == 2) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) localityConfigSpecifier_); } if (localityConfigSpecifierCase_ == 3) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) localityConfigSpecifier_); } if (updateMergeWindow_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getUpdateMergeWindow()); } if (ignoreNewHostsUntilFirstHc_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(5, ignoreNewHostsUntilFirstHc_); } if (closeConnectionsOnHostSetChange_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(6, closeConnectionsOnHostSetChange_); } if (consistentHashingLbConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(7, getConsistentHashingLbConfig()); } if (overrideHostStatus_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(8, getOverrideHostStatus()); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig) obj; if (hasHealthyPanicThreshold() != other.hasHealthyPanicThreshold()) return false; if (hasHealthyPanicThreshold()) { if (!getHealthyPanicThreshold() .equals(other.getHealthyPanicThreshold())) return false; } if (hasUpdateMergeWindow() != other.hasUpdateMergeWindow()) return false; if (hasUpdateMergeWindow()) { if (!getUpdateMergeWindow() .equals(other.getUpdateMergeWindow())) return false; } if (getIgnoreNewHostsUntilFirstHc() != other.getIgnoreNewHostsUntilFirstHc()) return false; if (getCloseConnectionsOnHostSetChange() != other.getCloseConnectionsOnHostSetChange()) return false; if (hasConsistentHashingLbConfig() != other.hasConsistentHashingLbConfig()) return false; if (hasConsistentHashingLbConfig()) { if (!getConsistentHashingLbConfig() .equals(other.getConsistentHashingLbConfig())) return false; } if (hasOverrideHostStatus() != other.hasOverrideHostStatus()) return false; if (hasOverrideHostStatus()) { if (!getOverrideHostStatus() .equals(other.getOverrideHostStatus())) return false; } if (!getLocalityConfigSpecifierCase().equals(other.getLocalityConfigSpecifierCase())) return false; switch (localityConfigSpecifierCase_) { case 2: if (!getZoneAwareLbConfig() .equals(other.getZoneAwareLbConfig())) return false; break; case 3: if (!getLocalityWeightedLbConfig() .equals(other.getLocalityWeightedLbConfig())) return false; break; case 0: default: } 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 (hasHealthyPanicThreshold()) { hash = (37 * hash) + HEALTHY_PANIC_THRESHOLD_FIELD_NUMBER; hash = (53 * hash) + getHealthyPanicThreshold().hashCode(); } if (hasUpdateMergeWindow()) { hash = (37 * hash) + UPDATE_MERGE_WINDOW_FIELD_NUMBER; hash = (53 * hash) + getUpdateMergeWindow().hashCode(); } hash = (37 * hash) + IGNORE_NEW_HOSTS_UNTIL_FIRST_HC_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getIgnoreNewHostsUntilFirstHc()); hash = (37 * hash) + CLOSE_CONNECTIONS_ON_HOST_SET_CHANGE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getCloseConnectionsOnHostSetChange()); if (hasConsistentHashingLbConfig()) { hash = (37 * hash) + CONSISTENT_HASHING_LB_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getConsistentHashingLbConfig().hashCode(); } if (hasOverrideHostStatus()) { hash = (37 * hash) + OVERRIDE_HOST_STATUS_FIELD_NUMBER; hash = (53 * hash) + getOverrideHostStatus().hashCode(); } switch (localityConfigSpecifierCase_) { case 2: hash = (37 * hash) + ZONE_AWARE_LB_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getZoneAwareLbConfig().hashCode(); break; case 3: hash = (37 * hash) + LOCALITY_WEIGHTED_LB_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getLocalityWeightedLbConfig().hashCode(); break; case 0: default: } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig 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; } /** *
     * Common configuration for all load balancer implementations.
     * [#next-free-field: 9]
     * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster.CommonLbConfig} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.CommonLbConfig) io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.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 (healthyPanicThresholdBuilder_ == null) { healthyPanicThreshold_ = null; } else { healthyPanicThreshold_ = null; healthyPanicThresholdBuilder_ = null; } if (updateMergeWindowBuilder_ == null) { updateMergeWindow_ = null; } else { updateMergeWindow_ = null; updateMergeWindowBuilder_ = null; } ignoreNewHostsUntilFirstHc_ = false; closeConnectionsOnHostSetChange_ = false; if (consistentHashingLbConfigBuilder_ == null) { consistentHashingLbConfig_ = null; } else { consistentHashingLbConfig_ = null; consistentHashingLbConfigBuilder_ = null; } if (overrideHostStatusBuilder_ == null) { overrideHostStatus_ = null; } else { overrideHostStatus_ = null; overrideHostStatusBuilder_ = null; } localityConfigSpecifierCase_ = 0; localityConfigSpecifier_ = null; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_CommonLbConfig_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig(this); if (healthyPanicThresholdBuilder_ == null) { result.healthyPanicThreshold_ = healthyPanicThreshold_; } else { result.healthyPanicThreshold_ = healthyPanicThresholdBuilder_.build(); } if (localityConfigSpecifierCase_ == 2) { if (zoneAwareLbConfigBuilder_ == null) { result.localityConfigSpecifier_ = localityConfigSpecifier_; } else { result.localityConfigSpecifier_ = zoneAwareLbConfigBuilder_.build(); } } if (localityConfigSpecifierCase_ == 3) { if (localityWeightedLbConfigBuilder_ == null) { result.localityConfigSpecifier_ = localityConfigSpecifier_; } else { result.localityConfigSpecifier_ = localityWeightedLbConfigBuilder_.build(); } } if (updateMergeWindowBuilder_ == null) { result.updateMergeWindow_ = updateMergeWindow_; } else { result.updateMergeWindow_ = updateMergeWindowBuilder_.build(); } result.ignoreNewHostsUntilFirstHc_ = ignoreNewHostsUntilFirstHc_; result.closeConnectionsOnHostSetChange_ = closeConnectionsOnHostSetChange_; if (consistentHashingLbConfigBuilder_ == null) { result.consistentHashingLbConfig_ = consistentHashingLbConfig_; } else { result.consistentHashingLbConfig_ = consistentHashingLbConfigBuilder_.build(); } if (overrideHostStatusBuilder_ == null) { result.overrideHostStatus_ = overrideHostStatus_; } else { result.overrideHostStatus_ = overrideHostStatusBuilder_.build(); } result.localityConfigSpecifierCase_ = localityConfigSpecifierCase_; 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.getDefaultInstance()) return this; if (other.hasHealthyPanicThreshold()) { mergeHealthyPanicThreshold(other.getHealthyPanicThreshold()); } if (other.hasUpdateMergeWindow()) { mergeUpdateMergeWindow(other.getUpdateMergeWindow()); } if (other.getIgnoreNewHostsUntilFirstHc() != false) { setIgnoreNewHostsUntilFirstHc(other.getIgnoreNewHostsUntilFirstHc()); } if (other.getCloseConnectionsOnHostSetChange() != false) { setCloseConnectionsOnHostSetChange(other.getCloseConnectionsOnHostSetChange()); } if (other.hasConsistentHashingLbConfig()) { mergeConsistentHashingLbConfig(other.getConsistentHashingLbConfig()); } if (other.hasOverrideHostStatus()) { mergeOverrideHostStatus(other.getOverrideHostStatus()); } switch (other.getLocalityConfigSpecifierCase()) { case ZONE_AWARE_LB_CONFIG: { mergeZoneAwareLbConfig(other.getZoneAwareLbConfig()); break; } case LOCALITY_WEIGHTED_LB_CONFIG: { mergeLocalityWeightedLbConfig(other.getLocalityWeightedLbConfig()); break; } case LOCALITYCONFIGSPECIFIER_NOT_SET: { break; } } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int localityConfigSpecifierCase_ = 0; private java.lang.Object localityConfigSpecifier_; public LocalityConfigSpecifierCase getLocalityConfigSpecifierCase() { return LocalityConfigSpecifierCase.forNumber( localityConfigSpecifierCase_); } public Builder clearLocalityConfigSpecifier() { localityConfigSpecifierCase_ = 0; localityConfigSpecifier_ = null; onChanged(); return this; } private io.envoyproxy.envoy.type.v3.Percent healthyPanicThreshold_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.v3.Percent, io.envoyproxy.envoy.type.v3.Percent.Builder, io.envoyproxy.envoy.type.v3.PercentOrBuilder> healthyPanicThresholdBuilder_; /** *
       * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
       * If not specified, the default is 50%.
       * To disable panic mode, set to 0%.
       * .. note::
       *   The specified percent will be truncated to the nearest 1%.
       * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; * @return Whether the healthyPanicThreshold field is set. */ public boolean hasHealthyPanicThreshold() { return healthyPanicThresholdBuilder_ != null || healthyPanicThreshold_ != null; } /** *
       * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
       * If not specified, the default is 50%.
       * To disable panic mode, set to 0%.
       * .. note::
       *   The specified percent will be truncated to the nearest 1%.
       * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; * @return The healthyPanicThreshold. */ public io.envoyproxy.envoy.type.v3.Percent getHealthyPanicThreshold() { if (healthyPanicThresholdBuilder_ == null) { return healthyPanicThreshold_ == null ? io.envoyproxy.envoy.type.v3.Percent.getDefaultInstance() : healthyPanicThreshold_; } else { return healthyPanicThresholdBuilder_.getMessage(); } } /** *
       * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
       * If not specified, the default is 50%.
       * To disable panic mode, set to 0%.
       * .. note::
       *   The specified percent will be truncated to the nearest 1%.
       * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; */ public Builder setHealthyPanicThreshold(io.envoyproxy.envoy.type.v3.Percent value) { if (healthyPanicThresholdBuilder_ == null) { if (value == null) { throw new NullPointerException(); } healthyPanicThreshold_ = value; onChanged(); } else { healthyPanicThresholdBuilder_.setMessage(value); } return this; } /** *
       * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
       * If not specified, the default is 50%.
       * To disable panic mode, set to 0%.
       * .. note::
       *   The specified percent will be truncated to the nearest 1%.
       * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; */ public Builder setHealthyPanicThreshold( io.envoyproxy.envoy.type.v3.Percent.Builder builderForValue) { if (healthyPanicThresholdBuilder_ == null) { healthyPanicThreshold_ = builderForValue.build(); onChanged(); } else { healthyPanicThresholdBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
       * If not specified, the default is 50%.
       * To disable panic mode, set to 0%.
       * .. note::
       *   The specified percent will be truncated to the nearest 1%.
       * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; */ public Builder mergeHealthyPanicThreshold(io.envoyproxy.envoy.type.v3.Percent value) { if (healthyPanicThresholdBuilder_ == null) { if (healthyPanicThreshold_ != null) { healthyPanicThreshold_ = io.envoyproxy.envoy.type.v3.Percent.newBuilder(healthyPanicThreshold_).mergeFrom(value).buildPartial(); } else { healthyPanicThreshold_ = value; } onChanged(); } else { healthyPanicThresholdBuilder_.mergeFrom(value); } return this; } /** *
       * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
       * If not specified, the default is 50%.
       * To disable panic mode, set to 0%.
       * .. note::
       *   The specified percent will be truncated to the nearest 1%.
       * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; */ public Builder clearHealthyPanicThreshold() { if (healthyPanicThresholdBuilder_ == null) { healthyPanicThreshold_ = null; onChanged(); } else { healthyPanicThreshold_ = null; healthyPanicThresholdBuilder_ = null; } return this; } /** *
       * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
       * If not specified, the default is 50%.
       * To disable panic mode, set to 0%.
       * .. note::
       *   The specified percent will be truncated to the nearest 1%.
       * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; */ public io.envoyproxy.envoy.type.v3.Percent.Builder getHealthyPanicThresholdBuilder() { onChanged(); return getHealthyPanicThresholdFieldBuilder().getBuilder(); } /** *
       * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
       * If not specified, the default is 50%.
       * To disable panic mode, set to 0%.
       * .. note::
       *   The specified percent will be truncated to the nearest 1%.
       * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; */ public io.envoyproxy.envoy.type.v3.PercentOrBuilder getHealthyPanicThresholdOrBuilder() { if (healthyPanicThresholdBuilder_ != null) { return healthyPanicThresholdBuilder_.getMessageOrBuilder(); } else { return healthyPanicThreshold_ == null ? io.envoyproxy.envoy.type.v3.Percent.getDefaultInstance() : healthyPanicThreshold_; } } /** *
       * Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
       * If not specified, the default is 50%.
       * To disable panic mode, set to 0%.
       * .. note::
       *   The specified percent will be truncated to the nearest 1%.
       * 
* * .envoy.type.v3.Percent healthy_panic_threshold = 1; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.v3.Percent, io.envoyproxy.envoy.type.v3.Percent.Builder, io.envoyproxy.envoy.type.v3.PercentOrBuilder> getHealthyPanicThresholdFieldBuilder() { if (healthyPanicThresholdBuilder_ == null) { healthyPanicThresholdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.v3.Percent, io.envoyproxy.envoy.type.v3.Percent.Builder, io.envoyproxy.envoy.type.v3.PercentOrBuilder>( getHealthyPanicThreshold(), getParentForChildren(), isClean()); healthyPanicThreshold_ = null; } return healthyPanicThresholdBuilder_; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfigOrBuilder> zoneAwareLbConfigBuilder_; /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; * @return Whether the zoneAwareLbConfig field is set. */ @java.lang.Override public boolean hasZoneAwareLbConfig() { return localityConfigSpecifierCase_ == 2; } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; * @return The zoneAwareLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig getZoneAwareLbConfig() { if (zoneAwareLbConfigBuilder_ == null) { if (localityConfigSpecifierCase_ == 2) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) localityConfigSpecifier_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.getDefaultInstance(); } else { if (localityConfigSpecifierCase_ == 2) { return zoneAwareLbConfigBuilder_.getMessage(); } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.getDefaultInstance(); } } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; */ public Builder setZoneAwareLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig value) { if (zoneAwareLbConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } localityConfigSpecifier_ = value; onChanged(); } else { zoneAwareLbConfigBuilder_.setMessage(value); } localityConfigSpecifierCase_ = 2; return this; } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; */ public Builder setZoneAwareLbConfig( io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.Builder builderForValue) { if (zoneAwareLbConfigBuilder_ == null) { localityConfigSpecifier_ = builderForValue.build(); onChanged(); } else { zoneAwareLbConfigBuilder_.setMessage(builderForValue.build()); } localityConfigSpecifierCase_ = 2; return this; } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; */ public Builder mergeZoneAwareLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig value) { if (zoneAwareLbConfigBuilder_ == null) { if (localityConfigSpecifierCase_ == 2 && localityConfigSpecifier_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.getDefaultInstance()) { localityConfigSpecifier_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.newBuilder((io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) localityConfigSpecifier_) .mergeFrom(value).buildPartial(); } else { localityConfigSpecifier_ = value; } onChanged(); } else { if (localityConfigSpecifierCase_ == 2) { zoneAwareLbConfigBuilder_.mergeFrom(value); } else { zoneAwareLbConfigBuilder_.setMessage(value); } } localityConfigSpecifierCase_ = 2; return this; } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; */ public Builder clearZoneAwareLbConfig() { if (zoneAwareLbConfigBuilder_ == null) { if (localityConfigSpecifierCase_ == 2) { localityConfigSpecifierCase_ = 0; localityConfigSpecifier_ = null; onChanged(); } } else { if (localityConfigSpecifierCase_ == 2) { localityConfigSpecifierCase_ = 0; localityConfigSpecifier_ = null; } zoneAwareLbConfigBuilder_.clear(); } return this; } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.Builder getZoneAwareLbConfigBuilder() { return getZoneAwareLbConfigFieldBuilder().getBuilder(); } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfigOrBuilder getZoneAwareLbConfigOrBuilder() { if ((localityConfigSpecifierCase_ == 2) && (zoneAwareLbConfigBuilder_ != null)) { return zoneAwareLbConfigBuilder_.getMessageOrBuilder(); } else { if (localityConfigSpecifierCase_ == 2) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) localityConfigSpecifier_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.getDefaultInstance(); } } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfigOrBuilder> getZoneAwareLbConfigFieldBuilder() { if (zoneAwareLbConfigBuilder_ == null) { if (!(localityConfigSpecifierCase_ == 2)) { localityConfigSpecifier_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.getDefaultInstance(); } zoneAwareLbConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfigOrBuilder>( (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig) localityConfigSpecifier_, getParentForChildren(), isClean()); localityConfigSpecifier_ = null; } localityConfigSpecifierCase_ = 2; onChanged();; return zoneAwareLbConfigBuilder_; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfigOrBuilder> localityWeightedLbConfigBuilder_; /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; * @return Whether the localityWeightedLbConfig field is set. */ @java.lang.Override public boolean hasLocalityWeightedLbConfig() { return localityConfigSpecifierCase_ == 3; } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; * @return The localityWeightedLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig getLocalityWeightedLbConfig() { if (localityWeightedLbConfigBuilder_ == null) { if (localityConfigSpecifierCase_ == 3) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) localityConfigSpecifier_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.getDefaultInstance(); } else { if (localityConfigSpecifierCase_ == 3) { return localityWeightedLbConfigBuilder_.getMessage(); } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.getDefaultInstance(); } } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; */ public Builder setLocalityWeightedLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig value) { if (localityWeightedLbConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } localityConfigSpecifier_ = value; onChanged(); } else { localityWeightedLbConfigBuilder_.setMessage(value); } localityConfigSpecifierCase_ = 3; return this; } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; */ public Builder setLocalityWeightedLbConfig( io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.Builder builderForValue) { if (localityWeightedLbConfigBuilder_ == null) { localityConfigSpecifier_ = builderForValue.build(); onChanged(); } else { localityWeightedLbConfigBuilder_.setMessage(builderForValue.build()); } localityConfigSpecifierCase_ = 3; return this; } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; */ public Builder mergeLocalityWeightedLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig value) { if (localityWeightedLbConfigBuilder_ == null) { if (localityConfigSpecifierCase_ == 3 && localityConfigSpecifier_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.getDefaultInstance()) { localityConfigSpecifier_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.newBuilder((io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) localityConfigSpecifier_) .mergeFrom(value).buildPartial(); } else { localityConfigSpecifier_ = value; } onChanged(); } else { if (localityConfigSpecifierCase_ == 3) { localityWeightedLbConfigBuilder_.mergeFrom(value); } else { localityWeightedLbConfigBuilder_.setMessage(value); } } localityConfigSpecifierCase_ = 3; return this; } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; */ public Builder clearLocalityWeightedLbConfig() { if (localityWeightedLbConfigBuilder_ == null) { if (localityConfigSpecifierCase_ == 3) { localityConfigSpecifierCase_ = 0; localityConfigSpecifier_ = null; onChanged(); } } else { if (localityConfigSpecifierCase_ == 3) { localityConfigSpecifierCase_ = 0; localityConfigSpecifier_ = null; } localityWeightedLbConfigBuilder_.clear(); } return this; } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.Builder getLocalityWeightedLbConfigBuilder() { return getLocalityWeightedLbConfigFieldBuilder().getBuilder(); } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfigOrBuilder getLocalityWeightedLbConfigOrBuilder() { if ((localityConfigSpecifierCase_ == 3) && (localityWeightedLbConfigBuilder_ != null)) { return localityWeightedLbConfigBuilder_.getMessageOrBuilder(); } else { if (localityConfigSpecifierCase_ == 3) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) localityConfigSpecifier_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.getDefaultInstance(); } } /** * .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfigOrBuilder> getLocalityWeightedLbConfigFieldBuilder() { if (localityWeightedLbConfigBuilder_ == null) { if (!(localityConfigSpecifierCase_ == 3)) { localityConfigSpecifier_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.getDefaultInstance(); } localityWeightedLbConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfigOrBuilder>( (io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig) localityConfigSpecifier_, getParentForChildren(), isClean()); localityConfigSpecifier_ = null; } localityConfigSpecifierCase_ = 3; onChanged();; return localityWeightedLbConfigBuilder_; } private com.google.protobuf.Duration updateMergeWindow_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> updateMergeWindowBuilder_; /** *
       * If set, all health check/weight/metadata updates that happen within this duration will be
       * merged and delivered in one shot when the duration expires. The start of the duration is when
       * the first update happens. This is useful for big clusters, with potentially noisy deploys
       * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
       * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
       * cluster). Please always keep in mind that the use of sandbox technologies may change this
       * behavior.
       * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
       * window to 0.
       * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
       * because merging those updates isn't currently safe. See
       * https://github.com/envoyproxy/envoy/pull/3941.
       * 
* * .google.protobuf.Duration update_merge_window = 4; * @return Whether the updateMergeWindow field is set. */ public boolean hasUpdateMergeWindow() { return updateMergeWindowBuilder_ != null || updateMergeWindow_ != null; } /** *
       * If set, all health check/weight/metadata updates that happen within this duration will be
       * merged and delivered in one shot when the duration expires. The start of the duration is when
       * the first update happens. This is useful for big clusters, with potentially noisy deploys
       * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
       * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
       * cluster). Please always keep in mind that the use of sandbox technologies may change this
       * behavior.
       * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
       * window to 0.
       * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
       * because merging those updates isn't currently safe. See
       * https://github.com/envoyproxy/envoy/pull/3941.
       * 
* * .google.protobuf.Duration update_merge_window = 4; * @return The updateMergeWindow. */ public com.google.protobuf.Duration getUpdateMergeWindow() { if (updateMergeWindowBuilder_ == null) { return updateMergeWindow_ == null ? com.google.protobuf.Duration.getDefaultInstance() : updateMergeWindow_; } else { return updateMergeWindowBuilder_.getMessage(); } } /** *
       * If set, all health check/weight/metadata updates that happen within this duration will be
       * merged and delivered in one shot when the duration expires. The start of the duration is when
       * the first update happens. This is useful for big clusters, with potentially noisy deploys
       * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
       * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
       * cluster). Please always keep in mind that the use of sandbox technologies may change this
       * behavior.
       * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
       * window to 0.
       * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
       * because merging those updates isn't currently safe. See
       * https://github.com/envoyproxy/envoy/pull/3941.
       * 
* * .google.protobuf.Duration update_merge_window = 4; */ public Builder setUpdateMergeWindow(com.google.protobuf.Duration value) { if (updateMergeWindowBuilder_ == null) { if (value == null) { throw new NullPointerException(); } updateMergeWindow_ = value; onChanged(); } else { updateMergeWindowBuilder_.setMessage(value); } return this; } /** *
       * If set, all health check/weight/metadata updates that happen within this duration will be
       * merged and delivered in one shot when the duration expires. The start of the duration is when
       * the first update happens. This is useful for big clusters, with potentially noisy deploys
       * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
       * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
       * cluster). Please always keep in mind that the use of sandbox technologies may change this
       * behavior.
       * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
       * window to 0.
       * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
       * because merging those updates isn't currently safe. See
       * https://github.com/envoyproxy/envoy/pull/3941.
       * 
* * .google.protobuf.Duration update_merge_window = 4; */ public Builder setUpdateMergeWindow( com.google.protobuf.Duration.Builder builderForValue) { if (updateMergeWindowBuilder_ == null) { updateMergeWindow_ = builderForValue.build(); onChanged(); } else { updateMergeWindowBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * If set, all health check/weight/metadata updates that happen within this duration will be
       * merged and delivered in one shot when the duration expires. The start of the duration is when
       * the first update happens. This is useful for big clusters, with potentially noisy deploys
       * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
       * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
       * cluster). Please always keep in mind that the use of sandbox technologies may change this
       * behavior.
       * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
       * window to 0.
       * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
       * because merging those updates isn't currently safe. See
       * https://github.com/envoyproxy/envoy/pull/3941.
       * 
* * .google.protobuf.Duration update_merge_window = 4; */ public Builder mergeUpdateMergeWindow(com.google.protobuf.Duration value) { if (updateMergeWindowBuilder_ == null) { if (updateMergeWindow_ != null) { updateMergeWindow_ = com.google.protobuf.Duration.newBuilder(updateMergeWindow_).mergeFrom(value).buildPartial(); } else { updateMergeWindow_ = value; } onChanged(); } else { updateMergeWindowBuilder_.mergeFrom(value); } return this; } /** *
       * If set, all health check/weight/metadata updates that happen within this duration will be
       * merged and delivered in one shot when the duration expires. The start of the duration is when
       * the first update happens. This is useful for big clusters, with potentially noisy deploys
       * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
       * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
       * cluster). Please always keep in mind that the use of sandbox technologies may change this
       * behavior.
       * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
       * window to 0.
       * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
       * because merging those updates isn't currently safe. See
       * https://github.com/envoyproxy/envoy/pull/3941.
       * 
* * .google.protobuf.Duration update_merge_window = 4; */ public Builder clearUpdateMergeWindow() { if (updateMergeWindowBuilder_ == null) { updateMergeWindow_ = null; onChanged(); } else { updateMergeWindow_ = null; updateMergeWindowBuilder_ = null; } return this; } /** *
       * If set, all health check/weight/metadata updates that happen within this duration will be
       * merged and delivered in one shot when the duration expires. The start of the duration is when
       * the first update happens. This is useful for big clusters, with potentially noisy deploys
       * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
       * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
       * cluster). Please always keep in mind that the use of sandbox technologies may change this
       * behavior.
       * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
       * window to 0.
       * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
       * because merging those updates isn't currently safe. See
       * https://github.com/envoyproxy/envoy/pull/3941.
       * 
* * .google.protobuf.Duration update_merge_window = 4; */ public com.google.protobuf.Duration.Builder getUpdateMergeWindowBuilder() { onChanged(); return getUpdateMergeWindowFieldBuilder().getBuilder(); } /** *
       * If set, all health check/weight/metadata updates that happen within this duration will be
       * merged and delivered in one shot when the duration expires. The start of the duration is when
       * the first update happens. This is useful for big clusters, with potentially noisy deploys
       * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
       * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
       * cluster). Please always keep in mind that the use of sandbox technologies may change this
       * behavior.
       * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
       * window to 0.
       * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
       * because merging those updates isn't currently safe. See
       * https://github.com/envoyproxy/envoy/pull/3941.
       * 
* * .google.protobuf.Duration update_merge_window = 4; */ public com.google.protobuf.DurationOrBuilder getUpdateMergeWindowOrBuilder() { if (updateMergeWindowBuilder_ != null) { return updateMergeWindowBuilder_.getMessageOrBuilder(); } else { return updateMergeWindow_ == null ? com.google.protobuf.Duration.getDefaultInstance() : updateMergeWindow_; } } /** *
       * If set, all health check/weight/metadata updates that happen within this duration will be
       * merged and delivered in one shot when the duration expires. The start of the duration is when
       * the first update happens. This is useful for big clusters, with potentially noisy deploys
       * that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
       * or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
       * cluster). Please always keep in mind that the use of sandbox technologies may change this
       * behavior.
       * If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
       * window to 0.
       * Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
       * because merging those updates isn't currently safe. See
       * https://github.com/envoyproxy/envoy/pull/3941.
       * 
* * .google.protobuf.Duration update_merge_window = 4; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getUpdateMergeWindowFieldBuilder() { if (updateMergeWindowBuilder_ == null) { updateMergeWindowBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getUpdateMergeWindow(), getParentForChildren(), isClean()); updateMergeWindow_ = null; } return updateMergeWindowBuilder_; } private boolean ignoreNewHostsUntilFirstHc_ ; /** *
       * If set to true, Envoy will :ref:`exclude <arch_overview_load_balancing_excluded>` new hosts
       * when computing load balancing weights until they have been health checked for the first time.
       * This will have no effect unless active health checking is also configured.
       * 
* * bool ignore_new_hosts_until_first_hc = 5; * @return The ignoreNewHostsUntilFirstHc. */ @java.lang.Override public boolean getIgnoreNewHostsUntilFirstHc() { return ignoreNewHostsUntilFirstHc_; } /** *
       * If set to true, Envoy will :ref:`exclude <arch_overview_load_balancing_excluded>` new hosts
       * when computing load balancing weights until they have been health checked for the first time.
       * This will have no effect unless active health checking is also configured.
       * 
* * bool ignore_new_hosts_until_first_hc = 5; * @param value The ignoreNewHostsUntilFirstHc to set. * @return This builder for chaining. */ public Builder setIgnoreNewHostsUntilFirstHc(boolean value) { ignoreNewHostsUntilFirstHc_ = value; onChanged(); return this; } /** *
       * If set to true, Envoy will :ref:`exclude <arch_overview_load_balancing_excluded>` new hosts
       * when computing load balancing weights until they have been health checked for the first time.
       * This will have no effect unless active health checking is also configured.
       * 
* * bool ignore_new_hosts_until_first_hc = 5; * @return This builder for chaining. */ public Builder clearIgnoreNewHostsUntilFirstHc() { ignoreNewHostsUntilFirstHc_ = false; onChanged(); return this; } private boolean closeConnectionsOnHostSetChange_ ; /** *
       * If set to ``true``, the cluster manager will drain all existing
       * connections to upstream hosts whenever hosts are added or removed from the cluster.
       * 
* * bool close_connections_on_host_set_change = 6; * @return The closeConnectionsOnHostSetChange. */ @java.lang.Override public boolean getCloseConnectionsOnHostSetChange() { return closeConnectionsOnHostSetChange_; } /** *
       * If set to ``true``, the cluster manager will drain all existing
       * connections to upstream hosts whenever hosts are added or removed from the cluster.
       * 
* * bool close_connections_on_host_set_change = 6; * @param value The closeConnectionsOnHostSetChange to set. * @return This builder for chaining. */ public Builder setCloseConnectionsOnHostSetChange(boolean value) { closeConnectionsOnHostSetChange_ = value; onChanged(); return this; } /** *
       * If set to ``true``, the cluster manager will drain all existing
       * connections to upstream hosts whenever hosts are added or removed from the cluster.
       * 
* * bool close_connections_on_host_set_change = 6; * @return This builder for chaining. */ public Builder clearCloseConnectionsOnHostSetChange() { closeConnectionsOnHostSetChange_ = false; onChanged(); return this; } private io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistentHashingLbConfig_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfigOrBuilder> consistentHashingLbConfigBuilder_; /** *
       * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
       * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; * @return Whether the consistentHashingLbConfig field is set. */ public boolean hasConsistentHashingLbConfig() { return consistentHashingLbConfigBuilder_ != null || consistentHashingLbConfig_ != null; } /** *
       * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
       * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; * @return The consistentHashingLbConfig. */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig getConsistentHashingLbConfig() { if (consistentHashingLbConfigBuilder_ == null) { return consistentHashingLbConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.getDefaultInstance() : consistentHashingLbConfig_; } else { return consistentHashingLbConfigBuilder_.getMessage(); } } /** *
       * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
       * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; */ public Builder setConsistentHashingLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig value) { if (consistentHashingLbConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } consistentHashingLbConfig_ = value; onChanged(); } else { consistentHashingLbConfigBuilder_.setMessage(value); } return this; } /** *
       * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
       * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; */ public Builder setConsistentHashingLbConfig( io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.Builder builderForValue) { if (consistentHashingLbConfigBuilder_ == null) { consistentHashingLbConfig_ = builderForValue.build(); onChanged(); } else { consistentHashingLbConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
       * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; */ public Builder mergeConsistentHashingLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig value) { if (consistentHashingLbConfigBuilder_ == null) { if (consistentHashingLbConfig_ != null) { consistentHashingLbConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.newBuilder(consistentHashingLbConfig_).mergeFrom(value).buildPartial(); } else { consistentHashingLbConfig_ = value; } onChanged(); } else { consistentHashingLbConfigBuilder_.mergeFrom(value); } return this; } /** *
       * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
       * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; */ public Builder clearConsistentHashingLbConfig() { if (consistentHashingLbConfigBuilder_ == null) { consistentHashingLbConfig_ = null; onChanged(); } else { consistentHashingLbConfig_ = null; consistentHashingLbConfigBuilder_ = null; } return this; } /** *
       * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
       * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.Builder getConsistentHashingLbConfigBuilder() { onChanged(); return getConsistentHashingLbConfigFieldBuilder().getBuilder(); } /** *
       * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
       * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfigOrBuilder getConsistentHashingLbConfigOrBuilder() { if (consistentHashingLbConfigBuilder_ != null) { return consistentHashingLbConfigBuilder_.getMessageOrBuilder(); } else { return consistentHashingLbConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.getDefaultInstance() : consistentHashingLbConfig_; } } /** *
       * Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
       * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfigOrBuilder> getConsistentHashingLbConfigFieldBuilder() { if (consistentHashingLbConfigBuilder_ == null) { consistentHashingLbConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfigOrBuilder>( getConsistentHashingLbConfig(), getParentForChildren(), isClean()); consistentHashingLbConfig_ = null; } return consistentHashingLbConfigBuilder_; } private io.envoyproxy.envoy.config.core.v3.HealthStatusSet overrideHostStatus_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.HealthStatusSet, io.envoyproxy.envoy.config.core.v3.HealthStatusSet.Builder, io.envoyproxy.envoy.config.core.v3.HealthStatusSetOrBuilder> overrideHostStatusBuilder_; /** *
       * This controls what hosts are considered valid when using
       * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
       * filters to modify the load balancing decision.
       * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
       * set with an empty set of statuses then host overrides will be ignored by the load balancing.
       * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; * @return Whether the overrideHostStatus field is set. */ public boolean hasOverrideHostStatus() { return overrideHostStatusBuilder_ != null || overrideHostStatus_ != null; } /** *
       * This controls what hosts are considered valid when using
       * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
       * filters to modify the load balancing decision.
       * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
       * set with an empty set of statuses then host overrides will be ignored by the load balancing.
       * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; * @return The overrideHostStatus. */ public io.envoyproxy.envoy.config.core.v3.HealthStatusSet getOverrideHostStatus() { if (overrideHostStatusBuilder_ == null) { return overrideHostStatus_ == null ? io.envoyproxy.envoy.config.core.v3.HealthStatusSet.getDefaultInstance() : overrideHostStatus_; } else { return overrideHostStatusBuilder_.getMessage(); } } /** *
       * This controls what hosts are considered valid when using
       * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
       * filters to modify the load balancing decision.
       * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
       * set with an empty set of statuses then host overrides will be ignored by the load balancing.
       * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; */ public Builder setOverrideHostStatus(io.envoyproxy.envoy.config.core.v3.HealthStatusSet value) { if (overrideHostStatusBuilder_ == null) { if (value == null) { throw new NullPointerException(); } overrideHostStatus_ = value; onChanged(); } else { overrideHostStatusBuilder_.setMessage(value); } return this; } /** *
       * This controls what hosts are considered valid when using
       * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
       * filters to modify the load balancing decision.
       * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
       * set with an empty set of statuses then host overrides will be ignored by the load balancing.
       * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; */ public Builder setOverrideHostStatus( io.envoyproxy.envoy.config.core.v3.HealthStatusSet.Builder builderForValue) { if (overrideHostStatusBuilder_ == null) { overrideHostStatus_ = builderForValue.build(); onChanged(); } else { overrideHostStatusBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * This controls what hosts are considered valid when using
       * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
       * filters to modify the load balancing decision.
       * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
       * set with an empty set of statuses then host overrides will be ignored by the load balancing.
       * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; */ public Builder mergeOverrideHostStatus(io.envoyproxy.envoy.config.core.v3.HealthStatusSet value) { if (overrideHostStatusBuilder_ == null) { if (overrideHostStatus_ != null) { overrideHostStatus_ = io.envoyproxy.envoy.config.core.v3.HealthStatusSet.newBuilder(overrideHostStatus_).mergeFrom(value).buildPartial(); } else { overrideHostStatus_ = value; } onChanged(); } else { overrideHostStatusBuilder_.mergeFrom(value); } return this; } /** *
       * This controls what hosts are considered valid when using
       * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
       * filters to modify the load balancing decision.
       * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
       * set with an empty set of statuses then host overrides will be ignored by the load balancing.
       * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; */ public Builder clearOverrideHostStatus() { if (overrideHostStatusBuilder_ == null) { overrideHostStatus_ = null; onChanged(); } else { overrideHostStatus_ = null; overrideHostStatusBuilder_ = null; } return this; } /** *
       * This controls what hosts are considered valid when using
       * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
       * filters to modify the load balancing decision.
       * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
       * set with an empty set of statuses then host overrides will be ignored by the load balancing.
       * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; */ public io.envoyproxy.envoy.config.core.v3.HealthStatusSet.Builder getOverrideHostStatusBuilder() { onChanged(); return getOverrideHostStatusFieldBuilder().getBuilder(); } /** *
       * This controls what hosts are considered valid when using
       * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
       * filters to modify the load balancing decision.
       * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
       * set with an empty set of statuses then host overrides will be ignored by the load balancing.
       * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; */ public io.envoyproxy.envoy.config.core.v3.HealthStatusSetOrBuilder getOverrideHostStatusOrBuilder() { if (overrideHostStatusBuilder_ != null) { return overrideHostStatusBuilder_.getMessageOrBuilder(); } else { return overrideHostStatus_ == null ? io.envoyproxy.envoy.config.core.v3.HealthStatusSet.getDefaultInstance() : overrideHostStatus_; } } /** *
       * This controls what hosts are considered valid when using
       * :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
       * filters to modify the load balancing decision.
       * If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
       * set with an empty set of statuses then host overrides will be ignored by the load balancing.
       * 
* * .envoy.config.core.v3.HealthStatusSet override_host_status = 8; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.HealthStatusSet, io.envoyproxy.envoy.config.core.v3.HealthStatusSet.Builder, io.envoyproxy.envoy.config.core.v3.HealthStatusSetOrBuilder> getOverrideHostStatusFieldBuilder() { if (overrideHostStatusBuilder_ == null) { overrideHostStatusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.HealthStatusSet, io.envoyproxy.envoy.config.core.v3.HealthStatusSet.Builder, io.envoyproxy.envoy.config.core.v3.HealthStatusSetOrBuilder>( getOverrideHostStatus(), getParentForChildren(), isClean()); overrideHostStatus_ = null; } return overrideHostStatusBuilder_; } @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:envoy.config.cluster.v3.Cluster.CommonLbConfig) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.CommonLbConfig) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public CommonLbConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new CommonLbConfig(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface RefreshRateOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.RefreshRate) com.google.protobuf.MessageOrBuilder { /** *
     * Specifies the base interval between refreshes. This parameter is required and must be greater
     * than zero and less than
     * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
     * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } * @return Whether the baseInterval field is set. */ boolean hasBaseInterval(); /** *
     * Specifies the base interval between refreshes. This parameter is required and must be greater
     * than zero and less than
     * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
     * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } * @return The baseInterval. */ com.google.protobuf.Duration getBaseInterval(); /** *
     * Specifies the base interval between refreshes. This parameter is required and must be greater
     * than zero and less than
     * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
     * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } */ com.google.protobuf.DurationOrBuilder getBaseIntervalOrBuilder(); /** *
     * Specifies the maximum interval between refreshes. This parameter is optional, but must be
     * greater than or equal to the
     * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
     * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
     * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } * @return Whether the maxInterval field is set. */ boolean hasMaxInterval(); /** *
     * Specifies the maximum interval between refreshes. This parameter is optional, but must be
     * greater than or equal to the
     * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
     * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
     * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } * @return The maxInterval. */ com.google.protobuf.Duration getMaxInterval(); /** *
     * Specifies the maximum interval between refreshes. This parameter is optional, but must be
     * greater than or equal to the
     * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
     * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
     * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } */ com.google.protobuf.DurationOrBuilder getMaxIntervalOrBuilder(); } /** * Protobuf type {@code envoy.config.cluster.v3.Cluster.RefreshRate} */ public static final class RefreshRate extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.RefreshRate) RefreshRateOrBuilder { private static final long serialVersionUID = 0L; // Use RefreshRate.newBuilder() to construct. private RefreshRate(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private RefreshRate() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new RefreshRate(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private RefreshRate( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { com.google.protobuf.Duration.Builder subBuilder = null; if (baseInterval_ != null) { subBuilder = baseInterval_.toBuilder(); } baseInterval_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(baseInterval_); baseInterval_ = subBuilder.buildPartial(); } break; } case 18: { com.google.protobuf.Duration.Builder subBuilder = null; if (maxInterval_ != null) { subBuilder = maxInterval_.toBuilder(); } maxInterval_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(maxInterval_); maxInterval_ = subBuilder.buildPartial(); } break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RefreshRate_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RefreshRate_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.Builder.class); } public static final int BASE_INTERVAL_FIELD_NUMBER = 1; private com.google.protobuf.Duration baseInterval_; /** *
     * Specifies the base interval between refreshes. This parameter is required and must be greater
     * than zero and less than
     * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
     * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } * @return Whether the baseInterval field is set. */ @java.lang.Override public boolean hasBaseInterval() { return baseInterval_ != null; } /** *
     * Specifies the base interval between refreshes. This parameter is required and must be greater
     * than zero and less than
     * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
     * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } * @return The baseInterval. */ @java.lang.Override public com.google.protobuf.Duration getBaseInterval() { return baseInterval_ == null ? com.google.protobuf.Duration.getDefaultInstance() : baseInterval_; } /** *
     * Specifies the base interval between refreshes. This parameter is required and must be greater
     * than zero and less than
     * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
     * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getBaseIntervalOrBuilder() { return getBaseInterval(); } public static final int MAX_INTERVAL_FIELD_NUMBER = 2; private com.google.protobuf.Duration maxInterval_; /** *
     * Specifies the maximum interval between refreshes. This parameter is optional, but must be
     * greater than or equal to the
     * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
     * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
     * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } * @return Whether the maxInterval field is set. */ @java.lang.Override public boolean hasMaxInterval() { return maxInterval_ != null; } /** *
     * Specifies the maximum interval between refreshes. This parameter is optional, but must be
     * greater than or equal to the
     * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
     * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
     * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } * @return The maxInterval. */ @java.lang.Override public com.google.protobuf.Duration getMaxInterval() { return maxInterval_ == null ? com.google.protobuf.Duration.getDefaultInstance() : maxInterval_; } /** *
     * Specifies the maximum interval between refreshes. This parameter is optional, but must be
     * greater than or equal to the
     * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
     * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
     * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getMaxIntervalOrBuilder() { return getMaxInterval(); } 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 (baseInterval_ != null) { output.writeMessage(1, getBaseInterval()); } if (maxInterval_ != null) { output.writeMessage(2, getMaxInterval()); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (baseInterval_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getBaseInterval()); } if (maxInterval_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getMaxInterval()); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate) obj; if (hasBaseInterval() != other.hasBaseInterval()) return false; if (hasBaseInterval()) { if (!getBaseInterval() .equals(other.getBaseInterval())) return false; } if (hasMaxInterval() != other.hasMaxInterval()) return false; if (hasMaxInterval()) { if (!getMaxInterval() .equals(other.getMaxInterval())) 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 (hasBaseInterval()) { hash = (37 * hash) + BASE_INTERVAL_FIELD_NUMBER; hash = (53 * hash) + getBaseInterval().hashCode(); } if (hasMaxInterval()) { hash = (37 * hash) + MAX_INTERVAL_FIELD_NUMBER; hash = (53 * hash) + getMaxInterval().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate 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 envoy.config.cluster.v3.Cluster.RefreshRate} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.RefreshRate) io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRateOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RefreshRate_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RefreshRate_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.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 (baseIntervalBuilder_ == null) { baseInterval_ = null; } else { baseInterval_ = null; baseIntervalBuilder_ = null; } if (maxIntervalBuilder_ == null) { maxInterval_ = null; } else { maxInterval_ = null; maxIntervalBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_RefreshRate_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate(this); if (baseIntervalBuilder_ == null) { result.baseInterval_ = baseInterval_; } else { result.baseInterval_ = baseIntervalBuilder_.build(); } if (maxIntervalBuilder_ == null) { result.maxInterval_ = maxInterval_; } else { result.maxInterval_ = maxIntervalBuilder_.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.getDefaultInstance()) return this; if (other.hasBaseInterval()) { mergeBaseInterval(other.getBaseInterval()); } if (other.hasMaxInterval()) { mergeMaxInterval(other.getMaxInterval()); } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private com.google.protobuf.Duration baseInterval_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> baseIntervalBuilder_; /** *
       * Specifies the base interval between refreshes. This parameter is required and must be greater
       * than zero and less than
       * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
       * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } * @return Whether the baseInterval field is set. */ public boolean hasBaseInterval() { return baseIntervalBuilder_ != null || baseInterval_ != null; } /** *
       * Specifies the base interval between refreshes. This parameter is required and must be greater
       * than zero and less than
       * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
       * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } * @return The baseInterval. */ public com.google.protobuf.Duration getBaseInterval() { if (baseIntervalBuilder_ == null) { return baseInterval_ == null ? com.google.protobuf.Duration.getDefaultInstance() : baseInterval_; } else { return baseIntervalBuilder_.getMessage(); } } /** *
       * Specifies the base interval between refreshes. This parameter is required and must be greater
       * than zero and less than
       * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
       * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } */ public Builder setBaseInterval(com.google.protobuf.Duration value) { if (baseIntervalBuilder_ == null) { if (value == null) { throw new NullPointerException(); } baseInterval_ = value; onChanged(); } else { baseIntervalBuilder_.setMessage(value); } return this; } /** *
       * Specifies the base interval between refreshes. This parameter is required and must be greater
       * than zero and less than
       * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
       * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } */ public Builder setBaseInterval( com.google.protobuf.Duration.Builder builderForValue) { if (baseIntervalBuilder_ == null) { baseInterval_ = builderForValue.build(); onChanged(); } else { baseIntervalBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Specifies the base interval between refreshes. This parameter is required and must be greater
       * than zero and less than
       * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
       * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } */ public Builder mergeBaseInterval(com.google.protobuf.Duration value) { if (baseIntervalBuilder_ == null) { if (baseInterval_ != null) { baseInterval_ = com.google.protobuf.Duration.newBuilder(baseInterval_).mergeFrom(value).buildPartial(); } else { baseInterval_ = value; } onChanged(); } else { baseIntervalBuilder_.mergeFrom(value); } return this; } /** *
       * Specifies the base interval between refreshes. This parameter is required and must be greater
       * than zero and less than
       * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
       * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } */ public Builder clearBaseInterval() { if (baseIntervalBuilder_ == null) { baseInterval_ = null; onChanged(); } else { baseInterval_ = null; baseIntervalBuilder_ = null; } return this; } /** *
       * Specifies the base interval between refreshes. This parameter is required and must be greater
       * than zero and less than
       * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
       * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } */ public com.google.protobuf.Duration.Builder getBaseIntervalBuilder() { onChanged(); return getBaseIntervalFieldBuilder().getBuilder(); } /** *
       * Specifies the base interval between refreshes. This parameter is required and must be greater
       * than zero and less than
       * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
       * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } */ public com.google.protobuf.DurationOrBuilder getBaseIntervalOrBuilder() { if (baseIntervalBuilder_ != null) { return baseIntervalBuilder_.getMessageOrBuilder(); } else { return baseInterval_ == null ? com.google.protobuf.Duration.getDefaultInstance() : baseInterval_; } } /** *
       * Specifies the base interval between refreshes. This parameter is required and must be greater
       * than zero and less than
       * :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
       * 
* * .google.protobuf.Duration base_interval = 1 [(.validate.rules) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getBaseIntervalFieldBuilder() { if (baseIntervalBuilder_ == null) { baseIntervalBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getBaseInterval(), getParentForChildren(), isClean()); baseInterval_ = null; } return baseIntervalBuilder_; } private com.google.protobuf.Duration maxInterval_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> maxIntervalBuilder_; /** *
       * Specifies the maximum interval between refreshes. This parameter is optional, but must be
       * greater than or equal to the
       * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
       * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
       * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } * @return Whether the maxInterval field is set. */ public boolean hasMaxInterval() { return maxIntervalBuilder_ != null || maxInterval_ != null; } /** *
       * Specifies the maximum interval between refreshes. This parameter is optional, but must be
       * greater than or equal to the
       * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
       * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
       * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } * @return The maxInterval. */ public com.google.protobuf.Duration getMaxInterval() { if (maxIntervalBuilder_ == null) { return maxInterval_ == null ? com.google.protobuf.Duration.getDefaultInstance() : maxInterval_; } else { return maxIntervalBuilder_.getMessage(); } } /** *
       * Specifies the maximum interval between refreshes. This parameter is optional, but must be
       * greater than or equal to the
       * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
       * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
       * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } */ public Builder setMaxInterval(com.google.protobuf.Duration value) { if (maxIntervalBuilder_ == null) { if (value == null) { throw new NullPointerException(); } maxInterval_ = value; onChanged(); } else { maxIntervalBuilder_.setMessage(value); } return this; } /** *
       * Specifies the maximum interval between refreshes. This parameter is optional, but must be
       * greater than or equal to the
       * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
       * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
       * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } */ public Builder setMaxInterval( com.google.protobuf.Duration.Builder builderForValue) { if (maxIntervalBuilder_ == null) { maxInterval_ = builderForValue.build(); onChanged(); } else { maxIntervalBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Specifies the maximum interval between refreshes. This parameter is optional, but must be
       * greater than or equal to the
       * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
       * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
       * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } */ public Builder mergeMaxInterval(com.google.protobuf.Duration value) { if (maxIntervalBuilder_ == null) { if (maxInterval_ != null) { maxInterval_ = com.google.protobuf.Duration.newBuilder(maxInterval_).mergeFrom(value).buildPartial(); } else { maxInterval_ = value; } onChanged(); } else { maxIntervalBuilder_.mergeFrom(value); } return this; } /** *
       * Specifies the maximum interval between refreshes. This parameter is optional, but must be
       * greater than or equal to the
       * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
       * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
       * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } */ public Builder clearMaxInterval() { if (maxIntervalBuilder_ == null) { maxInterval_ = null; onChanged(); } else { maxInterval_ = null; maxIntervalBuilder_ = null; } return this; } /** *
       * Specifies the maximum interval between refreshes. This parameter is optional, but must be
       * greater than or equal to the
       * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
       * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
       * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } */ public com.google.protobuf.Duration.Builder getMaxIntervalBuilder() { onChanged(); return getMaxIntervalFieldBuilder().getBuilder(); } /** *
       * Specifies the maximum interval between refreshes. This parameter is optional, but must be
       * greater than or equal to the
       * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
       * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
       * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } */ public com.google.protobuf.DurationOrBuilder getMaxIntervalOrBuilder() { if (maxIntervalBuilder_ != null) { return maxIntervalBuilder_.getMessageOrBuilder(); } else { return maxInterval_ == null ? com.google.protobuf.Duration.getDefaultInstance() : maxInterval_; } } /** *
       * Specifies the maximum interval between refreshes. This parameter is optional, but must be
       * greater than or equal to the
       * :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`  if set. The default
       * is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
       * 
* * .google.protobuf.Duration max_interval = 2 [(.validate.rules) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getMaxIntervalFieldBuilder() { if (maxIntervalBuilder_ == null) { maxIntervalBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getMaxInterval(), getParentForChildren(), isClean()); maxInterval_ = null; } return maxIntervalBuilder_; } @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:envoy.config.cluster.v3.Cluster.RefreshRate) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.RefreshRate) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public RefreshRate parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new RefreshRate(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface PreconnectPolicyOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.cluster.v3.Cluster.PreconnectPolicy) com.google.protobuf.MessageOrBuilder { /** *
     * Indicates how many streams (rounded up) can be anticipated per-upstream for each
     * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
     * will only be done if the upstream is healthy and the cluster has traffic.
     * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
     * established, one for the new incoming stream, and one for a presumed follow-up stream. For
     * HTTP/2, only one connection would be established by default as one connection can
     * serve both the original and presumed follow-up stream.
     * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
     * active streams, there would be 100 connections in use, and 50 connections preconnected.
     * This might be a useful value for something like short lived single-use connections,
     * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
     * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
     * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
     * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
     * in case of unexpected disconnects where the connection could not be reused.
     * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
     * as needed to serve streams in flight. This means in steady state if a connection is torn down,
     * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
     * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
     * harm latency more than the preconnecting helps.
     * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } * @return Whether the perUpstreamPreconnectRatio field is set. */ boolean hasPerUpstreamPreconnectRatio(); /** *
     * Indicates how many streams (rounded up) can be anticipated per-upstream for each
     * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
     * will only be done if the upstream is healthy and the cluster has traffic.
     * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
     * established, one for the new incoming stream, and one for a presumed follow-up stream. For
     * HTTP/2, only one connection would be established by default as one connection can
     * serve both the original and presumed follow-up stream.
     * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
     * active streams, there would be 100 connections in use, and 50 connections preconnected.
     * This might be a useful value for something like short lived single-use connections,
     * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
     * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
     * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
     * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
     * in case of unexpected disconnects where the connection could not be reused.
     * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
     * as needed to serve streams in flight. This means in steady state if a connection is torn down,
     * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
     * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
     * harm latency more than the preconnecting helps.
     * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } * @return The perUpstreamPreconnectRatio. */ com.google.protobuf.DoubleValue getPerUpstreamPreconnectRatio(); /** *
     * Indicates how many streams (rounded up) can be anticipated per-upstream for each
     * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
     * will only be done if the upstream is healthy and the cluster has traffic.
     * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
     * established, one for the new incoming stream, and one for a presumed follow-up stream. For
     * HTTP/2, only one connection would be established by default as one connection can
     * serve both the original and presumed follow-up stream.
     * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
     * active streams, there would be 100 connections in use, and 50 connections preconnected.
     * This might be a useful value for something like short lived single-use connections,
     * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
     * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
     * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
     * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
     * in case of unexpected disconnects where the connection could not be reused.
     * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
     * as needed to serve streams in flight. This means in steady state if a connection is torn down,
     * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
     * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
     * harm latency more than the preconnecting helps.
     * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } */ com.google.protobuf.DoubleValueOrBuilder getPerUpstreamPreconnectRatioOrBuilder(); /** *
     * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
     * stream, useful for low QPS services. This is currently supported for a subset of
     * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
     * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
     * cluster, doing best effort predictions of what upstream would be picked next and
     * pre-establishing a connection.
     * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
     * only be done if there are healthy upstreams and the cluster has traffic.
     * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
     * incoming stream, 2 connections will be preconnected - one to the first upstream for this
     * cluster, one to the second on the assumption there will be a follow-up stream.
     * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
     * as needed to serve streams in flight, so during warm up and in steady state if a connection
     * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
     * connection establishment.
     * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
     * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
     * upstream.
     * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } * @return Whether the predictivePreconnectRatio field is set. */ boolean hasPredictivePreconnectRatio(); /** *
     * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
     * stream, useful for low QPS services. This is currently supported for a subset of
     * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
     * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
     * cluster, doing best effort predictions of what upstream would be picked next and
     * pre-establishing a connection.
     * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
     * only be done if there are healthy upstreams and the cluster has traffic.
     * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
     * incoming stream, 2 connections will be preconnected - one to the first upstream for this
     * cluster, one to the second on the assumption there will be a follow-up stream.
     * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
     * as needed to serve streams in flight, so during warm up and in steady state if a connection
     * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
     * connection establishment.
     * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
     * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
     * upstream.
     * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } * @return The predictivePreconnectRatio. */ com.google.protobuf.DoubleValue getPredictivePreconnectRatio(); /** *
     * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
     * stream, useful for low QPS services. This is currently supported for a subset of
     * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
     * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
     * cluster, doing best effort predictions of what upstream would be picked next and
     * pre-establishing a connection.
     * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
     * only be done if there are healthy upstreams and the cluster has traffic.
     * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
     * incoming stream, 2 connections will be preconnected - one to the first upstream for this
     * cluster, one to the second on the assumption there will be a follow-up stream.
     * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
     * as needed to serve streams in flight, so during warm up and in steady state if a connection
     * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
     * connection establishment.
     * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
     * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
     * upstream.
     * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } */ com.google.protobuf.DoubleValueOrBuilder getPredictivePreconnectRatioOrBuilder(); } /** * Protobuf type {@code envoy.config.cluster.v3.Cluster.PreconnectPolicy} */ public static final class PreconnectPolicy extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.cluster.v3.Cluster.PreconnectPolicy) PreconnectPolicyOrBuilder { private static final long serialVersionUID = 0L; // Use PreconnectPolicy.newBuilder() to construct. private PreconnectPolicy(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private PreconnectPolicy() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new PreconnectPolicy(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private PreconnectPolicy( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { com.google.protobuf.DoubleValue.Builder subBuilder = null; if (perUpstreamPreconnectRatio_ != null) { subBuilder = perUpstreamPreconnectRatio_.toBuilder(); } perUpstreamPreconnectRatio_ = input.readMessage(com.google.protobuf.DoubleValue.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(perUpstreamPreconnectRatio_); perUpstreamPreconnectRatio_ = subBuilder.buildPartial(); } break; } case 18: { com.google.protobuf.DoubleValue.Builder subBuilder = null; if (predictivePreconnectRatio_ != null) { subBuilder = predictivePreconnectRatio_.toBuilder(); } predictivePreconnectRatio_ = input.readMessage(com.google.protobuf.DoubleValue.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(predictivePreconnectRatio_); predictivePreconnectRatio_ = subBuilder.buildPartial(); } break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().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 io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_PreconnectPolicy_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_PreconnectPolicy_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.Builder.class); } public static final int PER_UPSTREAM_PRECONNECT_RATIO_FIELD_NUMBER = 1; private com.google.protobuf.DoubleValue perUpstreamPreconnectRatio_; /** *
     * Indicates how many streams (rounded up) can be anticipated per-upstream for each
     * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
     * will only be done if the upstream is healthy and the cluster has traffic.
     * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
     * established, one for the new incoming stream, and one for a presumed follow-up stream. For
     * HTTP/2, only one connection would be established by default as one connection can
     * serve both the original and presumed follow-up stream.
     * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
     * active streams, there would be 100 connections in use, and 50 connections preconnected.
     * This might be a useful value for something like short lived single-use connections,
     * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
     * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
     * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
     * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
     * in case of unexpected disconnects where the connection could not be reused.
     * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
     * as needed to serve streams in flight. This means in steady state if a connection is torn down,
     * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
     * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
     * harm latency more than the preconnecting helps.
     * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } * @return Whether the perUpstreamPreconnectRatio field is set. */ @java.lang.Override public boolean hasPerUpstreamPreconnectRatio() { return perUpstreamPreconnectRatio_ != null; } /** *
     * Indicates how many streams (rounded up) can be anticipated per-upstream for each
     * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
     * will only be done if the upstream is healthy and the cluster has traffic.
     * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
     * established, one for the new incoming stream, and one for a presumed follow-up stream. For
     * HTTP/2, only one connection would be established by default as one connection can
     * serve both the original and presumed follow-up stream.
     * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
     * active streams, there would be 100 connections in use, and 50 connections preconnected.
     * This might be a useful value for something like short lived single-use connections,
     * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
     * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
     * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
     * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
     * in case of unexpected disconnects where the connection could not be reused.
     * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
     * as needed to serve streams in flight. This means in steady state if a connection is torn down,
     * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
     * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
     * harm latency more than the preconnecting helps.
     * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } * @return The perUpstreamPreconnectRatio. */ @java.lang.Override public com.google.protobuf.DoubleValue getPerUpstreamPreconnectRatio() { return perUpstreamPreconnectRatio_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : perUpstreamPreconnectRatio_; } /** *
     * Indicates how many streams (rounded up) can be anticipated per-upstream for each
     * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
     * will only be done if the upstream is healthy and the cluster has traffic.
     * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
     * established, one for the new incoming stream, and one for a presumed follow-up stream. For
     * HTTP/2, only one connection would be established by default as one connection can
     * serve both the original and presumed follow-up stream.
     * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
     * active streams, there would be 100 connections in use, and 50 connections preconnected.
     * This might be a useful value for something like short lived single-use connections,
     * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
     * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
     * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
     * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
     * in case of unexpected disconnects where the connection could not be reused.
     * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
     * as needed to serve streams in flight. This means in steady state if a connection is torn down,
     * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
     * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
     * harm latency more than the preconnecting helps.
     * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } */ @java.lang.Override public com.google.protobuf.DoubleValueOrBuilder getPerUpstreamPreconnectRatioOrBuilder() { return getPerUpstreamPreconnectRatio(); } public static final int PREDICTIVE_PRECONNECT_RATIO_FIELD_NUMBER = 2; private com.google.protobuf.DoubleValue predictivePreconnectRatio_; /** *
     * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
     * stream, useful for low QPS services. This is currently supported for a subset of
     * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
     * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
     * cluster, doing best effort predictions of what upstream would be picked next and
     * pre-establishing a connection.
     * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
     * only be done if there are healthy upstreams and the cluster has traffic.
     * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
     * incoming stream, 2 connections will be preconnected - one to the first upstream for this
     * cluster, one to the second on the assumption there will be a follow-up stream.
     * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
     * as needed to serve streams in flight, so during warm up and in steady state if a connection
     * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
     * connection establishment.
     * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
     * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
     * upstream.
     * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } * @return Whether the predictivePreconnectRatio field is set. */ @java.lang.Override public boolean hasPredictivePreconnectRatio() { return predictivePreconnectRatio_ != null; } /** *
     * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
     * stream, useful for low QPS services. This is currently supported for a subset of
     * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
     * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
     * cluster, doing best effort predictions of what upstream would be picked next and
     * pre-establishing a connection.
     * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
     * only be done if there are healthy upstreams and the cluster has traffic.
     * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
     * incoming stream, 2 connections will be preconnected - one to the first upstream for this
     * cluster, one to the second on the assumption there will be a follow-up stream.
     * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
     * as needed to serve streams in flight, so during warm up and in steady state if a connection
     * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
     * connection establishment.
     * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
     * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
     * upstream.
     * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } * @return The predictivePreconnectRatio. */ @java.lang.Override public com.google.protobuf.DoubleValue getPredictivePreconnectRatio() { return predictivePreconnectRatio_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : predictivePreconnectRatio_; } /** *
     * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
     * stream, useful for low QPS services. This is currently supported for a subset of
     * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
     * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
     * cluster, doing best effort predictions of what upstream would be picked next and
     * pre-establishing a connection.
     * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
     * only be done if there are healthy upstreams and the cluster has traffic.
     * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
     * incoming stream, 2 connections will be preconnected - one to the first upstream for this
     * cluster, one to the second on the assumption there will be a follow-up stream.
     * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
     * as needed to serve streams in flight, so during warm up and in steady state if a connection
     * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
     * connection establishment.
     * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
     * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
     * upstream.
     * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } */ @java.lang.Override public com.google.protobuf.DoubleValueOrBuilder getPredictivePreconnectRatioOrBuilder() { return getPredictivePreconnectRatio(); } 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 (perUpstreamPreconnectRatio_ != null) { output.writeMessage(1, getPerUpstreamPreconnectRatio()); } if (predictivePreconnectRatio_ != null) { output.writeMessage(2, getPredictivePreconnectRatio()); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (perUpstreamPreconnectRatio_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getPerUpstreamPreconnectRatio()); } if (predictivePreconnectRatio_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getPredictivePreconnectRatio()); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy other = (io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy) obj; if (hasPerUpstreamPreconnectRatio() != other.hasPerUpstreamPreconnectRatio()) return false; if (hasPerUpstreamPreconnectRatio()) { if (!getPerUpstreamPreconnectRatio() .equals(other.getPerUpstreamPreconnectRatio())) return false; } if (hasPredictivePreconnectRatio() != other.hasPredictivePreconnectRatio()) return false; if (hasPredictivePreconnectRatio()) { if (!getPredictivePreconnectRatio() .equals(other.getPredictivePreconnectRatio())) 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 (hasPerUpstreamPreconnectRatio()) { hash = (37 * hash) + PER_UPSTREAM_PRECONNECT_RATIO_FIELD_NUMBER; hash = (53 * hash) + getPerUpstreamPreconnectRatio().hashCode(); } if (hasPredictivePreconnectRatio()) { hash = (37 * hash) + PREDICTIVE_PRECONNECT_RATIO_FIELD_NUMBER; hash = (53 * hash) + getPredictivePreconnectRatio().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy 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 io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy 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(io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy 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 envoy.config.cluster.v3.Cluster.PreconnectPolicy} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster.PreconnectPolicy) io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicyOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_PreconnectPolicy_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_PreconnectPolicy_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.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 (perUpstreamPreconnectRatioBuilder_ == null) { perUpstreamPreconnectRatio_ = null; } else { perUpstreamPreconnectRatio_ = null; perUpstreamPreconnectRatioBuilder_ = null; } if (predictivePreconnectRatioBuilder_ == null) { predictivePreconnectRatio_ = null; } else { predictivePreconnectRatio_ = null; predictivePreconnectRatioBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_PreconnectPolicy_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy build() { io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy result = new io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy(this); if (perUpstreamPreconnectRatioBuilder_ == null) { result.perUpstreamPreconnectRatio_ = perUpstreamPreconnectRatio_; } else { result.perUpstreamPreconnectRatio_ = perUpstreamPreconnectRatioBuilder_.build(); } if (predictivePreconnectRatioBuilder_ == null) { result.predictivePreconnectRatio_ = predictivePreconnectRatio_; } else { result.predictivePreconnectRatio_ = predictivePreconnectRatioBuilder_.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 io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.getDefaultInstance()) return this; if (other.hasPerUpstreamPreconnectRatio()) { mergePerUpstreamPreconnectRatio(other.getPerUpstreamPreconnectRatio()); } if (other.hasPredictivePreconnectRatio()) { mergePredictivePreconnectRatio(other.getPredictivePreconnectRatio()); } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private com.google.protobuf.DoubleValue perUpstreamPreconnectRatio_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder> perUpstreamPreconnectRatioBuilder_; /** *
       * Indicates how many streams (rounded up) can be anticipated per-upstream for each
       * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
       * will only be done if the upstream is healthy and the cluster has traffic.
       * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
       * established, one for the new incoming stream, and one for a presumed follow-up stream. For
       * HTTP/2, only one connection would be established by default as one connection can
       * serve both the original and presumed follow-up stream.
       * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
       * active streams, there would be 100 connections in use, and 50 connections preconnected.
       * This might be a useful value for something like short lived single-use connections,
       * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
       * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
       * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
       * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
       * in case of unexpected disconnects where the connection could not be reused.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight. This means in steady state if a connection is torn down,
       * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
       * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
       * harm latency more than the preconnecting helps.
       * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } * @return Whether the perUpstreamPreconnectRatio field is set. */ public boolean hasPerUpstreamPreconnectRatio() { return perUpstreamPreconnectRatioBuilder_ != null || perUpstreamPreconnectRatio_ != null; } /** *
       * Indicates how many streams (rounded up) can be anticipated per-upstream for each
       * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
       * will only be done if the upstream is healthy and the cluster has traffic.
       * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
       * established, one for the new incoming stream, and one for a presumed follow-up stream. For
       * HTTP/2, only one connection would be established by default as one connection can
       * serve both the original and presumed follow-up stream.
       * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
       * active streams, there would be 100 connections in use, and 50 connections preconnected.
       * This might be a useful value for something like short lived single-use connections,
       * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
       * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
       * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
       * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
       * in case of unexpected disconnects where the connection could not be reused.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight. This means in steady state if a connection is torn down,
       * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
       * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
       * harm latency more than the preconnecting helps.
       * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } * @return The perUpstreamPreconnectRatio. */ public com.google.protobuf.DoubleValue getPerUpstreamPreconnectRatio() { if (perUpstreamPreconnectRatioBuilder_ == null) { return perUpstreamPreconnectRatio_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : perUpstreamPreconnectRatio_; } else { return perUpstreamPreconnectRatioBuilder_.getMessage(); } } /** *
       * Indicates how many streams (rounded up) can be anticipated per-upstream for each
       * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
       * will only be done if the upstream is healthy and the cluster has traffic.
       * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
       * established, one for the new incoming stream, and one for a presumed follow-up stream. For
       * HTTP/2, only one connection would be established by default as one connection can
       * serve both the original and presumed follow-up stream.
       * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
       * active streams, there would be 100 connections in use, and 50 connections preconnected.
       * This might be a useful value for something like short lived single-use connections,
       * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
       * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
       * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
       * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
       * in case of unexpected disconnects where the connection could not be reused.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight. This means in steady state if a connection is torn down,
       * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
       * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
       * harm latency more than the preconnecting helps.
       * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } */ public Builder setPerUpstreamPreconnectRatio(com.google.protobuf.DoubleValue value) { if (perUpstreamPreconnectRatioBuilder_ == null) { if (value == null) { throw new NullPointerException(); } perUpstreamPreconnectRatio_ = value; onChanged(); } else { perUpstreamPreconnectRatioBuilder_.setMessage(value); } return this; } /** *
       * Indicates how many streams (rounded up) can be anticipated per-upstream for each
       * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
       * will only be done if the upstream is healthy and the cluster has traffic.
       * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
       * established, one for the new incoming stream, and one for a presumed follow-up stream. For
       * HTTP/2, only one connection would be established by default as one connection can
       * serve both the original and presumed follow-up stream.
       * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
       * active streams, there would be 100 connections in use, and 50 connections preconnected.
       * This might be a useful value for something like short lived single-use connections,
       * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
       * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
       * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
       * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
       * in case of unexpected disconnects where the connection could not be reused.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight. This means in steady state if a connection is torn down,
       * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
       * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
       * harm latency more than the preconnecting helps.
       * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } */ public Builder setPerUpstreamPreconnectRatio( com.google.protobuf.DoubleValue.Builder builderForValue) { if (perUpstreamPreconnectRatioBuilder_ == null) { perUpstreamPreconnectRatio_ = builderForValue.build(); onChanged(); } else { perUpstreamPreconnectRatioBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Indicates how many streams (rounded up) can be anticipated per-upstream for each
       * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
       * will only be done if the upstream is healthy and the cluster has traffic.
       * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
       * established, one for the new incoming stream, and one for a presumed follow-up stream. For
       * HTTP/2, only one connection would be established by default as one connection can
       * serve both the original and presumed follow-up stream.
       * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
       * active streams, there would be 100 connections in use, and 50 connections preconnected.
       * This might be a useful value for something like short lived single-use connections,
       * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
       * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
       * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
       * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
       * in case of unexpected disconnects where the connection could not be reused.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight. This means in steady state if a connection is torn down,
       * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
       * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
       * harm latency more than the preconnecting helps.
       * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } */ public Builder mergePerUpstreamPreconnectRatio(com.google.protobuf.DoubleValue value) { if (perUpstreamPreconnectRatioBuilder_ == null) { if (perUpstreamPreconnectRatio_ != null) { perUpstreamPreconnectRatio_ = com.google.protobuf.DoubleValue.newBuilder(perUpstreamPreconnectRatio_).mergeFrom(value).buildPartial(); } else { perUpstreamPreconnectRatio_ = value; } onChanged(); } else { perUpstreamPreconnectRatioBuilder_.mergeFrom(value); } return this; } /** *
       * Indicates how many streams (rounded up) can be anticipated per-upstream for each
       * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
       * will only be done if the upstream is healthy and the cluster has traffic.
       * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
       * established, one for the new incoming stream, and one for a presumed follow-up stream. For
       * HTTP/2, only one connection would be established by default as one connection can
       * serve both the original and presumed follow-up stream.
       * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
       * active streams, there would be 100 connections in use, and 50 connections preconnected.
       * This might be a useful value for something like short lived single-use connections,
       * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
       * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
       * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
       * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
       * in case of unexpected disconnects where the connection could not be reused.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight. This means in steady state if a connection is torn down,
       * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
       * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
       * harm latency more than the preconnecting helps.
       * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } */ public Builder clearPerUpstreamPreconnectRatio() { if (perUpstreamPreconnectRatioBuilder_ == null) { perUpstreamPreconnectRatio_ = null; onChanged(); } else { perUpstreamPreconnectRatio_ = null; perUpstreamPreconnectRatioBuilder_ = null; } return this; } /** *
       * Indicates how many streams (rounded up) can be anticipated per-upstream for each
       * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
       * will only be done if the upstream is healthy and the cluster has traffic.
       * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
       * established, one for the new incoming stream, and one for a presumed follow-up stream. For
       * HTTP/2, only one connection would be established by default as one connection can
       * serve both the original and presumed follow-up stream.
       * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
       * active streams, there would be 100 connections in use, and 50 connections preconnected.
       * This might be a useful value for something like short lived single-use connections,
       * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
       * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
       * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
       * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
       * in case of unexpected disconnects where the connection could not be reused.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight. This means in steady state if a connection is torn down,
       * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
       * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
       * harm latency more than the preconnecting helps.
       * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } */ public com.google.protobuf.DoubleValue.Builder getPerUpstreamPreconnectRatioBuilder() { onChanged(); return getPerUpstreamPreconnectRatioFieldBuilder().getBuilder(); } /** *
       * Indicates how many streams (rounded up) can be anticipated per-upstream for each
       * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
       * will only be done if the upstream is healthy and the cluster has traffic.
       * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
       * established, one for the new incoming stream, and one for a presumed follow-up stream. For
       * HTTP/2, only one connection would be established by default as one connection can
       * serve both the original and presumed follow-up stream.
       * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
       * active streams, there would be 100 connections in use, and 50 connections preconnected.
       * This might be a useful value for something like short lived single-use connections,
       * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
       * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
       * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
       * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
       * in case of unexpected disconnects where the connection could not be reused.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight. This means in steady state if a connection is torn down,
       * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
       * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
       * harm latency more than the preconnecting helps.
       * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } */ public com.google.protobuf.DoubleValueOrBuilder getPerUpstreamPreconnectRatioOrBuilder() { if (perUpstreamPreconnectRatioBuilder_ != null) { return perUpstreamPreconnectRatioBuilder_.getMessageOrBuilder(); } else { return perUpstreamPreconnectRatio_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : perUpstreamPreconnectRatio_; } } /** *
       * Indicates how many streams (rounded up) can be anticipated per-upstream for each
       * incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
       * will only be done if the upstream is healthy and the cluster has traffic.
       * For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
       * established, one for the new incoming stream, and one for a presumed follow-up stream. For
       * HTTP/2, only one connection would be established by default as one connection can
       * serve both the original and presumed follow-up stream.
       * In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
       * active streams, there would be 100 connections in use, and 50 connections preconnected.
       * This might be a useful value for something like short lived single-use connections,
       * for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
       * termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
       * or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
       * reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
       * in case of unexpected disconnects where the connection could not be reused.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight. This means in steady state if a connection is torn down,
       * a subsequent streams will pay an upstream-rtt latency penalty waiting for a new connection.
       * This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
       * harm latency more than the preconnecting helps.
       * 
* * .google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1 [(.validate.rules) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder> getPerUpstreamPreconnectRatioFieldBuilder() { if (perUpstreamPreconnectRatioBuilder_ == null) { perUpstreamPreconnectRatioBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder>( getPerUpstreamPreconnectRatio(), getParentForChildren(), isClean()); perUpstreamPreconnectRatio_ = null; } return perUpstreamPreconnectRatioBuilder_; } private com.google.protobuf.DoubleValue predictivePreconnectRatio_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder> predictivePreconnectRatioBuilder_; /** *
       * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
       * stream, useful for low QPS services. This is currently supported for a subset of
       * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
       * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
       * cluster, doing best effort predictions of what upstream would be picked next and
       * pre-establishing a connection.
       * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
       * only be done if there are healthy upstreams and the cluster has traffic.
       * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
       * incoming stream, 2 connections will be preconnected - one to the first upstream for this
       * cluster, one to the second on the assumption there will be a follow-up stream.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight, so during warm up and in steady state if a connection
       * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
       * connection establishment.
       * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
       * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
       * upstream.
       * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } * @return Whether the predictivePreconnectRatio field is set. */ public boolean hasPredictivePreconnectRatio() { return predictivePreconnectRatioBuilder_ != null || predictivePreconnectRatio_ != null; } /** *
       * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
       * stream, useful for low QPS services. This is currently supported for a subset of
       * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
       * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
       * cluster, doing best effort predictions of what upstream would be picked next and
       * pre-establishing a connection.
       * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
       * only be done if there are healthy upstreams and the cluster has traffic.
       * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
       * incoming stream, 2 connections will be preconnected - one to the first upstream for this
       * cluster, one to the second on the assumption there will be a follow-up stream.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight, so during warm up and in steady state if a connection
       * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
       * connection establishment.
       * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
       * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
       * upstream.
       * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } * @return The predictivePreconnectRatio. */ public com.google.protobuf.DoubleValue getPredictivePreconnectRatio() { if (predictivePreconnectRatioBuilder_ == null) { return predictivePreconnectRatio_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : predictivePreconnectRatio_; } else { return predictivePreconnectRatioBuilder_.getMessage(); } } /** *
       * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
       * stream, useful for low QPS services. This is currently supported for a subset of
       * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
       * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
       * cluster, doing best effort predictions of what upstream would be picked next and
       * pre-establishing a connection.
       * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
       * only be done if there are healthy upstreams and the cluster has traffic.
       * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
       * incoming stream, 2 connections will be preconnected - one to the first upstream for this
       * cluster, one to the second on the assumption there will be a follow-up stream.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight, so during warm up and in steady state if a connection
       * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
       * connection establishment.
       * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
       * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
       * upstream.
       * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } */ public Builder setPredictivePreconnectRatio(com.google.protobuf.DoubleValue value) { if (predictivePreconnectRatioBuilder_ == null) { if (value == null) { throw new NullPointerException(); } predictivePreconnectRatio_ = value; onChanged(); } else { predictivePreconnectRatioBuilder_.setMessage(value); } return this; } /** *
       * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
       * stream, useful for low QPS services. This is currently supported for a subset of
       * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
       * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
       * cluster, doing best effort predictions of what upstream would be picked next and
       * pre-establishing a connection.
       * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
       * only be done if there are healthy upstreams and the cluster has traffic.
       * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
       * incoming stream, 2 connections will be preconnected - one to the first upstream for this
       * cluster, one to the second on the assumption there will be a follow-up stream.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight, so during warm up and in steady state if a connection
       * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
       * connection establishment.
       * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
       * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
       * upstream.
       * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } */ public Builder setPredictivePreconnectRatio( com.google.protobuf.DoubleValue.Builder builderForValue) { if (predictivePreconnectRatioBuilder_ == null) { predictivePreconnectRatio_ = builderForValue.build(); onChanged(); } else { predictivePreconnectRatioBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
       * stream, useful for low QPS services. This is currently supported for a subset of
       * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
       * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
       * cluster, doing best effort predictions of what upstream would be picked next and
       * pre-establishing a connection.
       * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
       * only be done if there are healthy upstreams and the cluster has traffic.
       * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
       * incoming stream, 2 connections will be preconnected - one to the first upstream for this
       * cluster, one to the second on the assumption there will be a follow-up stream.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight, so during warm up and in steady state if a connection
       * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
       * connection establishment.
       * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
       * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
       * upstream.
       * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } */ public Builder mergePredictivePreconnectRatio(com.google.protobuf.DoubleValue value) { if (predictivePreconnectRatioBuilder_ == null) { if (predictivePreconnectRatio_ != null) { predictivePreconnectRatio_ = com.google.protobuf.DoubleValue.newBuilder(predictivePreconnectRatio_).mergeFrom(value).buildPartial(); } else { predictivePreconnectRatio_ = value; } onChanged(); } else { predictivePreconnectRatioBuilder_.mergeFrom(value); } return this; } /** *
       * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
       * stream, useful for low QPS services. This is currently supported for a subset of
       * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
       * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
       * cluster, doing best effort predictions of what upstream would be picked next and
       * pre-establishing a connection.
       * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
       * only be done if there are healthy upstreams and the cluster has traffic.
       * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
       * incoming stream, 2 connections will be preconnected - one to the first upstream for this
       * cluster, one to the second on the assumption there will be a follow-up stream.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight, so during warm up and in steady state if a connection
       * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
       * connection establishment.
       * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
       * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
       * upstream.
       * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } */ public Builder clearPredictivePreconnectRatio() { if (predictivePreconnectRatioBuilder_ == null) { predictivePreconnectRatio_ = null; onChanged(); } else { predictivePreconnectRatio_ = null; predictivePreconnectRatioBuilder_ = null; } return this; } /** *
       * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
       * stream, useful for low QPS services. This is currently supported for a subset of
       * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
       * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
       * cluster, doing best effort predictions of what upstream would be picked next and
       * pre-establishing a connection.
       * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
       * only be done if there are healthy upstreams and the cluster has traffic.
       * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
       * incoming stream, 2 connections will be preconnected - one to the first upstream for this
       * cluster, one to the second on the assumption there will be a follow-up stream.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight, so during warm up and in steady state if a connection
       * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
       * connection establishment.
       * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
       * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
       * upstream.
       * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } */ public com.google.protobuf.DoubleValue.Builder getPredictivePreconnectRatioBuilder() { onChanged(); return getPredictivePreconnectRatioFieldBuilder().getBuilder(); } /** *
       * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
       * stream, useful for low QPS services. This is currently supported for a subset of
       * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
       * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
       * cluster, doing best effort predictions of what upstream would be picked next and
       * pre-establishing a connection.
       * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
       * only be done if there are healthy upstreams and the cluster has traffic.
       * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
       * incoming stream, 2 connections will be preconnected - one to the first upstream for this
       * cluster, one to the second on the assumption there will be a follow-up stream.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight, so during warm up and in steady state if a connection
       * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
       * connection establishment.
       * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
       * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
       * upstream.
       * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } */ public com.google.protobuf.DoubleValueOrBuilder getPredictivePreconnectRatioOrBuilder() { if (predictivePreconnectRatioBuilder_ != null) { return predictivePreconnectRatioBuilder_.getMessageOrBuilder(); } else { return predictivePreconnectRatio_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : predictivePreconnectRatio_; } } /** *
       * Indicates how many many streams (rounded up) can be anticipated across a cluster for each
       * stream, useful for low QPS services. This is currently supported for a subset of
       * deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
       * Unlike ``per_upstream_preconnect_ratio`` this preconnects across the upstream instances in a
       * cluster, doing best effort predictions of what upstream would be picked next and
       * pre-establishing a connection.
       * Preconnecting will be limited to one preconnect per configured upstream in the cluster and will
       * only be done if there are healthy upstreams and the cluster has traffic.
       * For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
       * incoming stream, 2 connections will be preconnected - one to the first upstream for this
       * cluster, one to the second on the assumption there will be a follow-up stream.
       * If this value is not set, or set explicitly to one, Envoy will fetch as many connections
       * as needed to serve streams in flight, so during warm up and in steady state if a connection
       * is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
       * connection establishment.
       * If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
       * basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each
       * upstream.
       * 
* * .google.protobuf.DoubleValue predictive_preconnect_ratio = 2 [(.validate.rules) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder> getPredictivePreconnectRatioFieldBuilder() { if (predictivePreconnectRatioBuilder_ == null) { predictivePreconnectRatioBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder>( getPredictivePreconnectRatio(), getParentForChildren(), isClean()); predictivePreconnectRatio_ = null; } return predictivePreconnectRatioBuilder_; } @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:envoy.config.cluster.v3.Cluster.PreconnectPolicy) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster.PreconnectPolicy) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy(); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public PreconnectPolicy parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new PreconnectPolicy(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 io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private int clusterDiscoveryTypeCase_ = 0; private java.lang.Object clusterDiscoveryType_; public enum ClusterDiscoveryTypeCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { TYPE(2), CLUSTER_TYPE(38), CLUSTERDISCOVERYTYPE_NOT_SET(0); private final int value; private ClusterDiscoveryTypeCase(int value) { this.value = value; } /** * @param value The number of the enum to look for. * @return The enum associated with the given number. * @deprecated Use {@link #forNumber(int)} instead. */ @java.lang.Deprecated public static ClusterDiscoveryTypeCase valueOf(int value) { return forNumber(value); } public static ClusterDiscoveryTypeCase forNumber(int value) { switch (value) { case 2: return TYPE; case 38: return CLUSTER_TYPE; case 0: return CLUSTERDISCOVERYTYPE_NOT_SET; default: return null; } } public int getNumber() { return this.value; } }; public ClusterDiscoveryTypeCase getClusterDiscoveryTypeCase() { return ClusterDiscoveryTypeCase.forNumber( clusterDiscoveryTypeCase_); } private int lbConfigCase_ = 0; private java.lang.Object lbConfig_; public enum LbConfigCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { RING_HASH_LB_CONFIG(23), MAGLEV_LB_CONFIG(52), ORIGINAL_DST_LB_CONFIG(34), LEAST_REQUEST_LB_CONFIG(37), ROUND_ROBIN_LB_CONFIG(56), LBCONFIG_NOT_SET(0); private final int value; private LbConfigCase(int value) { this.value = value; } /** * @param value The number of the enum to look for. * @return The enum associated with the given number. * @deprecated Use {@link #forNumber(int)} instead. */ @java.lang.Deprecated public static LbConfigCase valueOf(int value) { return forNumber(value); } public static LbConfigCase forNumber(int value) { switch (value) { case 23: return RING_HASH_LB_CONFIG; case 52: return MAGLEV_LB_CONFIG; case 34: return ORIGINAL_DST_LB_CONFIG; case 37: return LEAST_REQUEST_LB_CONFIG; case 56: return ROUND_ROBIN_LB_CONFIG; case 0: return LBCONFIG_NOT_SET; default: return null; } } public int getNumber() { return this.value; } }; public LbConfigCase getLbConfigCase() { return LbConfigCase.forNumber( lbConfigCase_); } public static final int TRANSPORT_SOCKET_MATCHES_FIELD_NUMBER = 43; private java.util.List transportSocketMatches_; /** *
   * Configuration to use different transport sockets for different endpoints.
   * The entry of ``envoy.transport_socket_match`` in the
   * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
   * is used to match against the transport sockets as they appear in the list. The first
   * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
   * For example, with the following match
   * .. code-block:: yaml
   *  transport_socket_matches:
   *  - name: "enableMTLS"
   *    match:
   *      acceptMTLS: true
   *    transport_socket:
   *      name: envoy.transport_sockets.tls
   *      config: { ... } # tls socket configuration
   *  - name: "defaultToPlaintext"
   *    match: {}
   *    transport_socket:
   *      name: envoy.transport_sockets.raw_buffer
   * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
   * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
   * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
   * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
   * socket match in case above.
   * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
   * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
   * ``transport_socket`` specified in this cluster.
   * This field allows gradual and flexible transport socket configuration changes.
   * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
   * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
   * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
   * has "acceptPlaintext": "true" metadata information.
   * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
   * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
   * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
   * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
   * This field can be used to specify custom transport socket configurations for health
   * checks by adding matching key/value pairs in a health check's
   * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
   * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
   * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ @java.lang.Override public java.util.List getTransportSocketMatchesList() { return transportSocketMatches_; } /** *
   * Configuration to use different transport sockets for different endpoints.
   * The entry of ``envoy.transport_socket_match`` in the
   * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
   * is used to match against the transport sockets as they appear in the list. The first
   * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
   * For example, with the following match
   * .. code-block:: yaml
   *  transport_socket_matches:
   *  - name: "enableMTLS"
   *    match:
   *      acceptMTLS: true
   *    transport_socket:
   *      name: envoy.transport_sockets.tls
   *      config: { ... } # tls socket configuration
   *  - name: "defaultToPlaintext"
   *    match: {}
   *    transport_socket:
   *      name: envoy.transport_sockets.raw_buffer
   * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
   * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
   * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
   * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
   * socket match in case above.
   * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
   * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
   * ``transport_socket`` specified in this cluster.
   * This field allows gradual and flexible transport socket configuration changes.
   * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
   * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
   * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
   * has "acceptPlaintext": "true" metadata information.
   * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
   * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
   * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
   * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
   * This field can be used to specify custom transport socket configurations for health
   * checks by adding matching key/value pairs in a health check's
   * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
   * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
   * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ @java.lang.Override public java.util.List getTransportSocketMatchesOrBuilderList() { return transportSocketMatches_; } /** *
   * Configuration to use different transport sockets for different endpoints.
   * The entry of ``envoy.transport_socket_match`` in the
   * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
   * is used to match against the transport sockets as they appear in the list. The first
   * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
   * For example, with the following match
   * .. code-block:: yaml
   *  transport_socket_matches:
   *  - name: "enableMTLS"
   *    match:
   *      acceptMTLS: true
   *    transport_socket:
   *      name: envoy.transport_sockets.tls
   *      config: { ... } # tls socket configuration
   *  - name: "defaultToPlaintext"
   *    match: {}
   *    transport_socket:
   *      name: envoy.transport_sockets.raw_buffer
   * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
   * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
   * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
   * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
   * socket match in case above.
   * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
   * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
   * ``transport_socket`` specified in this cluster.
   * This field allows gradual and flexible transport socket configuration changes.
   * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
   * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
   * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
   * has "acceptPlaintext": "true" metadata information.
   * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
   * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
   * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
   * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
   * This field can be used to specify custom transport socket configurations for health
   * checks by adding matching key/value pairs in a health check's
   * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
   * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
   * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ @java.lang.Override public int getTransportSocketMatchesCount() { return transportSocketMatches_.size(); } /** *
   * Configuration to use different transport sockets for different endpoints.
   * The entry of ``envoy.transport_socket_match`` in the
   * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
   * is used to match against the transport sockets as they appear in the list. The first
   * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
   * For example, with the following match
   * .. code-block:: yaml
   *  transport_socket_matches:
   *  - name: "enableMTLS"
   *    match:
   *      acceptMTLS: true
   *    transport_socket:
   *      name: envoy.transport_sockets.tls
   *      config: { ... } # tls socket configuration
   *  - name: "defaultToPlaintext"
   *    match: {}
   *    transport_socket:
   *      name: envoy.transport_sockets.raw_buffer
   * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
   * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
   * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
   * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
   * socket match in case above.
   * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
   * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
   * ``transport_socket`` specified in this cluster.
   * This field allows gradual and flexible transport socket configuration changes.
   * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
   * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
   * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
   * has "acceptPlaintext": "true" metadata information.
   * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
   * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
   * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
   * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
   * This field can be used to specify custom transport socket configurations for health
   * checks by adding matching key/value pairs in a health check's
   * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
   * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
   * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch getTransportSocketMatches(int index) { return transportSocketMatches_.get(index); } /** *
   * Configuration to use different transport sockets for different endpoints.
   * The entry of ``envoy.transport_socket_match`` in the
   * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
   * is used to match against the transport sockets as they appear in the list. The first
   * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
   * For example, with the following match
   * .. code-block:: yaml
   *  transport_socket_matches:
   *  - name: "enableMTLS"
   *    match:
   *      acceptMTLS: true
   *    transport_socket:
   *      name: envoy.transport_sockets.tls
   *      config: { ... } # tls socket configuration
   *  - name: "defaultToPlaintext"
   *    match: {}
   *    transport_socket:
   *      name: envoy.transport_sockets.raw_buffer
   * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
   * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
   * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
   * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
   * socket match in case above.
   * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
   * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
   * ``transport_socket`` specified in this cluster.
   * This field allows gradual and flexible transport socket configuration changes.
   * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
   * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
   * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
   * has "acceptPlaintext": "true" metadata information.
   * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
   * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
   * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
   * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
   * This field can be used to specify custom transport socket configurations for health
   * checks by adding matching key/value pairs in a health check's
   * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
   * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
   * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatchOrBuilder getTransportSocketMatchesOrBuilder( int index) { return transportSocketMatches_.get(index); } public static final int NAME_FIELD_NUMBER = 1; private volatile java.lang.Object name_; /** *
   * Supplies the name of the cluster which must be unique across all clusters.
   * The cluster name is used when emitting
   * :ref:`statistics <config_cluster_manager_cluster_stats>` if :ref:`alt_stat_name
   * <envoy_v3_api_field_config.cluster.v3.Cluster.alt_stat_name>` is not provided.
   * Any ``:`` in the cluster name will be converted to ``_`` when emitting statistics.
   * 
* * string name = 1 [(.validate.rules) = { ... } * @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; } } /** *
   * Supplies the name of the cluster which must be unique across all clusters.
   * The cluster name is used when emitting
   * :ref:`statistics <config_cluster_manager_cluster_stats>` if :ref:`alt_stat_name
   * <envoy_v3_api_field_config.cluster.v3.Cluster.alt_stat_name>` is not provided.
   * Any ``:`` in the cluster name will be converted to ``_`` when emitting statistics.
   * 
* * string name = 1 [(.validate.rules) = { ... } * @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 ALT_STAT_NAME_FIELD_NUMBER = 28; private volatile java.lang.Object altStatName_; /** *
   * An optional alternative to the cluster name to be used for observability. This name is used
   * emitting stats for the cluster and access logging the cluster name. This will appear as
   * additional information in configuration dumps of a cluster's current status as
   * :ref:`observability_name <envoy_v3_api_field_admin.v3.ClusterStatus.observability_name>`
   * and as an additional tag "upstream_cluster.name" while tracing. Note: Any ``:`` in the name
   * will be converted to ``_`` when emitting statistics. This should not be confused with
   * :ref:`Router Filter Header <config_http_filters_router_x-envoy-upstream-alt-stat-name>`.
   * 
* * string alt_stat_name = 28 [(.udpa.annotations.field_migrate) = { ... } * @return The altStatName. */ @java.lang.Override public java.lang.String getAltStatName() { java.lang.Object ref = altStatName_; 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(); altStatName_ = s; return s; } } /** *
   * An optional alternative to the cluster name to be used for observability. This name is used
   * emitting stats for the cluster and access logging the cluster name. This will appear as
   * additional information in configuration dumps of a cluster's current status as
   * :ref:`observability_name <envoy_v3_api_field_admin.v3.ClusterStatus.observability_name>`
   * and as an additional tag "upstream_cluster.name" while tracing. Note: Any ``:`` in the name
   * will be converted to ``_`` when emitting statistics. This should not be confused with
   * :ref:`Router Filter Header <config_http_filters_router_x-envoy-upstream-alt-stat-name>`.
   * 
* * string alt_stat_name = 28 [(.udpa.annotations.field_migrate) = { ... } * @return The bytes for altStatName. */ @java.lang.Override public com.google.protobuf.ByteString getAltStatNameBytes() { java.lang.Object ref = altStatName_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); altStatName_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int TYPE_FIELD_NUMBER = 2; /** *
   * The :ref:`service discovery type <arch_overview_service_discovery_types>`
   * to use for resolving the cluster.
   * 
* * .envoy.config.cluster.v3.Cluster.DiscoveryType type = 2 [(.validate.rules) = { ... } * @return Whether the type field is set. */ public boolean hasType() { return clusterDiscoveryTypeCase_ == 2; } /** *
   * The :ref:`service discovery type <arch_overview_service_discovery_types>`
   * to use for resolving the cluster.
   * 
* * .envoy.config.cluster.v3.Cluster.DiscoveryType type = 2 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for type. */ public int getTypeValue() { if (clusterDiscoveryTypeCase_ == 2) { return (java.lang.Integer) clusterDiscoveryType_; } return 0; } /** *
   * The :ref:`service discovery type <arch_overview_service_discovery_types>`
   * to use for resolving the cluster.
   * 
* * .envoy.config.cluster.v3.Cluster.DiscoveryType type = 2 [(.validate.rules) = { ... } * @return The type. */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.DiscoveryType getType() { if (clusterDiscoveryTypeCase_ == 2) { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.DiscoveryType result = io.envoyproxy.envoy.config.cluster.v3.Cluster.DiscoveryType.valueOf( (java.lang.Integer) clusterDiscoveryType_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.DiscoveryType.UNRECOGNIZED : result; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.DiscoveryType.STATIC; } public static final int CLUSTER_TYPE_FIELD_NUMBER = 38; /** *
   * The custom cluster type.
   * 
* * .envoy.config.cluster.v3.Cluster.CustomClusterType cluster_type = 38; * @return Whether the clusterType field is set. */ @java.lang.Override public boolean hasClusterType() { return clusterDiscoveryTypeCase_ == 38; } /** *
   * The custom cluster type.
   * 
* * .envoy.config.cluster.v3.Cluster.CustomClusterType cluster_type = 38; * @return The clusterType. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType getClusterType() { if (clusterDiscoveryTypeCase_ == 38) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType) clusterDiscoveryType_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.getDefaultInstance(); } /** *
   * The custom cluster type.
   * 
* * .envoy.config.cluster.v3.Cluster.CustomClusterType cluster_type = 38; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterTypeOrBuilder getClusterTypeOrBuilder() { if (clusterDiscoveryTypeCase_ == 38) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType) clusterDiscoveryType_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.getDefaultInstance(); } public static final int EDS_CLUSTER_CONFIG_FIELD_NUMBER = 3; private io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig edsClusterConfig_; /** *
   * Configuration to use for EDS updates for the Cluster.
   * 
* * .envoy.config.cluster.v3.Cluster.EdsClusterConfig eds_cluster_config = 3; * @return Whether the edsClusterConfig field is set. */ @java.lang.Override public boolean hasEdsClusterConfig() { return edsClusterConfig_ != null; } /** *
   * Configuration to use for EDS updates for the Cluster.
   * 
* * .envoy.config.cluster.v3.Cluster.EdsClusterConfig eds_cluster_config = 3; * @return The edsClusterConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig getEdsClusterConfig() { return edsClusterConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.getDefaultInstance() : edsClusterConfig_; } /** *
   * Configuration to use for EDS updates for the Cluster.
   * 
* * .envoy.config.cluster.v3.Cluster.EdsClusterConfig eds_cluster_config = 3; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfigOrBuilder getEdsClusterConfigOrBuilder() { return getEdsClusterConfig(); } public static final int CONNECT_TIMEOUT_FIELD_NUMBER = 4; private com.google.protobuf.Duration connectTimeout_; /** *
   * The timeout for new network connections to hosts in the cluster.
   * If not set, a default value of 5s will be used.
   * 
* * .google.protobuf.Duration connect_timeout = 4 [(.validate.rules) = { ... } * @return Whether the connectTimeout field is set. */ @java.lang.Override public boolean hasConnectTimeout() { return connectTimeout_ != null; } /** *
   * The timeout for new network connections to hosts in the cluster.
   * If not set, a default value of 5s will be used.
   * 
* * .google.protobuf.Duration connect_timeout = 4 [(.validate.rules) = { ... } * @return The connectTimeout. */ @java.lang.Override public com.google.protobuf.Duration getConnectTimeout() { return connectTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : connectTimeout_; } /** *
   * The timeout for new network connections to hosts in the cluster.
   * If not set, a default value of 5s will be used.
   * 
* * .google.protobuf.Duration connect_timeout = 4 [(.validate.rules) = { ... } */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getConnectTimeoutOrBuilder() { return getConnectTimeout(); } public static final int PER_CONNECTION_BUFFER_LIMIT_BYTES_FIELD_NUMBER = 5; private com.google.protobuf.UInt32Value perConnectionBufferLimitBytes_; /** *
   * Soft limit on size of the cluster’s connections read and write buffers. If
   * unspecified, an implementation defined default is applied (1MiB).
   * 
* * .google.protobuf.UInt32Value per_connection_buffer_limit_bytes = 5 [(.udpa.annotations.security) = { ... } * @return Whether the perConnectionBufferLimitBytes field is set. */ @java.lang.Override public boolean hasPerConnectionBufferLimitBytes() { return perConnectionBufferLimitBytes_ != null; } /** *
   * Soft limit on size of the cluster’s connections read and write buffers. If
   * unspecified, an implementation defined default is applied (1MiB).
   * 
* * .google.protobuf.UInt32Value per_connection_buffer_limit_bytes = 5 [(.udpa.annotations.security) = { ... } * @return The perConnectionBufferLimitBytes. */ @java.lang.Override public com.google.protobuf.UInt32Value getPerConnectionBufferLimitBytes() { return perConnectionBufferLimitBytes_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : perConnectionBufferLimitBytes_; } /** *
   * Soft limit on size of the cluster’s connections read and write buffers. If
   * unspecified, an implementation defined default is applied (1MiB).
   * 
* * .google.protobuf.UInt32Value per_connection_buffer_limit_bytes = 5 [(.udpa.annotations.security) = { ... } */ @java.lang.Override public com.google.protobuf.UInt32ValueOrBuilder getPerConnectionBufferLimitBytesOrBuilder() { return getPerConnectionBufferLimitBytes(); } public static final int LB_POLICY_FIELD_NUMBER = 6; private int lbPolicy_; /** *
   * The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
   * when picking a host in the cluster.
   * 
* * .envoy.config.cluster.v3.Cluster.LbPolicy lb_policy = 6 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for lbPolicy. */ @java.lang.Override public int getLbPolicyValue() { return lbPolicy_; } /** *
   * The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
   * when picking a host in the cluster.
   * 
* * .envoy.config.cluster.v3.Cluster.LbPolicy lb_policy = 6 [(.validate.rules) = { ... } * @return The lbPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbPolicy getLbPolicy() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.LbPolicy result = io.envoyproxy.envoy.config.cluster.v3.Cluster.LbPolicy.valueOf(lbPolicy_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.LbPolicy.UNRECOGNIZED : result; } public static final int LOAD_ASSIGNMENT_FIELD_NUMBER = 33; private io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment loadAssignment_; /** *
   * Setting this is required for specifying members of
   * :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
   * This field supersedes the ``hosts`` field in the v2 API.
   * .. attention::
   *   Setting this allows non-EDS cluster types to contain embedded EDS equivalent
   *   :ref:`endpoint assignments<envoy_v3_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
   * 
* * .envoy.config.endpoint.v3.ClusterLoadAssignment load_assignment = 33; * @return Whether the loadAssignment field is set. */ @java.lang.Override public boolean hasLoadAssignment() { return loadAssignment_ != null; } /** *
   * Setting this is required for specifying members of
   * :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
   * This field supersedes the ``hosts`` field in the v2 API.
   * .. attention::
   *   Setting this allows non-EDS cluster types to contain embedded EDS equivalent
   *   :ref:`endpoint assignments<envoy_v3_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
   * 
* * .envoy.config.endpoint.v3.ClusterLoadAssignment load_assignment = 33; * @return The loadAssignment. */ @java.lang.Override public io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment getLoadAssignment() { return loadAssignment_ == null ? io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment.getDefaultInstance() : loadAssignment_; } /** *
   * Setting this is required for specifying members of
   * :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
   * This field supersedes the ``hosts`` field in the v2 API.
   * .. attention::
   *   Setting this allows non-EDS cluster types to contain embedded EDS equivalent
   *   :ref:`endpoint assignments<envoy_v3_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
   * 
* * .envoy.config.endpoint.v3.ClusterLoadAssignment load_assignment = 33; */ @java.lang.Override public io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignmentOrBuilder getLoadAssignmentOrBuilder() { return getLoadAssignment(); } public static final int HEALTH_CHECKS_FIELD_NUMBER = 8; private java.util.List healthChecks_; /** *
   * Optional :ref:`active health checking <arch_overview_health_checking>`
   * configuration for the cluster. If no
   * configuration is specified no health checking will be done and all cluster
   * members will be considered healthy at all times.
   * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ @java.lang.Override public java.util.List getHealthChecksList() { return healthChecks_; } /** *
   * Optional :ref:`active health checking <arch_overview_health_checking>`
   * configuration for the cluster. If no
   * configuration is specified no health checking will be done and all cluster
   * members will be considered healthy at all times.
   * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ @java.lang.Override public java.util.List getHealthChecksOrBuilderList() { return healthChecks_; } /** *
   * Optional :ref:`active health checking <arch_overview_health_checking>`
   * configuration for the cluster. If no
   * configuration is specified no health checking will be done and all cluster
   * members will be considered healthy at all times.
   * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ @java.lang.Override public int getHealthChecksCount() { return healthChecks_.size(); } /** *
   * Optional :ref:`active health checking <arch_overview_health_checking>`
   * configuration for the cluster. If no
   * configuration is specified no health checking will be done and all cluster
   * members will be considered healthy at all times.
   * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.HealthCheck getHealthChecks(int index) { return healthChecks_.get(index); } /** *
   * Optional :ref:`active health checking <arch_overview_health_checking>`
   * configuration for the cluster. If no
   * configuration is specified no health checking will be done and all cluster
   * members will be considered healthy at all times.
   * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.HealthCheckOrBuilder getHealthChecksOrBuilder( int index) { return healthChecks_.get(index); } public static final int MAX_REQUESTS_PER_CONNECTION_FIELD_NUMBER = 9; private com.google.protobuf.UInt32Value maxRequestsPerConnection_; /** *
   * Optional maximum requests for a single upstream connection. This parameter
   * is respected by both the HTTP/1.1 and HTTP/2 connection pool
   * implementations. If not specified, there is no limit. Setting this
   * parameter to 1 will effectively disable keep alive.
   * .. attention::
   *   This field has been deprecated in favor of the :ref:`max_requests_per_connection <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_requests_per_connection>` field.
   * 
* * .google.protobuf.UInt32Value max_requests_per_connection = 9 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.max_requests_per_connection is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=868 * @return Whether the maxRequestsPerConnection field is set. */ @java.lang.Override @java.lang.Deprecated public boolean hasMaxRequestsPerConnection() { return maxRequestsPerConnection_ != null; } /** *
   * Optional maximum requests for a single upstream connection. This parameter
   * is respected by both the HTTP/1.1 and HTTP/2 connection pool
   * implementations. If not specified, there is no limit. Setting this
   * parameter to 1 will effectively disable keep alive.
   * .. attention::
   *   This field has been deprecated in favor of the :ref:`max_requests_per_connection <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_requests_per_connection>` field.
   * 
* * .google.protobuf.UInt32Value max_requests_per_connection = 9 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.max_requests_per_connection is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=868 * @return The maxRequestsPerConnection. */ @java.lang.Override @java.lang.Deprecated public com.google.protobuf.UInt32Value getMaxRequestsPerConnection() { return maxRequestsPerConnection_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : maxRequestsPerConnection_; } /** *
   * Optional maximum requests for a single upstream connection. This parameter
   * is respected by both the HTTP/1.1 and HTTP/2 connection pool
   * implementations. If not specified, there is no limit. Setting this
   * parameter to 1 will effectively disable keep alive.
   * .. attention::
   *   This field has been deprecated in favor of the :ref:`max_requests_per_connection <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_requests_per_connection>` field.
   * 
* * .google.protobuf.UInt32Value max_requests_per_connection = 9 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public com.google.protobuf.UInt32ValueOrBuilder getMaxRequestsPerConnectionOrBuilder() { return getMaxRequestsPerConnection(); } public static final int CIRCUIT_BREAKERS_FIELD_NUMBER = 10; private io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers circuitBreakers_; /** *
   * Optional :ref:`circuit breaking <arch_overview_circuit_break>` for the cluster.
   * 
* * .envoy.config.cluster.v3.CircuitBreakers circuit_breakers = 10; * @return Whether the circuitBreakers field is set. */ @java.lang.Override public boolean hasCircuitBreakers() { return circuitBreakers_ != null; } /** *
   * Optional :ref:`circuit breaking <arch_overview_circuit_break>` for the cluster.
   * 
* * .envoy.config.cluster.v3.CircuitBreakers circuit_breakers = 10; * @return The circuitBreakers. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers getCircuitBreakers() { return circuitBreakers_ == null ? io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers.getDefaultInstance() : circuitBreakers_; } /** *
   * Optional :ref:`circuit breaking <arch_overview_circuit_break>` for the cluster.
   * 
* * .envoy.config.cluster.v3.CircuitBreakers circuit_breakers = 10; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.CircuitBreakersOrBuilder getCircuitBreakersOrBuilder() { return getCircuitBreakers(); } public static final int UPSTREAM_HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER = 46; private io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions upstreamHttpProtocolOptions_; /** *
   * HTTP protocol options that are applied only to upstream HTTP connections.
   * These options apply to all HTTP versions.
   * This has been deprecated in favor of
   * :ref:`upstream_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
   * upstream_http_protocol_options can be set via the cluster's
   * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
   * See :ref:`upstream_http_protocol_options
   * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * for example usage.
   * 
* * .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.upstream_http_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=884 * @return Whether the upstreamHttpProtocolOptions field is set. */ @java.lang.Override @java.lang.Deprecated public boolean hasUpstreamHttpProtocolOptions() { return upstreamHttpProtocolOptions_ != null; } /** *
   * HTTP protocol options that are applied only to upstream HTTP connections.
   * These options apply to all HTTP versions.
   * This has been deprecated in favor of
   * :ref:`upstream_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
   * upstream_http_protocol_options can be set via the cluster's
   * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
   * See :ref:`upstream_http_protocol_options
   * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * for example usage.
   * 
* * .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.upstream_http_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=884 * @return The upstreamHttpProtocolOptions. */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions getUpstreamHttpProtocolOptions() { return upstreamHttpProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions.getDefaultInstance() : upstreamHttpProtocolOptions_; } /** *
   * HTTP protocol options that are applied only to upstream HTTP connections.
   * These options apply to all HTTP versions.
   * This has been deprecated in favor of
   * :ref:`upstream_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
   * upstream_http_protocol_options can be set via the cluster's
   * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
   * See :ref:`upstream_http_protocol_options
   * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * for example usage.
   * 
* * .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptionsOrBuilder getUpstreamHttpProtocolOptionsOrBuilder() { return getUpstreamHttpProtocolOptions(); } public static final int COMMON_HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER = 29; private io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions commonHttpProtocolOptions_; /** *
   * Additional options when handling HTTP requests upstream. These options will be applicable to
   * both HTTP1 and HTTP2 requests.
   * This has been deprecated in favor of
   * :ref:`common_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>`
   * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
   * common_http_protocol_options can be set via the cluster's
   * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
   * See :ref:`upstream_http_protocol_options
   * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * for example usage.
   * 
* * .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 29 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.common_http_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=897 * @return Whether the commonHttpProtocolOptions field is set. */ @java.lang.Override @java.lang.Deprecated public boolean hasCommonHttpProtocolOptions() { return commonHttpProtocolOptions_ != null; } /** *
   * Additional options when handling HTTP requests upstream. These options will be applicable to
   * both HTTP1 and HTTP2 requests.
   * This has been deprecated in favor of
   * :ref:`common_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>`
   * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
   * common_http_protocol_options can be set via the cluster's
   * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
   * See :ref:`upstream_http_protocol_options
   * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * for example usage.
   * 
* * .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 29 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.common_http_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=897 * @return The commonHttpProtocolOptions. */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions getCommonHttpProtocolOptions() { return commonHttpProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions.getDefaultInstance() : commonHttpProtocolOptions_; } /** *
   * Additional options when handling HTTP requests upstream. These options will be applicable to
   * both HTTP1 and HTTP2 requests.
   * This has been deprecated in favor of
   * :ref:`common_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>`
   * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
   * common_http_protocol_options can be set via the cluster's
   * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
   * See :ref:`upstream_http_protocol_options
   * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * for example usage.
   * 
* * .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 29 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.HttpProtocolOptionsOrBuilder getCommonHttpProtocolOptionsOrBuilder() { return getCommonHttpProtocolOptions(); } public static final int HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER = 13; private io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions httpProtocolOptions_; /** *
   * Additional options when handling HTTP1 requests.
   * This has been deprecated in favor of http_protocol_options fields in the
   * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
   * http_protocol_options can be set via the cluster's
   * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
   * See :ref:`upstream_http_protocol_options
   * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * for example usage.
   * 
* * .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 13 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.http_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=908 * @return Whether the httpProtocolOptions field is set. */ @java.lang.Override @java.lang.Deprecated public boolean hasHttpProtocolOptions() { return httpProtocolOptions_ != null; } /** *
   * Additional options when handling HTTP1 requests.
   * This has been deprecated in favor of http_protocol_options fields in the
   * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
   * http_protocol_options can be set via the cluster's
   * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
   * See :ref:`upstream_http_protocol_options
   * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * for example usage.
   * 
* * .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 13 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.http_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=908 * @return The httpProtocolOptions. */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions getHttpProtocolOptions() { return httpProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.getDefaultInstance() : httpProtocolOptions_; } /** *
   * Additional options when handling HTTP1 requests.
   * This has been deprecated in favor of http_protocol_options fields in the
   * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
   * http_protocol_options can be set via the cluster's
   * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
   * See :ref:`upstream_http_protocol_options
   * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * for example usage.
   * 
* * .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 13 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptionsOrBuilder getHttpProtocolOptionsOrBuilder() { return getHttpProtocolOptions(); } public static final int HTTP2_PROTOCOL_OPTIONS_FIELD_NUMBER = 14; private io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions http2ProtocolOptions_; /** *
   * Even if default HTTP2 protocol options are desired, this field must be
   * set so that Envoy will assume that the upstream supports HTTP/2 when
   * making new HTTP connection pool connections. Currently, Envoy only
   * supports prior knowledge for upstream connections. Even if TLS is used
   * with ALPN, ``http2_protocol_options`` must be specified. As an aside this allows HTTP/2
   * connections to happen over plain text.
   * This has been deprecated in favor of http2_protocol_options fields in the
   * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
   * message. http2_protocol_options can be set via the cluster's
   * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
   * See :ref:`upstream_http_protocol_options
   * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * for example usage.
   * 
* * .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 14 [deprecated = true, (.udpa.annotations.security) = { ... } * @deprecated envoy.config.cluster.v3.Cluster.http2_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=924 * @return Whether the http2ProtocolOptions field is set. */ @java.lang.Override @java.lang.Deprecated public boolean hasHttp2ProtocolOptions() { return http2ProtocolOptions_ != null; } /** *
   * Even if default HTTP2 protocol options are desired, this field must be
   * set so that Envoy will assume that the upstream supports HTTP/2 when
   * making new HTTP connection pool connections. Currently, Envoy only
   * supports prior knowledge for upstream connections. Even if TLS is used
   * with ALPN, ``http2_protocol_options`` must be specified. As an aside this allows HTTP/2
   * connections to happen over plain text.
   * This has been deprecated in favor of http2_protocol_options fields in the
   * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
   * message. http2_protocol_options can be set via the cluster's
   * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
   * See :ref:`upstream_http_protocol_options
   * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * for example usage.
   * 
* * .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 14 [deprecated = true, (.udpa.annotations.security) = { ... } * @deprecated envoy.config.cluster.v3.Cluster.http2_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=924 * @return The http2ProtocolOptions. */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions getHttp2ProtocolOptions() { return http2ProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.getDefaultInstance() : http2ProtocolOptions_; } /** *
   * Even if default HTTP2 protocol options are desired, this field must be
   * set so that Envoy will assume that the upstream supports HTTP/2 when
   * making new HTTP connection pool connections. Currently, Envoy only
   * supports prior knowledge for upstream connections. Even if TLS is used
   * with ALPN, ``http2_protocol_options`` must be specified. As an aside this allows HTTP/2
   * connections to happen over plain text.
   * This has been deprecated in favor of http2_protocol_options fields in the
   * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
   * message. http2_protocol_options can be set via the cluster's
   * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
   * See :ref:`upstream_http_protocol_options
   * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
   * for example usage.
   * 
* * .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 14 [deprecated = true, (.udpa.annotations.security) = { ... } */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptionsOrBuilder getHttp2ProtocolOptionsOrBuilder() { return getHttp2ProtocolOptions(); } public static final int TYPED_EXTENSION_PROTOCOL_OPTIONS_FIELD_NUMBER = 36; private static final class TypedExtensionProtocolOptionsDefaultEntryHolder { static final com.google.protobuf.MapEntry< java.lang.String, com.google.protobuf.Any> defaultEntry = com.google.protobuf.MapEntry .newDefaultInstance( io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_TypedExtensionProtocolOptionsEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.MESSAGE, com.google.protobuf.Any.getDefaultInstance()); } private com.google.protobuf.MapField< java.lang.String, com.google.protobuf.Any> typedExtensionProtocolOptions_; private com.google.protobuf.MapField internalGetTypedExtensionProtocolOptions() { if (typedExtensionProtocolOptions_ == null) { return com.google.protobuf.MapField.emptyMapField( TypedExtensionProtocolOptionsDefaultEntryHolder.defaultEntry); } return typedExtensionProtocolOptions_; } public int getTypedExtensionProtocolOptionsCount() { return internalGetTypedExtensionProtocolOptions().getMap().size(); } /** *
   * The extension_protocol_options field is used to provide extension-specific protocol options
   * for upstream connections. The key should match the extension filter name, such as
   * "envoy.filters.network.thrift_proxy". See the extension's documentation for details on
   * specific options.
   * [#next-major-version: make this a list of typed extensions.]
   * 
* * map<string, .google.protobuf.Any> typed_extension_protocol_options = 36; */ @java.lang.Override public boolean containsTypedExtensionProtocolOptions( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetTypedExtensionProtocolOptions().getMap().containsKey(key); } /** * Use {@link #getTypedExtensionProtocolOptionsMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getTypedExtensionProtocolOptions() { return getTypedExtensionProtocolOptionsMap(); } /** *
   * The extension_protocol_options field is used to provide extension-specific protocol options
   * for upstream connections. The key should match the extension filter name, such as
   * "envoy.filters.network.thrift_proxy". See the extension's documentation for details on
   * specific options.
   * [#next-major-version: make this a list of typed extensions.]
   * 
* * map<string, .google.protobuf.Any> typed_extension_protocol_options = 36; */ @java.lang.Override public java.util.Map getTypedExtensionProtocolOptionsMap() { return internalGetTypedExtensionProtocolOptions().getMap(); } /** *
   * The extension_protocol_options field is used to provide extension-specific protocol options
   * for upstream connections. The key should match the extension filter name, such as
   * "envoy.filters.network.thrift_proxy". See the extension's documentation for details on
   * specific options.
   * [#next-major-version: make this a list of typed extensions.]
   * 
* * map<string, .google.protobuf.Any> typed_extension_protocol_options = 36; */ @java.lang.Override public com.google.protobuf.Any getTypedExtensionProtocolOptionsOrDefault( java.lang.String key, com.google.protobuf.Any defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetTypedExtensionProtocolOptions().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** *
   * The extension_protocol_options field is used to provide extension-specific protocol options
   * for upstream connections. The key should match the extension filter name, such as
   * "envoy.filters.network.thrift_proxy". See the extension's documentation for details on
   * specific options.
   * [#next-major-version: make this a list of typed extensions.]
   * 
* * map<string, .google.protobuf.Any> typed_extension_protocol_options = 36; */ @java.lang.Override public com.google.protobuf.Any getTypedExtensionProtocolOptionsOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetTypedExtensionProtocolOptions().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } public static final int DNS_REFRESH_RATE_FIELD_NUMBER = 16; private com.google.protobuf.Duration dnsRefreshRate_; /** *
   * If the DNS refresh rate is specified and the cluster type is either
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
   * this value is used as the cluster’s DNS refresh
   * rate. The value configured must be at least 1ms. If this setting is not specified, the
   * value defaults to 5000ms. For cluster types other than
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
   * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
   * this setting is ignored.
   * 
* * .google.protobuf.Duration dns_refresh_rate = 16 [(.validate.rules) = { ... } * @return Whether the dnsRefreshRate field is set. */ @java.lang.Override public boolean hasDnsRefreshRate() { return dnsRefreshRate_ != null; } /** *
   * If the DNS refresh rate is specified and the cluster type is either
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
   * this value is used as the cluster’s DNS refresh
   * rate. The value configured must be at least 1ms. If this setting is not specified, the
   * value defaults to 5000ms. For cluster types other than
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
   * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
   * this setting is ignored.
   * 
* * .google.protobuf.Duration dns_refresh_rate = 16 [(.validate.rules) = { ... } * @return The dnsRefreshRate. */ @java.lang.Override public com.google.protobuf.Duration getDnsRefreshRate() { return dnsRefreshRate_ == null ? com.google.protobuf.Duration.getDefaultInstance() : dnsRefreshRate_; } /** *
   * If the DNS refresh rate is specified and the cluster type is either
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
   * this value is used as the cluster’s DNS refresh
   * rate. The value configured must be at least 1ms. If this setting is not specified, the
   * value defaults to 5000ms. For cluster types other than
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
   * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
   * this setting is ignored.
   * 
* * .google.protobuf.Duration dns_refresh_rate = 16 [(.validate.rules) = { ... } */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getDnsRefreshRateOrBuilder() { return getDnsRefreshRate(); } public static final int DNS_FAILURE_REFRESH_RATE_FIELD_NUMBER = 44; private io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate dnsFailureRefreshRate_; /** *
   * If the DNS failure refresh rate is specified and the cluster type is either
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
   * this is used as the cluster’s DNS refresh rate when requests are failing. If this setting is
   * not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
   * other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
   * :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
   * ignored.
   * 
* * .envoy.config.cluster.v3.Cluster.RefreshRate dns_failure_refresh_rate = 44; * @return Whether the dnsFailureRefreshRate field is set. */ @java.lang.Override public boolean hasDnsFailureRefreshRate() { return dnsFailureRefreshRate_ != null; } /** *
   * If the DNS failure refresh rate is specified and the cluster type is either
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
   * this is used as the cluster’s DNS refresh rate when requests are failing. If this setting is
   * not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
   * other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
   * :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
   * ignored.
   * 
* * .envoy.config.cluster.v3.Cluster.RefreshRate dns_failure_refresh_rate = 44; * @return The dnsFailureRefreshRate. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate getDnsFailureRefreshRate() { return dnsFailureRefreshRate_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.getDefaultInstance() : dnsFailureRefreshRate_; } /** *
   * If the DNS failure refresh rate is specified and the cluster type is either
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
   * this is used as the cluster’s DNS refresh rate when requests are failing. If this setting is
   * not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
   * other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
   * :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
   * ignored.
   * 
* * .envoy.config.cluster.v3.Cluster.RefreshRate dns_failure_refresh_rate = 44; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRateOrBuilder getDnsFailureRefreshRateOrBuilder() { return getDnsFailureRefreshRate(); } public static final int RESPECT_DNS_TTL_FIELD_NUMBER = 39; private boolean respectDnsTtl_; /** *
   * Optional configuration for setting cluster's DNS refresh rate. If the value is set to true,
   * cluster's DNS refresh rate will be set to resource record's TTL which comes from DNS
   * resolution.
   * 
* * bool respect_dns_ttl = 39; * @return The respectDnsTtl. */ @java.lang.Override public boolean getRespectDnsTtl() { return respectDnsTtl_; } public static final int DNS_LOOKUP_FAMILY_FIELD_NUMBER = 17; private int dnsLookupFamily_; /** *
   * The DNS IP address resolution policy. If this setting is not specified, the
   * value defaults to
   * :ref:`AUTO<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DnsLookupFamily.AUTO>`.
   * 
* * .envoy.config.cluster.v3.Cluster.DnsLookupFamily dns_lookup_family = 17 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for dnsLookupFamily. */ @java.lang.Override public int getDnsLookupFamilyValue() { return dnsLookupFamily_; } /** *
   * The DNS IP address resolution policy. If this setting is not specified, the
   * value defaults to
   * :ref:`AUTO<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DnsLookupFamily.AUTO>`.
   * 
* * .envoy.config.cluster.v3.Cluster.DnsLookupFamily dns_lookup_family = 17 [(.validate.rules) = { ... } * @return The dnsLookupFamily. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.DnsLookupFamily getDnsLookupFamily() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.DnsLookupFamily result = io.envoyproxy.envoy.config.cluster.v3.Cluster.DnsLookupFamily.valueOf(dnsLookupFamily_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.DnsLookupFamily.UNRECOGNIZED : result; } public static final int DNS_RESOLVERS_FIELD_NUMBER = 18; private java.util.List dnsResolvers_; /** *
   * If DNS resolvers are specified and the cluster type is either
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
   * this value is used to specify the cluster’s dns resolvers.
   * If this setting is not specified, the value defaults to the default
   * resolver, which uses /etc/resolv.conf for configuration. For cluster types
   * other than
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
   * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
   * this setting is ignored.
   * This field is deprecated in favor of ``dns_resolution_config``
   * which aggregates all of the DNS resolver configuration in a single message.
   * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public java.util.List getDnsResolversList() { return dnsResolvers_; } /** *
   * If DNS resolvers are specified and the cluster type is either
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
   * this value is used to specify the cluster’s dns resolvers.
   * If this setting is not specified, the value defaults to the default
   * resolver, which uses /etc/resolv.conf for configuration. For cluster types
   * other than
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
   * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
   * this setting is ignored.
   * This field is deprecated in favor of ``dns_resolution_config``
   * which aggregates all of the DNS resolver configuration in a single message.
   * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public java.util.List getDnsResolversOrBuilderList() { return dnsResolvers_; } /** *
   * If DNS resolvers are specified and the cluster type is either
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
   * this value is used to specify the cluster’s dns resolvers.
   * If this setting is not specified, the value defaults to the default
   * resolver, which uses /etc/resolv.conf for configuration. For cluster types
   * other than
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
   * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
   * this setting is ignored.
   * This field is deprecated in favor of ``dns_resolution_config``
   * which aggregates all of the DNS resolver configuration in a single message.
   * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public int getDnsResolversCount() { return dnsResolvers_.size(); } /** *
   * If DNS resolvers are specified and the cluster type is either
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
   * this value is used to specify the cluster’s dns resolvers.
   * If this setting is not specified, the value defaults to the default
   * resolver, which uses /etc/resolv.conf for configuration. For cluster types
   * other than
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
   * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
   * this setting is ignored.
   * This field is deprecated in favor of ``dns_resolution_config``
   * which aggregates all of the DNS resolver configuration in a single message.
   * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Address getDnsResolvers(int index) { return dnsResolvers_.get(index); } /** *
   * If DNS resolvers are specified and the cluster type is either
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
   * this value is used to specify the cluster’s dns resolvers.
   * If this setting is not specified, the value defaults to the default
   * resolver, which uses /etc/resolv.conf for configuration. For cluster types
   * other than
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
   * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
   * this setting is ignored.
   * This field is deprecated in favor of ``dns_resolution_config``
   * which aggregates all of the DNS resolver configuration in a single message.
   * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.AddressOrBuilder getDnsResolversOrBuilder( int index) { return dnsResolvers_.get(index); } public static final int USE_TCP_FOR_DNS_LOOKUPS_FIELD_NUMBER = 45; private boolean useTcpForDnsLookups_; /** *
   * Always use TCP queries instead of UDP queries for DNS lookups.
   * This field is deprecated in favor of ``dns_resolution_config``
   * which aggregates all of the DNS resolver configuration in a single message.
   * 
* * bool use_tcp_for_dns_lookups = 45 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.use_tcp_for_dns_lookups is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=987 * @return The useTcpForDnsLookups. */ @java.lang.Override @java.lang.Deprecated public boolean getUseTcpForDnsLookups() { return useTcpForDnsLookups_; } public static final int DNS_RESOLUTION_CONFIG_FIELD_NUMBER = 53; private io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig dnsResolutionConfig_; /** *
   * DNS resolution configuration which includes the underlying dns resolver addresses and options.
   * This field is deprecated in favor of
   * :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
   * 
* * .envoy.config.core.v3.DnsResolutionConfig dns_resolution_config = 53 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.dns_resolution_config is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=993 * @return Whether the dnsResolutionConfig field is set. */ @java.lang.Override @java.lang.Deprecated public boolean hasDnsResolutionConfig() { return dnsResolutionConfig_ != null; } /** *
   * DNS resolution configuration which includes the underlying dns resolver addresses and options.
   * This field is deprecated in favor of
   * :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
   * 
* * .envoy.config.core.v3.DnsResolutionConfig dns_resolution_config = 53 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.dns_resolution_config is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=993 * @return The dnsResolutionConfig. */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig getDnsResolutionConfig() { return dnsResolutionConfig_ == null ? io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig.getDefaultInstance() : dnsResolutionConfig_; } /** *
   * DNS resolution configuration which includes the underlying dns resolver addresses and options.
   * This field is deprecated in favor of
   * :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
   * 
* * .envoy.config.core.v3.DnsResolutionConfig dns_resolution_config = 53 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.DnsResolutionConfigOrBuilder getDnsResolutionConfigOrBuilder() { return getDnsResolutionConfig(); } public static final int TYPED_DNS_RESOLVER_CONFIG_FIELD_NUMBER = 55; private io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig typedDnsResolverConfig_; /** *
   * DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
   * or any other DNS resolver types and the related parameters.
   * For example, an object of
   * :ref:`CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
   * can be packed into this ``typed_dns_resolver_config``. This configuration replaces the
   * :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
   * configuration.
   * During the transition period when both ``dns_resolution_config`` and ``typed_dns_resolver_config`` exists,
   * when ``typed_dns_resolver_config`` is in place, Envoy will use it and ignore ``dns_resolution_config``.
   * When ``typed_dns_resolver_config`` is missing, the default behavior is in place.
   * [#extension-category: envoy.network.dns_resolver]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig typed_dns_resolver_config = 55; * @return Whether the typedDnsResolverConfig field is set. */ @java.lang.Override public boolean hasTypedDnsResolverConfig() { return typedDnsResolverConfig_ != null; } /** *
   * DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
   * or any other DNS resolver types and the related parameters.
   * For example, an object of
   * :ref:`CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
   * can be packed into this ``typed_dns_resolver_config``. This configuration replaces the
   * :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
   * configuration.
   * During the transition period when both ``dns_resolution_config`` and ``typed_dns_resolver_config`` exists,
   * when ``typed_dns_resolver_config`` is in place, Envoy will use it and ignore ``dns_resolution_config``.
   * When ``typed_dns_resolver_config`` is missing, the default behavior is in place.
   * [#extension-category: envoy.network.dns_resolver]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig typed_dns_resolver_config = 55; * @return The typedDnsResolverConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig getTypedDnsResolverConfig() { return typedDnsResolverConfig_ == null ? io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance() : typedDnsResolverConfig_; } /** *
   * DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
   * or any other DNS resolver types and the related parameters.
   * For example, an object of
   * :ref:`CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
   * can be packed into this ``typed_dns_resolver_config``. This configuration replaces the
   * :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
   * configuration.
   * During the transition period when both ``dns_resolution_config`` and ``typed_dns_resolver_config`` exists,
   * when ``typed_dns_resolver_config`` is in place, Envoy will use it and ignore ``dns_resolution_config``.
   * When ``typed_dns_resolver_config`` is missing, the default behavior is in place.
   * [#extension-category: envoy.network.dns_resolver]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig typed_dns_resolver_config = 55; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder getTypedDnsResolverConfigOrBuilder() { return getTypedDnsResolverConfig(); } public static final int WAIT_FOR_WARM_ON_INIT_FIELD_NUMBER = 54; private com.google.protobuf.BoolValue waitForWarmOnInit_; /** *
   * Optional configuration for having cluster readiness block on warm-up. Currently, only applicable for
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`.
   * If true, cluster readiness blocks on warm-up. If false, the cluster will complete
   * initialization whether or not warm-up has completed. Defaults to true.
   * 
* * .google.protobuf.BoolValue wait_for_warm_on_init = 54; * @return Whether the waitForWarmOnInit field is set. */ @java.lang.Override public boolean hasWaitForWarmOnInit() { return waitForWarmOnInit_ != null; } /** *
   * Optional configuration for having cluster readiness block on warm-up. Currently, only applicable for
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`.
   * If true, cluster readiness blocks on warm-up. If false, the cluster will complete
   * initialization whether or not warm-up has completed. Defaults to true.
   * 
* * .google.protobuf.BoolValue wait_for_warm_on_init = 54; * @return The waitForWarmOnInit. */ @java.lang.Override public com.google.protobuf.BoolValue getWaitForWarmOnInit() { return waitForWarmOnInit_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : waitForWarmOnInit_; } /** *
   * Optional configuration for having cluster readiness block on warm-up. Currently, only applicable for
   * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
   * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`.
   * If true, cluster readiness blocks on warm-up. If false, the cluster will complete
   * initialization whether or not warm-up has completed. Defaults to true.
   * 
* * .google.protobuf.BoolValue wait_for_warm_on_init = 54; */ @java.lang.Override public com.google.protobuf.BoolValueOrBuilder getWaitForWarmOnInitOrBuilder() { return getWaitForWarmOnInit(); } public static final int OUTLIER_DETECTION_FIELD_NUMBER = 19; private io.envoyproxy.envoy.config.cluster.v3.OutlierDetection outlierDetection_; /** *
   * If specified, outlier detection will be enabled for this upstream cluster.
   * Each of the configuration values can be overridden via
   * :ref:`runtime values <config_cluster_manager_cluster_runtime_outlier_detection>`.
   * 
* * .envoy.config.cluster.v3.OutlierDetection outlier_detection = 19; * @return Whether the outlierDetection field is set. */ @java.lang.Override public boolean hasOutlierDetection() { return outlierDetection_ != null; } /** *
   * If specified, outlier detection will be enabled for this upstream cluster.
   * Each of the configuration values can be overridden via
   * :ref:`runtime values <config_cluster_manager_cluster_runtime_outlier_detection>`.
   * 
* * .envoy.config.cluster.v3.OutlierDetection outlier_detection = 19; * @return The outlierDetection. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.OutlierDetection getOutlierDetection() { return outlierDetection_ == null ? io.envoyproxy.envoy.config.cluster.v3.OutlierDetection.getDefaultInstance() : outlierDetection_; } /** *
   * If specified, outlier detection will be enabled for this upstream cluster.
   * Each of the configuration values can be overridden via
   * :ref:`runtime values <config_cluster_manager_cluster_runtime_outlier_detection>`.
   * 
* * .envoy.config.cluster.v3.OutlierDetection outlier_detection = 19; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.OutlierDetectionOrBuilder getOutlierDetectionOrBuilder() { return getOutlierDetection(); } public static final int CLEANUP_INTERVAL_FIELD_NUMBER = 20; private com.google.protobuf.Duration cleanupInterval_; /** *
   * The interval for removing stale hosts from a cluster type
   * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
   * Hosts are considered stale if they have not been used
   * as upstream destinations during this interval. New hosts are added
   * to original destination clusters on demand as new connections are
   * redirected to Envoy, causing the number of hosts in the cluster to
   * grow over time. Hosts that are not stale (they are actively used as
   * destinations) are kept in the cluster, which allows connections to
   * them remain open, saving the latency that would otherwise be spent
   * on opening new connections. If this setting is not specified, the
   * value defaults to 5000ms. For cluster types other than
   * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
   * this setting is ignored.
   * 
* * .google.protobuf.Duration cleanup_interval = 20 [(.validate.rules) = { ... } * @return Whether the cleanupInterval field is set. */ @java.lang.Override public boolean hasCleanupInterval() { return cleanupInterval_ != null; } /** *
   * The interval for removing stale hosts from a cluster type
   * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
   * Hosts are considered stale if they have not been used
   * as upstream destinations during this interval. New hosts are added
   * to original destination clusters on demand as new connections are
   * redirected to Envoy, causing the number of hosts in the cluster to
   * grow over time. Hosts that are not stale (they are actively used as
   * destinations) are kept in the cluster, which allows connections to
   * them remain open, saving the latency that would otherwise be spent
   * on opening new connections. If this setting is not specified, the
   * value defaults to 5000ms. For cluster types other than
   * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
   * this setting is ignored.
   * 
* * .google.protobuf.Duration cleanup_interval = 20 [(.validate.rules) = { ... } * @return The cleanupInterval. */ @java.lang.Override public com.google.protobuf.Duration getCleanupInterval() { return cleanupInterval_ == null ? com.google.protobuf.Duration.getDefaultInstance() : cleanupInterval_; } /** *
   * The interval for removing stale hosts from a cluster type
   * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
   * Hosts are considered stale if they have not been used
   * as upstream destinations during this interval. New hosts are added
   * to original destination clusters on demand as new connections are
   * redirected to Envoy, causing the number of hosts in the cluster to
   * grow over time. Hosts that are not stale (they are actively used as
   * destinations) are kept in the cluster, which allows connections to
   * them remain open, saving the latency that would otherwise be spent
   * on opening new connections. If this setting is not specified, the
   * value defaults to 5000ms. For cluster types other than
   * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
   * this setting is ignored.
   * 
* * .google.protobuf.Duration cleanup_interval = 20 [(.validate.rules) = { ... } */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getCleanupIntervalOrBuilder() { return getCleanupInterval(); } public static final int UPSTREAM_BIND_CONFIG_FIELD_NUMBER = 21; private io.envoyproxy.envoy.config.core.v3.BindConfig upstreamBindConfig_; /** *
   * Optional configuration used to bind newly established upstream connections.
   * This overrides any bind_config specified in the bootstrap proto.
   * If the address and port are empty, no bind will be performed.
   * 
* * .envoy.config.core.v3.BindConfig upstream_bind_config = 21; * @return Whether the upstreamBindConfig field is set. */ @java.lang.Override public boolean hasUpstreamBindConfig() { return upstreamBindConfig_ != null; } /** *
   * Optional configuration used to bind newly established upstream connections.
   * This overrides any bind_config specified in the bootstrap proto.
   * If the address and port are empty, no bind will be performed.
   * 
* * .envoy.config.core.v3.BindConfig upstream_bind_config = 21; * @return The upstreamBindConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.BindConfig getUpstreamBindConfig() { return upstreamBindConfig_ == null ? io.envoyproxy.envoy.config.core.v3.BindConfig.getDefaultInstance() : upstreamBindConfig_; } /** *
   * Optional configuration used to bind newly established upstream connections.
   * This overrides any bind_config specified in the bootstrap proto.
   * If the address and port are empty, no bind will be performed.
   * 
* * .envoy.config.core.v3.BindConfig upstream_bind_config = 21; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.BindConfigOrBuilder getUpstreamBindConfigOrBuilder() { return getUpstreamBindConfig(); } public static final int LB_SUBSET_CONFIG_FIELD_NUMBER = 22; private io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig lbSubsetConfig_; /** *
   * Configuration for load balancing subsetting.
   * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig lb_subset_config = 22; * @return Whether the lbSubsetConfig field is set. */ @java.lang.Override public boolean hasLbSubsetConfig() { return lbSubsetConfig_ != null; } /** *
   * Configuration for load balancing subsetting.
   * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig lb_subset_config = 22; * @return The lbSubsetConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig getLbSubsetConfig() { return lbSubsetConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.getDefaultInstance() : lbSubsetConfig_; } /** *
   * Configuration for load balancing subsetting.
   * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig lb_subset_config = 22; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfigOrBuilder getLbSubsetConfigOrBuilder() { return getLbSubsetConfig(); } public static final int RING_HASH_LB_CONFIG_FIELD_NUMBER = 23; /** *
   * Optional configuration for the Ring Hash load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig ring_hash_lb_config = 23; * @return Whether the ringHashLbConfig field is set. */ @java.lang.Override public boolean hasRingHashLbConfig() { return lbConfigCase_ == 23; } /** *
   * Optional configuration for the Ring Hash load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig ring_hash_lb_config = 23; * @return The ringHashLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig getRingHashLbConfig() { if (lbConfigCase_ == 23) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.getDefaultInstance(); } /** *
   * Optional configuration for the Ring Hash load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig ring_hash_lb_config = 23; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfigOrBuilder getRingHashLbConfigOrBuilder() { if (lbConfigCase_ == 23) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.getDefaultInstance(); } public static final int MAGLEV_LB_CONFIG_FIELD_NUMBER = 52; /** *
   * Optional configuration for the Maglev load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.MaglevLbConfig maglev_lb_config = 52; * @return Whether the maglevLbConfig field is set. */ @java.lang.Override public boolean hasMaglevLbConfig() { return lbConfigCase_ == 52; } /** *
   * Optional configuration for the Maglev load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.MaglevLbConfig maglev_lb_config = 52; * @return The maglevLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig getMaglevLbConfig() { if (lbConfigCase_ == 52) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.getDefaultInstance(); } /** *
   * Optional configuration for the Maglev load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.MaglevLbConfig maglev_lb_config = 52; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfigOrBuilder getMaglevLbConfigOrBuilder() { if (lbConfigCase_ == 52) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.getDefaultInstance(); } public static final int ORIGINAL_DST_LB_CONFIG_FIELD_NUMBER = 34; /** *
   * Optional configuration for the Original Destination load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.OriginalDstLbConfig original_dst_lb_config = 34; * @return Whether the originalDstLbConfig field is set. */ @java.lang.Override public boolean hasOriginalDstLbConfig() { return lbConfigCase_ == 34; } /** *
   * Optional configuration for the Original Destination load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.OriginalDstLbConfig original_dst_lb_config = 34; * @return The originalDstLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig getOriginalDstLbConfig() { if (lbConfigCase_ == 34) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.getDefaultInstance(); } /** *
   * Optional configuration for the Original Destination load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.OriginalDstLbConfig original_dst_lb_config = 34; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfigOrBuilder getOriginalDstLbConfigOrBuilder() { if (lbConfigCase_ == 34) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.getDefaultInstance(); } public static final int LEAST_REQUEST_LB_CONFIG_FIELD_NUMBER = 37; /** *
   * Optional configuration for the LeastRequest load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.LeastRequestLbConfig least_request_lb_config = 37; * @return Whether the leastRequestLbConfig field is set. */ @java.lang.Override public boolean hasLeastRequestLbConfig() { return lbConfigCase_ == 37; } /** *
   * Optional configuration for the LeastRequest load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.LeastRequestLbConfig least_request_lb_config = 37; * @return The leastRequestLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig getLeastRequestLbConfig() { if (lbConfigCase_ == 37) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.getDefaultInstance(); } /** *
   * Optional configuration for the LeastRequest load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.LeastRequestLbConfig least_request_lb_config = 37; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfigOrBuilder getLeastRequestLbConfigOrBuilder() { if (lbConfigCase_ == 37) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.getDefaultInstance(); } public static final int ROUND_ROBIN_LB_CONFIG_FIELD_NUMBER = 56; /** *
   * Optional configuration for the RoundRobin load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.RoundRobinLbConfig round_robin_lb_config = 56; * @return Whether the roundRobinLbConfig field is set. */ @java.lang.Override public boolean hasRoundRobinLbConfig() { return lbConfigCase_ == 56; } /** *
   * Optional configuration for the RoundRobin load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.RoundRobinLbConfig round_robin_lb_config = 56; * @return The roundRobinLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig getRoundRobinLbConfig() { if (lbConfigCase_ == 56) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.getDefaultInstance(); } /** *
   * Optional configuration for the RoundRobin load balancing policy.
   * 
* * .envoy.config.cluster.v3.Cluster.RoundRobinLbConfig round_robin_lb_config = 56; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfigOrBuilder getRoundRobinLbConfigOrBuilder() { if (lbConfigCase_ == 56) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.getDefaultInstance(); } public static final int COMMON_LB_CONFIG_FIELD_NUMBER = 27; private io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig commonLbConfig_; /** *
   * Common configuration for all load balancer implementations.
   * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig common_lb_config = 27; * @return Whether the commonLbConfig field is set. */ @java.lang.Override public boolean hasCommonLbConfig() { return commonLbConfig_ != null; } /** *
   * Common configuration for all load balancer implementations.
   * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig common_lb_config = 27; * @return The commonLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig getCommonLbConfig() { return commonLbConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.getDefaultInstance() : commonLbConfig_; } /** *
   * Common configuration for all load balancer implementations.
   * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig common_lb_config = 27; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfigOrBuilder getCommonLbConfigOrBuilder() { return getCommonLbConfig(); } public static final int TRANSPORT_SOCKET_FIELD_NUMBER = 24; private io.envoyproxy.envoy.config.core.v3.TransportSocket transportSocket_; /** *
   * Optional custom transport socket implementation to use for upstream connections.
   * To setup TLS, set a transport socket with name ``envoy.transport_sockets.tls`` and
   * :ref:`UpstreamTlsContexts <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the ``typed_config``.
   * If no transport socket configuration is specified, new connections
   * will be set up with plaintext.
   * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 24; * @return Whether the transportSocket field is set. */ @java.lang.Override public boolean hasTransportSocket() { return transportSocket_ != null; } /** *
   * Optional custom transport socket implementation to use for upstream connections.
   * To setup TLS, set a transport socket with name ``envoy.transport_sockets.tls`` and
   * :ref:`UpstreamTlsContexts <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the ``typed_config``.
   * If no transport socket configuration is specified, new connections
   * will be set up with plaintext.
   * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 24; * @return The transportSocket. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TransportSocket getTransportSocket() { return transportSocket_ == null ? io.envoyproxy.envoy.config.core.v3.TransportSocket.getDefaultInstance() : transportSocket_; } /** *
   * Optional custom transport socket implementation to use for upstream connections.
   * To setup TLS, set a transport socket with name ``envoy.transport_sockets.tls`` and
   * :ref:`UpstreamTlsContexts <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the ``typed_config``.
   * If no transport socket configuration is specified, new connections
   * will be set up with plaintext.
   * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 24; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TransportSocketOrBuilder getTransportSocketOrBuilder() { return getTransportSocket(); } public static final int METADATA_FIELD_NUMBER = 25; private io.envoyproxy.envoy.config.core.v3.Metadata metadata_; /** *
   * The Metadata field can be used to provide additional information about the
   * cluster. It can be used for stats, logging, and varying filter behavior.
   * Fields should use reverse DNS notation to denote which entity within Envoy
   * will need the information. For instance, if the metadata is intended for
   * the Router filter, the filter name should be specified as ``envoy.filters.http.router``.
   * 
* * .envoy.config.core.v3.Metadata metadata = 25; * @return Whether the metadata field is set. */ @java.lang.Override public boolean hasMetadata() { return metadata_ != null; } /** *
   * The Metadata field can be used to provide additional information about the
   * cluster. It can be used for stats, logging, and varying filter behavior.
   * Fields should use reverse DNS notation to denote which entity within Envoy
   * will need the information. For instance, if the metadata is intended for
   * the Router filter, the filter name should be specified as ``envoy.filters.http.router``.
   * 
* * .envoy.config.core.v3.Metadata metadata = 25; * @return The metadata. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.Metadata getMetadata() { return metadata_ == null ? io.envoyproxy.envoy.config.core.v3.Metadata.getDefaultInstance() : metadata_; } /** *
   * The Metadata field can be used to provide additional information about the
   * cluster. It can be used for stats, logging, and varying filter behavior.
   * Fields should use reverse DNS notation to denote which entity within Envoy
   * will need the information. For instance, if the metadata is intended for
   * the Router filter, the filter name should be specified as ``envoy.filters.http.router``.
   * 
* * .envoy.config.core.v3.Metadata metadata = 25; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.MetadataOrBuilder getMetadataOrBuilder() { return getMetadata(); } public static final int PROTOCOL_SELECTION_FIELD_NUMBER = 26; private int protocolSelection_; /** *
   * Determines how Envoy selects the protocol used to speak to upstream hosts.
   * This has been deprecated in favor of setting explicit protocol selection
   * in the :ref:`http_protocol_options
   * <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
   * http_protocol_options can be set via the cluster's
   * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
   * 
* * .envoy.config.cluster.v3.Cluster.ClusterProtocolSelection protocol_selection = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.protocol_selection is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=1092 * @return The enum numeric value on the wire for protocolSelection. */ @java.lang.Override @java.lang.Deprecated public int getProtocolSelectionValue() { return protocolSelection_; } /** *
   * Determines how Envoy selects the protocol used to speak to upstream hosts.
   * This has been deprecated in favor of setting explicit protocol selection
   * in the :ref:`http_protocol_options
   * <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
   * http_protocol_options can be set via the cluster's
   * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
   * 
* * .envoy.config.cluster.v3.Cluster.ClusterProtocolSelection protocol_selection = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.protocol_selection is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=1092 * @return The protocolSelection. */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.cluster.v3.Cluster.ClusterProtocolSelection getProtocolSelection() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.ClusterProtocolSelection result = io.envoyproxy.envoy.config.cluster.v3.Cluster.ClusterProtocolSelection.valueOf(protocolSelection_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.ClusterProtocolSelection.UNRECOGNIZED : result; } public static final int UPSTREAM_CONNECTION_OPTIONS_FIELD_NUMBER = 30; private io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions upstreamConnectionOptions_; /** *
   * Optional options for upstream connections.
   * 
* * .envoy.config.cluster.v3.UpstreamConnectionOptions upstream_connection_options = 30; * @return Whether the upstreamConnectionOptions field is set. */ @java.lang.Override public boolean hasUpstreamConnectionOptions() { return upstreamConnectionOptions_ != null; } /** *
   * Optional options for upstream connections.
   * 
* * .envoy.config.cluster.v3.UpstreamConnectionOptions upstream_connection_options = 30; * @return The upstreamConnectionOptions. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions getUpstreamConnectionOptions() { return upstreamConnectionOptions_ == null ? io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions.getDefaultInstance() : upstreamConnectionOptions_; } /** *
   * Optional options for upstream connections.
   * 
* * .envoy.config.cluster.v3.UpstreamConnectionOptions upstream_connection_options = 30; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptionsOrBuilder getUpstreamConnectionOptionsOrBuilder() { return getUpstreamConnectionOptions(); } public static final int CLOSE_CONNECTIONS_ON_HOST_HEALTH_FAILURE_FIELD_NUMBER = 31; private boolean closeConnectionsOnHostHealthFailure_; /** *
   * If an upstream host becomes unhealthy (as determined by the configured health checks
   * or outlier detection), immediately close all connections to the failed host.
   * .. note::
   *   This is currently only supported for connections created by tcp_proxy.
   * .. note::
   *   The current implementation of this feature closes all connections immediately when
   *   the unhealthy status is detected. If there are a large number of connections open
   *   to an upstream host that becomes unhealthy, Envoy may spend a substantial amount of
   *   time exclusively closing these connections, and not processing any other traffic.
   * 
* * bool close_connections_on_host_health_failure = 31; * @return The closeConnectionsOnHostHealthFailure. */ @java.lang.Override public boolean getCloseConnectionsOnHostHealthFailure() { return closeConnectionsOnHostHealthFailure_; } public static final int IGNORE_HEALTH_ON_HOST_REMOVAL_FIELD_NUMBER = 32; private boolean ignoreHealthOnHostRemoval_; /** *
   * If set to true, Envoy will ignore the health value of a host when processing its removal
   * from service discovery. This means that if active health checking is used, Envoy will *not*
   * wait for the endpoint to go unhealthy before removing it.
   * 
* * bool ignore_health_on_host_removal = 32; * @return The ignoreHealthOnHostRemoval. */ @java.lang.Override public boolean getIgnoreHealthOnHostRemoval() { return ignoreHealthOnHostRemoval_; } public static final int FILTERS_FIELD_NUMBER = 40; private java.util.List filters_; /** *
   * An (optional) network filter chain, listed in the order the filters should be applied.
   * The chain will be applied to all outgoing connections that Envoy makes to the upstream
   * servers of this cluster.
   * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ @java.lang.Override public java.util.List getFiltersList() { return filters_; } /** *
   * An (optional) network filter chain, listed in the order the filters should be applied.
   * The chain will be applied to all outgoing connections that Envoy makes to the upstream
   * servers of this cluster.
   * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ @java.lang.Override public java.util.List getFiltersOrBuilderList() { return filters_; } /** *
   * An (optional) network filter chain, listed in the order the filters should be applied.
   * The chain will be applied to all outgoing connections that Envoy makes to the upstream
   * servers of this cluster.
   * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ @java.lang.Override public int getFiltersCount() { return filters_.size(); } /** *
   * An (optional) network filter chain, listed in the order the filters should be applied.
   * The chain will be applied to all outgoing connections that Envoy makes to the upstream
   * servers of this cluster.
   * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Filter getFilters(int index) { return filters_.get(index); } /** *
   * An (optional) network filter chain, listed in the order the filters should be applied.
   * The chain will be applied to all outgoing connections that Envoy makes to the upstream
   * servers of this cluster.
   * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.FilterOrBuilder getFiltersOrBuilder( int index) { return filters_.get(index); } public static final int LOAD_BALANCING_POLICY_FIELD_NUMBER = 41; private io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy loadBalancingPolicy_; /** *
   * If this field is set and is supported by the client, it will supersede the value of
   * :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
   * 
* * .envoy.config.cluster.v3.LoadBalancingPolicy load_balancing_policy = 41; * @return Whether the loadBalancingPolicy field is set. */ @java.lang.Override public boolean hasLoadBalancingPolicy() { return loadBalancingPolicy_ != null; } /** *
   * If this field is set and is supported by the client, it will supersede the value of
   * :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
   * 
* * .envoy.config.cluster.v3.LoadBalancingPolicy load_balancing_policy = 41; * @return The loadBalancingPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy getLoadBalancingPolicy() { return loadBalancingPolicy_ == null ? io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy.getDefaultInstance() : loadBalancingPolicy_; } /** *
   * If this field is set and is supported by the client, it will supersede the value of
   * :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
   * 
* * .envoy.config.cluster.v3.LoadBalancingPolicy load_balancing_policy = 41; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicyOrBuilder getLoadBalancingPolicyOrBuilder() { return getLoadBalancingPolicy(); } public static final int LRS_SERVER_FIELD_NUMBER = 42; private io.envoyproxy.envoy.config.core.v3.ConfigSource lrsServer_; /** *
   * [#not-implemented-hide:]
   * If present, tells the client where to send load reports via LRS. If not present, the
   * client will fall back to a client-side default, which may be either (a) don't send any
   * load reports or (b) send load reports for all clusters to a single default server
   * (which may be configured in the bootstrap file).
   * Note that if multiple clusters point to the same LRS server, the client may choose to
   * create a separate stream for each cluster or it may choose to coalesce the data for
   * multiple clusters onto a single stream. Either way, the client must make sure to send
   * the data for any given cluster on no more than one stream.
   * [#next-major-version: In the v3 API, we should consider restructuring this somehow,
   * maybe by allowing LRS to go on the ADS stream, or maybe by moving some of the negotiation
   * from the LRS stream here.]
   * 
* * .envoy.config.core.v3.ConfigSource lrs_server = 42; * @return Whether the lrsServer field is set. */ @java.lang.Override public boolean hasLrsServer() { return lrsServer_ != null; } /** *
   * [#not-implemented-hide:]
   * If present, tells the client where to send load reports via LRS. If not present, the
   * client will fall back to a client-side default, which may be either (a) don't send any
   * load reports or (b) send load reports for all clusters to a single default server
   * (which may be configured in the bootstrap file).
   * Note that if multiple clusters point to the same LRS server, the client may choose to
   * create a separate stream for each cluster or it may choose to coalesce the data for
   * multiple clusters onto a single stream. Either way, the client must make sure to send
   * the data for any given cluster on no more than one stream.
   * [#next-major-version: In the v3 API, we should consider restructuring this somehow,
   * maybe by allowing LRS to go on the ADS stream, or maybe by moving some of the negotiation
   * from the LRS stream here.]
   * 
* * .envoy.config.core.v3.ConfigSource lrs_server = 42; * @return The lrsServer. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.ConfigSource getLrsServer() { return lrsServer_ == null ? io.envoyproxy.envoy.config.core.v3.ConfigSource.getDefaultInstance() : lrsServer_; } /** *
   * [#not-implemented-hide:]
   * If present, tells the client where to send load reports via LRS. If not present, the
   * client will fall back to a client-side default, which may be either (a) don't send any
   * load reports or (b) send load reports for all clusters to a single default server
   * (which may be configured in the bootstrap file).
   * Note that if multiple clusters point to the same LRS server, the client may choose to
   * create a separate stream for each cluster or it may choose to coalesce the data for
   * multiple clusters onto a single stream. Either way, the client must make sure to send
   * the data for any given cluster on no more than one stream.
   * [#next-major-version: In the v3 API, we should consider restructuring this somehow,
   * maybe by allowing LRS to go on the ADS stream, or maybe by moving some of the negotiation
   * from the LRS stream here.]
   * 
* * .envoy.config.core.v3.ConfigSource lrs_server = 42; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.ConfigSourceOrBuilder getLrsServerOrBuilder() { return getLrsServer(); } public static final int TRACK_TIMEOUT_BUDGETS_FIELD_NUMBER = 47; private boolean trackTimeoutBudgets_; /** *
   * If track_timeout_budgets is true, the :ref:`timeout budget histograms
   * <config_cluster_manager_cluster_stats_timeout_budgets>` will be published for each
   * request. These show what percentage of a request's per try and global timeout was used. A value
   * of 0 would indicate that none of the timeout was used or that the timeout was infinite. A value
   * of 100 would indicate that the request took the entirety of the timeout given to it.
   * .. attention::
   *   This field has been deprecated in favor of ``timeout_budgets``, part of
   *   :ref:`track_cluster_stats <envoy_v3_api_field_config.cluster.v3.Cluster.track_cluster_stats>`.
   * 
* * bool track_timeout_budgets = 47 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.track_timeout_budgets is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=1153 * @return The trackTimeoutBudgets. */ @java.lang.Override @java.lang.Deprecated public boolean getTrackTimeoutBudgets() { return trackTimeoutBudgets_; } public static final int UPSTREAM_CONFIG_FIELD_NUMBER = 48; private io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig upstreamConfig_; /** *
   * Optional customization and configuration of upstream connection pool, and upstream type.
   * Currently this field only applies for HTTP traffic but is designed for eventual use for custom
   * TCP upstreams.
   * For HTTP traffic, Envoy will generally take downstream HTTP and send it upstream as upstream
   * HTTP, using the http connection pool and the codec from ``http2_protocol_options``
   * For routes where CONNECT termination is configured, Envoy will take downstream CONNECT
   * requests and forward the CONNECT payload upstream over raw TCP using the tcp connection pool.
   * The default pool used is the generic connection pool which creates the HTTP upstream for most
   * HTTP requests, and the TCP upstream if CONNECT termination is configured.
   * If users desire custom connection pool or upstream behavior, for example terminating
   * CONNECT only if a custom filter indicates it is appropriate, the custom factories
   * can be registered and configured here.
   * [#extension-category: envoy.upstreams]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig upstream_config = 48; * @return Whether the upstreamConfig field is set. */ @java.lang.Override public boolean hasUpstreamConfig() { return upstreamConfig_ != null; } /** *
   * Optional customization and configuration of upstream connection pool, and upstream type.
   * Currently this field only applies for HTTP traffic but is designed for eventual use for custom
   * TCP upstreams.
   * For HTTP traffic, Envoy will generally take downstream HTTP and send it upstream as upstream
   * HTTP, using the http connection pool and the codec from ``http2_protocol_options``
   * For routes where CONNECT termination is configured, Envoy will take downstream CONNECT
   * requests and forward the CONNECT payload upstream over raw TCP using the tcp connection pool.
   * The default pool used is the generic connection pool which creates the HTTP upstream for most
   * HTTP requests, and the TCP upstream if CONNECT termination is configured.
   * If users desire custom connection pool or upstream behavior, for example terminating
   * CONNECT only if a custom filter indicates it is appropriate, the custom factories
   * can be registered and configured here.
   * [#extension-category: envoy.upstreams]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig upstream_config = 48; * @return The upstreamConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig getUpstreamConfig() { return upstreamConfig_ == null ? io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance() : upstreamConfig_; } /** *
   * Optional customization and configuration of upstream connection pool, and upstream type.
   * Currently this field only applies for HTTP traffic but is designed for eventual use for custom
   * TCP upstreams.
   * For HTTP traffic, Envoy will generally take downstream HTTP and send it upstream as upstream
   * HTTP, using the http connection pool and the codec from ``http2_protocol_options``
   * For routes where CONNECT termination is configured, Envoy will take downstream CONNECT
   * requests and forward the CONNECT payload upstream over raw TCP using the tcp connection pool.
   * The default pool used is the generic connection pool which creates the HTTP upstream for most
   * HTTP requests, and the TCP upstream if CONNECT termination is configured.
   * If users desire custom connection pool or upstream behavior, for example terminating
   * CONNECT only if a custom filter indicates it is appropriate, the custom factories
   * can be registered and configured here.
   * [#extension-category: envoy.upstreams]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig upstream_config = 48; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder getUpstreamConfigOrBuilder() { return getUpstreamConfig(); } public static final int TRACK_CLUSTER_STATS_FIELD_NUMBER = 49; private io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats trackClusterStats_; /** *
   * Configuration to track optional cluster stats.
   * 
* * .envoy.config.cluster.v3.TrackClusterStats track_cluster_stats = 49; * @return Whether the trackClusterStats field is set. */ @java.lang.Override public boolean hasTrackClusterStats() { return trackClusterStats_ != null; } /** *
   * Configuration to track optional cluster stats.
   * 
* * .envoy.config.cluster.v3.TrackClusterStats track_cluster_stats = 49; * @return The trackClusterStats. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats getTrackClusterStats() { return trackClusterStats_ == null ? io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats.getDefaultInstance() : trackClusterStats_; } /** *
   * Configuration to track optional cluster stats.
   * 
* * .envoy.config.cluster.v3.TrackClusterStats track_cluster_stats = 49; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.TrackClusterStatsOrBuilder getTrackClusterStatsOrBuilder() { return getTrackClusterStats(); } public static final int PRECONNECT_POLICY_FIELD_NUMBER = 50; private io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy preconnectPolicy_; /** *
   * Preconnect configuration for this cluster.
   * 
* * .envoy.config.cluster.v3.Cluster.PreconnectPolicy preconnect_policy = 50; * @return Whether the preconnectPolicy field is set. */ @java.lang.Override public boolean hasPreconnectPolicy() { return preconnectPolicy_ != null; } /** *
   * Preconnect configuration for this cluster.
   * 
* * .envoy.config.cluster.v3.Cluster.PreconnectPolicy preconnect_policy = 50; * @return The preconnectPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy getPreconnectPolicy() { return preconnectPolicy_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.getDefaultInstance() : preconnectPolicy_; } /** *
   * Preconnect configuration for this cluster.
   * 
* * .envoy.config.cluster.v3.Cluster.PreconnectPolicy preconnect_policy = 50; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicyOrBuilder getPreconnectPolicyOrBuilder() { return getPreconnectPolicy(); } public static final int CONNECTION_POOL_PER_DOWNSTREAM_CONNECTION_FIELD_NUMBER = 51; private boolean connectionPoolPerDownstreamConnection_; /** *
   * If ``connection_pool_per_downstream_connection`` is true, the cluster will use a separate
   * connection pool for every downstream connection
   * 
* * bool connection_pool_per_downstream_connection = 51; * @return The connectionPoolPerDownstreamConnection. */ @java.lang.Override public boolean getConnectionPoolPerDownstreamConnection() { return connectionPoolPerDownstreamConnection_; } 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 (clusterDiscoveryTypeCase_ == 2) { output.writeEnum(2, ((java.lang.Integer) clusterDiscoveryType_)); } if (edsClusterConfig_ != null) { output.writeMessage(3, getEdsClusterConfig()); } if (connectTimeout_ != null) { output.writeMessage(4, getConnectTimeout()); } if (perConnectionBufferLimitBytes_ != null) { output.writeMessage(5, getPerConnectionBufferLimitBytes()); } if (lbPolicy_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.LbPolicy.ROUND_ROBIN.getNumber()) { output.writeEnum(6, lbPolicy_); } for (int i = 0; i < healthChecks_.size(); i++) { output.writeMessage(8, healthChecks_.get(i)); } if (maxRequestsPerConnection_ != null) { output.writeMessage(9, getMaxRequestsPerConnection()); } if (circuitBreakers_ != null) { output.writeMessage(10, getCircuitBreakers()); } if (httpProtocolOptions_ != null) { output.writeMessage(13, getHttpProtocolOptions()); } if (http2ProtocolOptions_ != null) { output.writeMessage(14, getHttp2ProtocolOptions()); } if (dnsRefreshRate_ != null) { output.writeMessage(16, getDnsRefreshRate()); } if (dnsLookupFamily_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.DnsLookupFamily.AUTO.getNumber()) { output.writeEnum(17, dnsLookupFamily_); } for (int i = 0; i < dnsResolvers_.size(); i++) { output.writeMessage(18, dnsResolvers_.get(i)); } if (outlierDetection_ != null) { output.writeMessage(19, getOutlierDetection()); } if (cleanupInterval_ != null) { output.writeMessage(20, getCleanupInterval()); } if (upstreamBindConfig_ != null) { output.writeMessage(21, getUpstreamBindConfig()); } if (lbSubsetConfig_ != null) { output.writeMessage(22, getLbSubsetConfig()); } if (lbConfigCase_ == 23) { output.writeMessage(23, (io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig) lbConfig_); } if (transportSocket_ != null) { output.writeMessage(24, getTransportSocket()); } if (metadata_ != null) { output.writeMessage(25, getMetadata()); } if (protocolSelection_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.ClusterProtocolSelection.USE_CONFIGURED_PROTOCOL.getNumber()) { output.writeEnum(26, protocolSelection_); } if (commonLbConfig_ != null) { output.writeMessage(27, getCommonLbConfig()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(altStatName_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 28, altStatName_); } if (commonHttpProtocolOptions_ != null) { output.writeMessage(29, getCommonHttpProtocolOptions()); } if (upstreamConnectionOptions_ != null) { output.writeMessage(30, getUpstreamConnectionOptions()); } if (closeConnectionsOnHostHealthFailure_ != false) { output.writeBool(31, closeConnectionsOnHostHealthFailure_); } if (ignoreHealthOnHostRemoval_ != false) { output.writeBool(32, ignoreHealthOnHostRemoval_); } if (loadAssignment_ != null) { output.writeMessage(33, getLoadAssignment()); } if (lbConfigCase_ == 34) { output.writeMessage(34, (io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) lbConfig_); } com.google.protobuf.GeneratedMessageV3 .serializeStringMapTo( output, internalGetTypedExtensionProtocolOptions(), TypedExtensionProtocolOptionsDefaultEntryHolder.defaultEntry, 36); if (lbConfigCase_ == 37) { output.writeMessage(37, (io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) lbConfig_); } if (clusterDiscoveryTypeCase_ == 38) { output.writeMessage(38, (io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType) clusterDiscoveryType_); } if (respectDnsTtl_ != false) { output.writeBool(39, respectDnsTtl_); } for (int i = 0; i < filters_.size(); i++) { output.writeMessage(40, filters_.get(i)); } if (loadBalancingPolicy_ != null) { output.writeMessage(41, getLoadBalancingPolicy()); } if (lrsServer_ != null) { output.writeMessage(42, getLrsServer()); } for (int i = 0; i < transportSocketMatches_.size(); i++) { output.writeMessage(43, transportSocketMatches_.get(i)); } if (dnsFailureRefreshRate_ != null) { output.writeMessage(44, getDnsFailureRefreshRate()); } if (useTcpForDnsLookups_ != false) { output.writeBool(45, useTcpForDnsLookups_); } if (upstreamHttpProtocolOptions_ != null) { output.writeMessage(46, getUpstreamHttpProtocolOptions()); } if (trackTimeoutBudgets_ != false) { output.writeBool(47, trackTimeoutBudgets_); } if (upstreamConfig_ != null) { output.writeMessage(48, getUpstreamConfig()); } if (trackClusterStats_ != null) { output.writeMessage(49, getTrackClusterStats()); } if (preconnectPolicy_ != null) { output.writeMessage(50, getPreconnectPolicy()); } if (connectionPoolPerDownstreamConnection_ != false) { output.writeBool(51, connectionPoolPerDownstreamConnection_); } if (lbConfigCase_ == 52) { output.writeMessage(52, (io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig) lbConfig_); } if (dnsResolutionConfig_ != null) { output.writeMessage(53, getDnsResolutionConfig()); } if (waitForWarmOnInit_ != null) { output.writeMessage(54, getWaitForWarmOnInit()); } if (typedDnsResolverConfig_ != null) { output.writeMessage(55, getTypedDnsResolverConfig()); } if (lbConfigCase_ == 56) { output.writeMessage(56, (io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) lbConfig_); } 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 (clusterDiscoveryTypeCase_ == 2) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(2, ((java.lang.Integer) clusterDiscoveryType_)); } if (edsClusterConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, getEdsClusterConfig()); } if (connectTimeout_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getConnectTimeout()); } if (perConnectionBufferLimitBytes_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(5, getPerConnectionBufferLimitBytes()); } if (lbPolicy_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.LbPolicy.ROUND_ROBIN.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(6, lbPolicy_); } for (int i = 0; i < healthChecks_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(8, healthChecks_.get(i)); } if (maxRequestsPerConnection_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(9, getMaxRequestsPerConnection()); } if (circuitBreakers_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(10, getCircuitBreakers()); } if (httpProtocolOptions_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(13, getHttpProtocolOptions()); } if (http2ProtocolOptions_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(14, getHttp2ProtocolOptions()); } if (dnsRefreshRate_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(16, getDnsRefreshRate()); } if (dnsLookupFamily_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.DnsLookupFamily.AUTO.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(17, dnsLookupFamily_); } for (int i = 0; i < dnsResolvers_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(18, dnsResolvers_.get(i)); } if (outlierDetection_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(19, getOutlierDetection()); } if (cleanupInterval_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(20, getCleanupInterval()); } if (upstreamBindConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(21, getUpstreamBindConfig()); } if (lbSubsetConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(22, getLbSubsetConfig()); } if (lbConfigCase_ == 23) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(23, (io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig) lbConfig_); } if (transportSocket_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(24, getTransportSocket()); } if (metadata_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(25, getMetadata()); } if (protocolSelection_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.ClusterProtocolSelection.USE_CONFIGURED_PROTOCOL.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(26, protocolSelection_); } if (commonLbConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(27, getCommonLbConfig()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(altStatName_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(28, altStatName_); } if (commonHttpProtocolOptions_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(29, getCommonHttpProtocolOptions()); } if (upstreamConnectionOptions_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(30, getUpstreamConnectionOptions()); } if (closeConnectionsOnHostHealthFailure_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(31, closeConnectionsOnHostHealthFailure_); } if (ignoreHealthOnHostRemoval_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(32, ignoreHealthOnHostRemoval_); } if (loadAssignment_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(33, getLoadAssignment()); } if (lbConfigCase_ == 34) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(34, (io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) lbConfig_); } for (java.util.Map.Entry entry : internalGetTypedExtensionProtocolOptions().getMap().entrySet()) { com.google.protobuf.MapEntry typedExtensionProtocolOptions__ = TypedExtensionProtocolOptionsDefaultEntryHolder.defaultEntry.newBuilderForType() .setKey(entry.getKey()) .setValue(entry.getValue()) .build(); size += com.google.protobuf.CodedOutputStream .computeMessageSize(36, typedExtensionProtocolOptions__); } if (lbConfigCase_ == 37) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(37, (io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) lbConfig_); } if (clusterDiscoveryTypeCase_ == 38) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(38, (io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType) clusterDiscoveryType_); } if (respectDnsTtl_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(39, respectDnsTtl_); } for (int i = 0; i < filters_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(40, filters_.get(i)); } if (loadBalancingPolicy_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(41, getLoadBalancingPolicy()); } if (lrsServer_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(42, getLrsServer()); } for (int i = 0; i < transportSocketMatches_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(43, transportSocketMatches_.get(i)); } if (dnsFailureRefreshRate_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(44, getDnsFailureRefreshRate()); } if (useTcpForDnsLookups_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(45, useTcpForDnsLookups_); } if (upstreamHttpProtocolOptions_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(46, getUpstreamHttpProtocolOptions()); } if (trackTimeoutBudgets_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(47, trackTimeoutBudgets_); } if (upstreamConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(48, getUpstreamConfig()); } if (trackClusterStats_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(49, getTrackClusterStats()); } if (preconnectPolicy_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(50, getPreconnectPolicy()); } if (connectionPoolPerDownstreamConnection_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(51, connectionPoolPerDownstreamConnection_); } if (lbConfigCase_ == 52) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(52, (io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig) lbConfig_); } if (dnsResolutionConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(53, getDnsResolutionConfig()); } if (waitForWarmOnInit_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(54, getWaitForWarmOnInit()); } if (typedDnsResolverConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(55, getTypedDnsResolverConfig()); } if (lbConfigCase_ == 56) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(56, (io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) lbConfig_); } 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 io.envoyproxy.envoy.config.cluster.v3.Cluster)) { return super.equals(obj); } io.envoyproxy.envoy.config.cluster.v3.Cluster other = (io.envoyproxy.envoy.config.cluster.v3.Cluster) obj; if (!getTransportSocketMatchesList() .equals(other.getTransportSocketMatchesList())) return false; if (!getName() .equals(other.getName())) return false; if (!getAltStatName() .equals(other.getAltStatName())) return false; if (hasEdsClusterConfig() != other.hasEdsClusterConfig()) return false; if (hasEdsClusterConfig()) { if (!getEdsClusterConfig() .equals(other.getEdsClusterConfig())) return false; } if (hasConnectTimeout() != other.hasConnectTimeout()) return false; if (hasConnectTimeout()) { if (!getConnectTimeout() .equals(other.getConnectTimeout())) return false; } if (hasPerConnectionBufferLimitBytes() != other.hasPerConnectionBufferLimitBytes()) return false; if (hasPerConnectionBufferLimitBytes()) { if (!getPerConnectionBufferLimitBytes() .equals(other.getPerConnectionBufferLimitBytes())) return false; } if (lbPolicy_ != other.lbPolicy_) return false; if (hasLoadAssignment() != other.hasLoadAssignment()) return false; if (hasLoadAssignment()) { if (!getLoadAssignment() .equals(other.getLoadAssignment())) return false; } if (!getHealthChecksList() .equals(other.getHealthChecksList())) return false; if (hasMaxRequestsPerConnection() != other.hasMaxRequestsPerConnection()) return false; if (hasMaxRequestsPerConnection()) { if (!getMaxRequestsPerConnection() .equals(other.getMaxRequestsPerConnection())) return false; } if (hasCircuitBreakers() != other.hasCircuitBreakers()) return false; if (hasCircuitBreakers()) { if (!getCircuitBreakers() .equals(other.getCircuitBreakers())) return false; } if (hasUpstreamHttpProtocolOptions() != other.hasUpstreamHttpProtocolOptions()) return false; if (hasUpstreamHttpProtocolOptions()) { if (!getUpstreamHttpProtocolOptions() .equals(other.getUpstreamHttpProtocolOptions())) return false; } if (hasCommonHttpProtocolOptions() != other.hasCommonHttpProtocolOptions()) return false; if (hasCommonHttpProtocolOptions()) { if (!getCommonHttpProtocolOptions() .equals(other.getCommonHttpProtocolOptions())) return false; } if (hasHttpProtocolOptions() != other.hasHttpProtocolOptions()) return false; if (hasHttpProtocolOptions()) { if (!getHttpProtocolOptions() .equals(other.getHttpProtocolOptions())) return false; } if (hasHttp2ProtocolOptions() != other.hasHttp2ProtocolOptions()) return false; if (hasHttp2ProtocolOptions()) { if (!getHttp2ProtocolOptions() .equals(other.getHttp2ProtocolOptions())) return false; } if (!internalGetTypedExtensionProtocolOptions().equals( other.internalGetTypedExtensionProtocolOptions())) return false; if (hasDnsRefreshRate() != other.hasDnsRefreshRate()) return false; if (hasDnsRefreshRate()) { if (!getDnsRefreshRate() .equals(other.getDnsRefreshRate())) return false; } if (hasDnsFailureRefreshRate() != other.hasDnsFailureRefreshRate()) return false; if (hasDnsFailureRefreshRate()) { if (!getDnsFailureRefreshRate() .equals(other.getDnsFailureRefreshRate())) return false; } if (getRespectDnsTtl() != other.getRespectDnsTtl()) return false; if (dnsLookupFamily_ != other.dnsLookupFamily_) return false; if (!getDnsResolversList() .equals(other.getDnsResolversList())) return false; if (getUseTcpForDnsLookups() != other.getUseTcpForDnsLookups()) return false; if (hasDnsResolutionConfig() != other.hasDnsResolutionConfig()) return false; if (hasDnsResolutionConfig()) { if (!getDnsResolutionConfig() .equals(other.getDnsResolutionConfig())) return false; } if (hasTypedDnsResolverConfig() != other.hasTypedDnsResolverConfig()) return false; if (hasTypedDnsResolverConfig()) { if (!getTypedDnsResolverConfig() .equals(other.getTypedDnsResolverConfig())) return false; } if (hasWaitForWarmOnInit() != other.hasWaitForWarmOnInit()) return false; if (hasWaitForWarmOnInit()) { if (!getWaitForWarmOnInit() .equals(other.getWaitForWarmOnInit())) return false; } if (hasOutlierDetection() != other.hasOutlierDetection()) return false; if (hasOutlierDetection()) { if (!getOutlierDetection() .equals(other.getOutlierDetection())) return false; } if (hasCleanupInterval() != other.hasCleanupInterval()) return false; if (hasCleanupInterval()) { if (!getCleanupInterval() .equals(other.getCleanupInterval())) return false; } if (hasUpstreamBindConfig() != other.hasUpstreamBindConfig()) return false; if (hasUpstreamBindConfig()) { if (!getUpstreamBindConfig() .equals(other.getUpstreamBindConfig())) return false; } if (hasLbSubsetConfig() != other.hasLbSubsetConfig()) return false; if (hasLbSubsetConfig()) { if (!getLbSubsetConfig() .equals(other.getLbSubsetConfig())) return false; } if (hasCommonLbConfig() != other.hasCommonLbConfig()) return false; if (hasCommonLbConfig()) { if (!getCommonLbConfig() .equals(other.getCommonLbConfig())) return false; } if (hasTransportSocket() != other.hasTransportSocket()) return false; if (hasTransportSocket()) { if (!getTransportSocket() .equals(other.getTransportSocket())) return false; } if (hasMetadata() != other.hasMetadata()) return false; if (hasMetadata()) { if (!getMetadata() .equals(other.getMetadata())) return false; } if (protocolSelection_ != other.protocolSelection_) return false; if (hasUpstreamConnectionOptions() != other.hasUpstreamConnectionOptions()) return false; if (hasUpstreamConnectionOptions()) { if (!getUpstreamConnectionOptions() .equals(other.getUpstreamConnectionOptions())) return false; } if (getCloseConnectionsOnHostHealthFailure() != other.getCloseConnectionsOnHostHealthFailure()) return false; if (getIgnoreHealthOnHostRemoval() != other.getIgnoreHealthOnHostRemoval()) return false; if (!getFiltersList() .equals(other.getFiltersList())) return false; if (hasLoadBalancingPolicy() != other.hasLoadBalancingPolicy()) return false; if (hasLoadBalancingPolicy()) { if (!getLoadBalancingPolicy() .equals(other.getLoadBalancingPolicy())) return false; } if (hasLrsServer() != other.hasLrsServer()) return false; if (hasLrsServer()) { if (!getLrsServer() .equals(other.getLrsServer())) return false; } if (getTrackTimeoutBudgets() != other.getTrackTimeoutBudgets()) return false; if (hasUpstreamConfig() != other.hasUpstreamConfig()) return false; if (hasUpstreamConfig()) { if (!getUpstreamConfig() .equals(other.getUpstreamConfig())) return false; } if (hasTrackClusterStats() != other.hasTrackClusterStats()) return false; if (hasTrackClusterStats()) { if (!getTrackClusterStats() .equals(other.getTrackClusterStats())) return false; } if (hasPreconnectPolicy() != other.hasPreconnectPolicy()) return false; if (hasPreconnectPolicy()) { if (!getPreconnectPolicy() .equals(other.getPreconnectPolicy())) return false; } if (getConnectionPoolPerDownstreamConnection() != other.getConnectionPoolPerDownstreamConnection()) return false; if (!getClusterDiscoveryTypeCase().equals(other.getClusterDiscoveryTypeCase())) return false; switch (clusterDiscoveryTypeCase_) { case 2: if (getTypeValue() != other.getTypeValue()) return false; break; case 38: if (!getClusterType() .equals(other.getClusterType())) return false; break; case 0: default: } if (!getLbConfigCase().equals(other.getLbConfigCase())) return false; switch (lbConfigCase_) { case 23: if (!getRingHashLbConfig() .equals(other.getRingHashLbConfig())) return false; break; case 52: if (!getMaglevLbConfig() .equals(other.getMaglevLbConfig())) return false; break; case 34: if (!getOriginalDstLbConfig() .equals(other.getOriginalDstLbConfig())) return false; break; case 37: if (!getLeastRequestLbConfig() .equals(other.getLeastRequestLbConfig())) return false; break; case 56: if (!getRoundRobinLbConfig() .equals(other.getRoundRobinLbConfig())) return false; break; case 0: default: } 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 (getTransportSocketMatchesCount() > 0) { hash = (37 * hash) + TRANSPORT_SOCKET_MATCHES_FIELD_NUMBER; hash = (53 * hash) + getTransportSocketMatchesList().hashCode(); } hash = (37 * hash) + NAME_FIELD_NUMBER; hash = (53 * hash) + getName().hashCode(); hash = (37 * hash) + ALT_STAT_NAME_FIELD_NUMBER; hash = (53 * hash) + getAltStatName().hashCode(); if (hasEdsClusterConfig()) { hash = (37 * hash) + EDS_CLUSTER_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getEdsClusterConfig().hashCode(); } if (hasConnectTimeout()) { hash = (37 * hash) + CONNECT_TIMEOUT_FIELD_NUMBER; hash = (53 * hash) + getConnectTimeout().hashCode(); } if (hasPerConnectionBufferLimitBytes()) { hash = (37 * hash) + PER_CONNECTION_BUFFER_LIMIT_BYTES_FIELD_NUMBER; hash = (53 * hash) + getPerConnectionBufferLimitBytes().hashCode(); } hash = (37 * hash) + LB_POLICY_FIELD_NUMBER; hash = (53 * hash) + lbPolicy_; if (hasLoadAssignment()) { hash = (37 * hash) + LOAD_ASSIGNMENT_FIELD_NUMBER; hash = (53 * hash) + getLoadAssignment().hashCode(); } if (getHealthChecksCount() > 0) { hash = (37 * hash) + HEALTH_CHECKS_FIELD_NUMBER; hash = (53 * hash) + getHealthChecksList().hashCode(); } if (hasMaxRequestsPerConnection()) { hash = (37 * hash) + MAX_REQUESTS_PER_CONNECTION_FIELD_NUMBER; hash = (53 * hash) + getMaxRequestsPerConnection().hashCode(); } if (hasCircuitBreakers()) { hash = (37 * hash) + CIRCUIT_BREAKERS_FIELD_NUMBER; hash = (53 * hash) + getCircuitBreakers().hashCode(); } if (hasUpstreamHttpProtocolOptions()) { hash = (37 * hash) + UPSTREAM_HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER; hash = (53 * hash) + getUpstreamHttpProtocolOptions().hashCode(); } if (hasCommonHttpProtocolOptions()) { hash = (37 * hash) + COMMON_HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER; hash = (53 * hash) + getCommonHttpProtocolOptions().hashCode(); } if (hasHttpProtocolOptions()) { hash = (37 * hash) + HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER; hash = (53 * hash) + getHttpProtocolOptions().hashCode(); } if (hasHttp2ProtocolOptions()) { hash = (37 * hash) + HTTP2_PROTOCOL_OPTIONS_FIELD_NUMBER; hash = (53 * hash) + getHttp2ProtocolOptions().hashCode(); } if (!internalGetTypedExtensionProtocolOptions().getMap().isEmpty()) { hash = (37 * hash) + TYPED_EXTENSION_PROTOCOL_OPTIONS_FIELD_NUMBER; hash = (53 * hash) + internalGetTypedExtensionProtocolOptions().hashCode(); } if (hasDnsRefreshRate()) { hash = (37 * hash) + DNS_REFRESH_RATE_FIELD_NUMBER; hash = (53 * hash) + getDnsRefreshRate().hashCode(); } if (hasDnsFailureRefreshRate()) { hash = (37 * hash) + DNS_FAILURE_REFRESH_RATE_FIELD_NUMBER; hash = (53 * hash) + getDnsFailureRefreshRate().hashCode(); } hash = (37 * hash) + RESPECT_DNS_TTL_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getRespectDnsTtl()); hash = (37 * hash) + DNS_LOOKUP_FAMILY_FIELD_NUMBER; hash = (53 * hash) + dnsLookupFamily_; if (getDnsResolversCount() > 0) { hash = (37 * hash) + DNS_RESOLVERS_FIELD_NUMBER; hash = (53 * hash) + getDnsResolversList().hashCode(); } hash = (37 * hash) + USE_TCP_FOR_DNS_LOOKUPS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getUseTcpForDnsLookups()); if (hasDnsResolutionConfig()) { hash = (37 * hash) + DNS_RESOLUTION_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getDnsResolutionConfig().hashCode(); } if (hasTypedDnsResolverConfig()) { hash = (37 * hash) + TYPED_DNS_RESOLVER_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getTypedDnsResolverConfig().hashCode(); } if (hasWaitForWarmOnInit()) { hash = (37 * hash) + WAIT_FOR_WARM_ON_INIT_FIELD_NUMBER; hash = (53 * hash) + getWaitForWarmOnInit().hashCode(); } if (hasOutlierDetection()) { hash = (37 * hash) + OUTLIER_DETECTION_FIELD_NUMBER; hash = (53 * hash) + getOutlierDetection().hashCode(); } if (hasCleanupInterval()) { hash = (37 * hash) + CLEANUP_INTERVAL_FIELD_NUMBER; hash = (53 * hash) + getCleanupInterval().hashCode(); } if (hasUpstreamBindConfig()) { hash = (37 * hash) + UPSTREAM_BIND_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getUpstreamBindConfig().hashCode(); } if (hasLbSubsetConfig()) { hash = (37 * hash) + LB_SUBSET_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getLbSubsetConfig().hashCode(); } if (hasCommonLbConfig()) { hash = (37 * hash) + COMMON_LB_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getCommonLbConfig().hashCode(); } if (hasTransportSocket()) { hash = (37 * hash) + TRANSPORT_SOCKET_FIELD_NUMBER; hash = (53 * hash) + getTransportSocket().hashCode(); } if (hasMetadata()) { hash = (37 * hash) + METADATA_FIELD_NUMBER; hash = (53 * hash) + getMetadata().hashCode(); } hash = (37 * hash) + PROTOCOL_SELECTION_FIELD_NUMBER; hash = (53 * hash) + protocolSelection_; if (hasUpstreamConnectionOptions()) { hash = (37 * hash) + UPSTREAM_CONNECTION_OPTIONS_FIELD_NUMBER; hash = (53 * hash) + getUpstreamConnectionOptions().hashCode(); } hash = (37 * hash) + CLOSE_CONNECTIONS_ON_HOST_HEALTH_FAILURE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getCloseConnectionsOnHostHealthFailure()); hash = (37 * hash) + IGNORE_HEALTH_ON_HOST_REMOVAL_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getIgnoreHealthOnHostRemoval()); if (getFiltersCount() > 0) { hash = (37 * hash) + FILTERS_FIELD_NUMBER; hash = (53 * hash) + getFiltersList().hashCode(); } if (hasLoadBalancingPolicy()) { hash = (37 * hash) + LOAD_BALANCING_POLICY_FIELD_NUMBER; hash = (53 * hash) + getLoadBalancingPolicy().hashCode(); } if (hasLrsServer()) { hash = (37 * hash) + LRS_SERVER_FIELD_NUMBER; hash = (53 * hash) + getLrsServer().hashCode(); } hash = (37 * hash) + TRACK_TIMEOUT_BUDGETS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getTrackTimeoutBudgets()); if (hasUpstreamConfig()) { hash = (37 * hash) + UPSTREAM_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getUpstreamConfig().hashCode(); } if (hasTrackClusterStats()) { hash = (37 * hash) + TRACK_CLUSTER_STATS_FIELD_NUMBER; hash = (53 * hash) + getTrackClusterStats().hashCode(); } if (hasPreconnectPolicy()) { hash = (37 * hash) + PRECONNECT_POLICY_FIELD_NUMBER; hash = (53 * hash) + getPreconnectPolicy().hashCode(); } hash = (37 * hash) + CONNECTION_POOL_PER_DOWNSTREAM_CONNECTION_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getConnectionPoolPerDownstreamConnection()); switch (clusterDiscoveryTypeCase_) { case 2: hash = (37 * hash) + TYPE_FIELD_NUMBER; hash = (53 * hash) + getTypeValue(); break; case 38: hash = (37 * hash) + CLUSTER_TYPE_FIELD_NUMBER; hash = (53 * hash) + getClusterType().hashCode(); break; case 0: default: } switch (lbConfigCase_) { case 23: hash = (37 * hash) + RING_HASH_LB_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getRingHashLbConfig().hashCode(); break; case 52: hash = (37 * hash) + MAGLEV_LB_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getMaglevLbConfig().hashCode(); break; case 34: hash = (37 * hash) + ORIGINAL_DST_LB_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getOriginalDstLbConfig().hashCode(); break; case 37: hash = (37 * hash) + LEAST_REQUEST_LB_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getLeastRequestLbConfig().hashCode(); break; case 56: hash = (37 * hash) + ROUND_ROBIN_LB_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getRoundRobinLbConfig().hashCode(); break; case 0: default: } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.cluster.v3.Cluster parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.cluster.v3.Cluster parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.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 io.envoyproxy.envoy.config.cluster.v3.Cluster parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.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 io.envoyproxy.envoy.config.cluster.v3.Cluster parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.cluster.v3.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(io.envoyproxy.envoy.config.cluster.v3.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; } /** *
   * Configuration for a single upstream cluster.
   * [#next-free-field: 57]
   * 
* * Protobuf type {@code envoy.config.cluster.v3.Cluster} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.cluster.v3.Cluster) io.envoyproxy.envoy.config.cluster.v3.ClusterOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_descriptor; } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 36: return internalGetTypedExtensionProtocolOptions(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMutableMapField( int number) { switch (number) { case 36: return internalGetMutableTypedExtensionProtocolOptions(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.cluster.v3.Cluster.class, io.envoyproxy.envoy.config.cluster.v3.Cluster.Builder.class); } // Construct using io.envoyproxy.envoy.config.cluster.v3.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) { getTransportSocketMatchesFieldBuilder(); getHealthChecksFieldBuilder(); getDnsResolversFieldBuilder(); getFiltersFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); if (transportSocketMatchesBuilder_ == null) { transportSocketMatches_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); } else { transportSocketMatchesBuilder_.clear(); } name_ = ""; altStatName_ = ""; if (edsClusterConfigBuilder_ == null) { edsClusterConfig_ = null; } else { edsClusterConfig_ = null; edsClusterConfigBuilder_ = null; } if (connectTimeoutBuilder_ == null) { connectTimeout_ = null; } else { connectTimeout_ = null; connectTimeoutBuilder_ = null; } if (perConnectionBufferLimitBytesBuilder_ == null) { perConnectionBufferLimitBytes_ = null; } else { perConnectionBufferLimitBytes_ = null; perConnectionBufferLimitBytesBuilder_ = null; } lbPolicy_ = 0; if (loadAssignmentBuilder_ == null) { loadAssignment_ = null; } else { loadAssignment_ = null; loadAssignmentBuilder_ = null; } if (healthChecksBuilder_ == null) { healthChecks_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000002); } else { healthChecksBuilder_.clear(); } if (maxRequestsPerConnectionBuilder_ == null) { maxRequestsPerConnection_ = null; } else { maxRequestsPerConnection_ = null; maxRequestsPerConnectionBuilder_ = null; } if (circuitBreakersBuilder_ == null) { circuitBreakers_ = null; } else { circuitBreakers_ = null; circuitBreakersBuilder_ = null; } if (upstreamHttpProtocolOptionsBuilder_ == null) { upstreamHttpProtocolOptions_ = null; } else { upstreamHttpProtocolOptions_ = null; upstreamHttpProtocolOptionsBuilder_ = null; } if (commonHttpProtocolOptionsBuilder_ == null) { commonHttpProtocolOptions_ = null; } else { commonHttpProtocolOptions_ = null; commonHttpProtocolOptionsBuilder_ = null; } if (httpProtocolOptionsBuilder_ == null) { httpProtocolOptions_ = null; } else { httpProtocolOptions_ = null; httpProtocolOptionsBuilder_ = null; } if (http2ProtocolOptionsBuilder_ == null) { http2ProtocolOptions_ = null; } else { http2ProtocolOptions_ = null; http2ProtocolOptionsBuilder_ = null; } internalGetMutableTypedExtensionProtocolOptions().clear(); if (dnsRefreshRateBuilder_ == null) { dnsRefreshRate_ = null; } else { dnsRefreshRate_ = null; dnsRefreshRateBuilder_ = null; } if (dnsFailureRefreshRateBuilder_ == null) { dnsFailureRefreshRate_ = null; } else { dnsFailureRefreshRate_ = null; dnsFailureRefreshRateBuilder_ = null; } respectDnsTtl_ = false; dnsLookupFamily_ = 0; if (dnsResolversBuilder_ == null) { dnsResolvers_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000008); } else { dnsResolversBuilder_.clear(); } useTcpForDnsLookups_ = false; if (dnsResolutionConfigBuilder_ == null) { dnsResolutionConfig_ = null; } else { dnsResolutionConfig_ = null; dnsResolutionConfigBuilder_ = null; } if (typedDnsResolverConfigBuilder_ == null) { typedDnsResolverConfig_ = null; } else { typedDnsResolverConfig_ = null; typedDnsResolverConfigBuilder_ = null; } if (waitForWarmOnInitBuilder_ == null) { waitForWarmOnInit_ = null; } else { waitForWarmOnInit_ = null; waitForWarmOnInitBuilder_ = null; } if (outlierDetectionBuilder_ == null) { outlierDetection_ = null; } else { outlierDetection_ = null; outlierDetectionBuilder_ = null; } if (cleanupIntervalBuilder_ == null) { cleanupInterval_ = null; } else { cleanupInterval_ = null; cleanupIntervalBuilder_ = null; } if (upstreamBindConfigBuilder_ == null) { upstreamBindConfig_ = null; } else { upstreamBindConfig_ = null; upstreamBindConfigBuilder_ = null; } if (lbSubsetConfigBuilder_ == null) { lbSubsetConfig_ = null; } else { lbSubsetConfig_ = null; lbSubsetConfigBuilder_ = null; } if (commonLbConfigBuilder_ == null) { commonLbConfig_ = null; } else { commonLbConfig_ = null; commonLbConfigBuilder_ = null; } if (transportSocketBuilder_ == null) { transportSocket_ = null; } else { transportSocket_ = null; transportSocketBuilder_ = null; } if (metadataBuilder_ == null) { metadata_ = null; } else { metadata_ = null; metadataBuilder_ = null; } protocolSelection_ = 0; if (upstreamConnectionOptionsBuilder_ == null) { upstreamConnectionOptions_ = null; } else { upstreamConnectionOptions_ = null; upstreamConnectionOptionsBuilder_ = null; } closeConnectionsOnHostHealthFailure_ = false; ignoreHealthOnHostRemoval_ = false; if (filtersBuilder_ == null) { filters_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000010); } else { filtersBuilder_.clear(); } if (loadBalancingPolicyBuilder_ == null) { loadBalancingPolicy_ = null; } else { loadBalancingPolicy_ = null; loadBalancingPolicyBuilder_ = null; } if (lrsServerBuilder_ == null) { lrsServer_ = null; } else { lrsServer_ = null; lrsServerBuilder_ = null; } trackTimeoutBudgets_ = false; if (upstreamConfigBuilder_ == null) { upstreamConfig_ = null; } else { upstreamConfig_ = null; upstreamConfigBuilder_ = null; } if (trackClusterStatsBuilder_ == null) { trackClusterStats_ = null; } else { trackClusterStats_ = null; trackClusterStatsBuilder_ = null; } if (preconnectPolicyBuilder_ == null) { preconnectPolicy_ = null; } else { preconnectPolicy_ = null; preconnectPolicyBuilder_ = null; } connectionPoolPerDownstreamConnection_ = false; clusterDiscoveryTypeCase_ = 0; clusterDiscoveryType_ = null; lbConfigCase_ = 0; lbConfig_ = null; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.cluster.v3.ClusterProto.internal_static_envoy_config_cluster_v3_Cluster_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster getDefaultInstanceForType() { return io.envoyproxy.envoy.config.cluster.v3.Cluster.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster build() { io.envoyproxy.envoy.config.cluster.v3.Cluster result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster buildPartial() { io.envoyproxy.envoy.config.cluster.v3.Cluster result = new io.envoyproxy.envoy.config.cluster.v3.Cluster(this); int from_bitField0_ = bitField0_; if (transportSocketMatchesBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { transportSocketMatches_ = java.util.Collections.unmodifiableList(transportSocketMatches_); bitField0_ = (bitField0_ & ~0x00000001); } result.transportSocketMatches_ = transportSocketMatches_; } else { result.transportSocketMatches_ = transportSocketMatchesBuilder_.build(); } result.name_ = name_; result.altStatName_ = altStatName_; if (clusterDiscoveryTypeCase_ == 2) { result.clusterDiscoveryType_ = clusterDiscoveryType_; } if (clusterDiscoveryTypeCase_ == 38) { if (clusterTypeBuilder_ == null) { result.clusterDiscoveryType_ = clusterDiscoveryType_; } else { result.clusterDiscoveryType_ = clusterTypeBuilder_.build(); } } if (edsClusterConfigBuilder_ == null) { result.edsClusterConfig_ = edsClusterConfig_; } else { result.edsClusterConfig_ = edsClusterConfigBuilder_.build(); } if (connectTimeoutBuilder_ == null) { result.connectTimeout_ = connectTimeout_; } else { result.connectTimeout_ = connectTimeoutBuilder_.build(); } if (perConnectionBufferLimitBytesBuilder_ == null) { result.perConnectionBufferLimitBytes_ = perConnectionBufferLimitBytes_; } else { result.perConnectionBufferLimitBytes_ = perConnectionBufferLimitBytesBuilder_.build(); } result.lbPolicy_ = lbPolicy_; if (loadAssignmentBuilder_ == null) { result.loadAssignment_ = loadAssignment_; } else { result.loadAssignment_ = loadAssignmentBuilder_.build(); } if (healthChecksBuilder_ == null) { if (((bitField0_ & 0x00000002) != 0)) { healthChecks_ = java.util.Collections.unmodifiableList(healthChecks_); bitField0_ = (bitField0_ & ~0x00000002); } result.healthChecks_ = healthChecks_; } else { result.healthChecks_ = healthChecksBuilder_.build(); } if (maxRequestsPerConnectionBuilder_ == null) { result.maxRequestsPerConnection_ = maxRequestsPerConnection_; } else { result.maxRequestsPerConnection_ = maxRequestsPerConnectionBuilder_.build(); } if (circuitBreakersBuilder_ == null) { result.circuitBreakers_ = circuitBreakers_; } else { result.circuitBreakers_ = circuitBreakersBuilder_.build(); } if (upstreamHttpProtocolOptionsBuilder_ == null) { result.upstreamHttpProtocolOptions_ = upstreamHttpProtocolOptions_; } else { result.upstreamHttpProtocolOptions_ = upstreamHttpProtocolOptionsBuilder_.build(); } if (commonHttpProtocolOptionsBuilder_ == null) { result.commonHttpProtocolOptions_ = commonHttpProtocolOptions_; } else { result.commonHttpProtocolOptions_ = commonHttpProtocolOptionsBuilder_.build(); } if (httpProtocolOptionsBuilder_ == null) { result.httpProtocolOptions_ = httpProtocolOptions_; } else { result.httpProtocolOptions_ = httpProtocolOptionsBuilder_.build(); } if (http2ProtocolOptionsBuilder_ == null) { result.http2ProtocolOptions_ = http2ProtocolOptions_; } else { result.http2ProtocolOptions_ = http2ProtocolOptionsBuilder_.build(); } result.typedExtensionProtocolOptions_ = internalGetTypedExtensionProtocolOptions(); result.typedExtensionProtocolOptions_.makeImmutable(); if (dnsRefreshRateBuilder_ == null) { result.dnsRefreshRate_ = dnsRefreshRate_; } else { result.dnsRefreshRate_ = dnsRefreshRateBuilder_.build(); } if (dnsFailureRefreshRateBuilder_ == null) { result.dnsFailureRefreshRate_ = dnsFailureRefreshRate_; } else { result.dnsFailureRefreshRate_ = dnsFailureRefreshRateBuilder_.build(); } result.respectDnsTtl_ = respectDnsTtl_; result.dnsLookupFamily_ = dnsLookupFamily_; if (dnsResolversBuilder_ == null) { if (((bitField0_ & 0x00000008) != 0)) { dnsResolvers_ = java.util.Collections.unmodifiableList(dnsResolvers_); bitField0_ = (bitField0_ & ~0x00000008); } result.dnsResolvers_ = dnsResolvers_; } else { result.dnsResolvers_ = dnsResolversBuilder_.build(); } result.useTcpForDnsLookups_ = useTcpForDnsLookups_; if (dnsResolutionConfigBuilder_ == null) { result.dnsResolutionConfig_ = dnsResolutionConfig_; } else { result.dnsResolutionConfig_ = dnsResolutionConfigBuilder_.build(); } if (typedDnsResolverConfigBuilder_ == null) { result.typedDnsResolverConfig_ = typedDnsResolverConfig_; } else { result.typedDnsResolverConfig_ = typedDnsResolverConfigBuilder_.build(); } if (waitForWarmOnInitBuilder_ == null) { result.waitForWarmOnInit_ = waitForWarmOnInit_; } else { result.waitForWarmOnInit_ = waitForWarmOnInitBuilder_.build(); } if (outlierDetectionBuilder_ == null) { result.outlierDetection_ = outlierDetection_; } else { result.outlierDetection_ = outlierDetectionBuilder_.build(); } if (cleanupIntervalBuilder_ == null) { result.cleanupInterval_ = cleanupInterval_; } else { result.cleanupInterval_ = cleanupIntervalBuilder_.build(); } if (upstreamBindConfigBuilder_ == null) { result.upstreamBindConfig_ = upstreamBindConfig_; } else { result.upstreamBindConfig_ = upstreamBindConfigBuilder_.build(); } if (lbSubsetConfigBuilder_ == null) { result.lbSubsetConfig_ = lbSubsetConfig_; } else { result.lbSubsetConfig_ = lbSubsetConfigBuilder_.build(); } if (lbConfigCase_ == 23) { if (ringHashLbConfigBuilder_ == null) { result.lbConfig_ = lbConfig_; } else { result.lbConfig_ = ringHashLbConfigBuilder_.build(); } } if (lbConfigCase_ == 52) { if (maglevLbConfigBuilder_ == null) { result.lbConfig_ = lbConfig_; } else { result.lbConfig_ = maglevLbConfigBuilder_.build(); } } if (lbConfigCase_ == 34) { if (originalDstLbConfigBuilder_ == null) { result.lbConfig_ = lbConfig_; } else { result.lbConfig_ = originalDstLbConfigBuilder_.build(); } } if (lbConfigCase_ == 37) { if (leastRequestLbConfigBuilder_ == null) { result.lbConfig_ = lbConfig_; } else { result.lbConfig_ = leastRequestLbConfigBuilder_.build(); } } if (lbConfigCase_ == 56) { if (roundRobinLbConfigBuilder_ == null) { result.lbConfig_ = lbConfig_; } else { result.lbConfig_ = roundRobinLbConfigBuilder_.build(); } } if (commonLbConfigBuilder_ == null) { result.commonLbConfig_ = commonLbConfig_; } else { result.commonLbConfig_ = commonLbConfigBuilder_.build(); } if (transportSocketBuilder_ == null) { result.transportSocket_ = transportSocket_; } else { result.transportSocket_ = transportSocketBuilder_.build(); } if (metadataBuilder_ == null) { result.metadata_ = metadata_; } else { result.metadata_ = metadataBuilder_.build(); } result.protocolSelection_ = protocolSelection_; if (upstreamConnectionOptionsBuilder_ == null) { result.upstreamConnectionOptions_ = upstreamConnectionOptions_; } else { result.upstreamConnectionOptions_ = upstreamConnectionOptionsBuilder_.build(); } result.closeConnectionsOnHostHealthFailure_ = closeConnectionsOnHostHealthFailure_; result.ignoreHealthOnHostRemoval_ = ignoreHealthOnHostRemoval_; if (filtersBuilder_ == null) { if (((bitField0_ & 0x00000010) != 0)) { filters_ = java.util.Collections.unmodifiableList(filters_); bitField0_ = (bitField0_ & ~0x00000010); } result.filters_ = filters_; } else { result.filters_ = filtersBuilder_.build(); } if (loadBalancingPolicyBuilder_ == null) { result.loadBalancingPolicy_ = loadBalancingPolicy_; } else { result.loadBalancingPolicy_ = loadBalancingPolicyBuilder_.build(); } if (lrsServerBuilder_ == null) { result.lrsServer_ = lrsServer_; } else { result.lrsServer_ = lrsServerBuilder_.build(); } result.trackTimeoutBudgets_ = trackTimeoutBudgets_; if (upstreamConfigBuilder_ == null) { result.upstreamConfig_ = upstreamConfig_; } else { result.upstreamConfig_ = upstreamConfigBuilder_.build(); } if (trackClusterStatsBuilder_ == null) { result.trackClusterStats_ = trackClusterStats_; } else { result.trackClusterStats_ = trackClusterStatsBuilder_.build(); } if (preconnectPolicyBuilder_ == null) { result.preconnectPolicy_ = preconnectPolicy_; } else { result.preconnectPolicy_ = preconnectPolicyBuilder_.build(); } result.connectionPoolPerDownstreamConnection_ = connectionPoolPerDownstreamConnection_; result.clusterDiscoveryTypeCase_ = clusterDiscoveryTypeCase_; result.lbConfigCase_ = lbConfigCase_; 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 io.envoyproxy.envoy.config.cluster.v3.Cluster) { return mergeFrom((io.envoyproxy.envoy.config.cluster.v3.Cluster)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.cluster.v3.Cluster other) { if (other == io.envoyproxy.envoy.config.cluster.v3.Cluster.getDefaultInstance()) return this; if (transportSocketMatchesBuilder_ == null) { if (!other.transportSocketMatches_.isEmpty()) { if (transportSocketMatches_.isEmpty()) { transportSocketMatches_ = other.transportSocketMatches_; bitField0_ = (bitField0_ & ~0x00000001); } else { ensureTransportSocketMatchesIsMutable(); transportSocketMatches_.addAll(other.transportSocketMatches_); } onChanged(); } } else { if (!other.transportSocketMatches_.isEmpty()) { if (transportSocketMatchesBuilder_.isEmpty()) { transportSocketMatchesBuilder_.dispose(); transportSocketMatchesBuilder_ = null; transportSocketMatches_ = other.transportSocketMatches_; bitField0_ = (bitField0_ & ~0x00000001); transportSocketMatchesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getTransportSocketMatchesFieldBuilder() : null; } else { transportSocketMatchesBuilder_.addAllMessages(other.transportSocketMatches_); } } } if (!other.getName().isEmpty()) { name_ = other.name_; onChanged(); } if (!other.getAltStatName().isEmpty()) { altStatName_ = other.altStatName_; onChanged(); } if (other.hasEdsClusterConfig()) { mergeEdsClusterConfig(other.getEdsClusterConfig()); } if (other.hasConnectTimeout()) { mergeConnectTimeout(other.getConnectTimeout()); } if (other.hasPerConnectionBufferLimitBytes()) { mergePerConnectionBufferLimitBytes(other.getPerConnectionBufferLimitBytes()); } if (other.lbPolicy_ != 0) { setLbPolicyValue(other.getLbPolicyValue()); } if (other.hasLoadAssignment()) { mergeLoadAssignment(other.getLoadAssignment()); } if (healthChecksBuilder_ == null) { if (!other.healthChecks_.isEmpty()) { if (healthChecks_.isEmpty()) { healthChecks_ = other.healthChecks_; bitField0_ = (bitField0_ & ~0x00000002); } else { ensureHealthChecksIsMutable(); healthChecks_.addAll(other.healthChecks_); } onChanged(); } } else { if (!other.healthChecks_.isEmpty()) { if (healthChecksBuilder_.isEmpty()) { healthChecksBuilder_.dispose(); healthChecksBuilder_ = null; healthChecks_ = other.healthChecks_; bitField0_ = (bitField0_ & ~0x00000002); healthChecksBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getHealthChecksFieldBuilder() : null; } else { healthChecksBuilder_.addAllMessages(other.healthChecks_); } } } if (other.hasMaxRequestsPerConnection()) { mergeMaxRequestsPerConnection(other.getMaxRequestsPerConnection()); } if (other.hasCircuitBreakers()) { mergeCircuitBreakers(other.getCircuitBreakers()); } if (other.hasUpstreamHttpProtocolOptions()) { mergeUpstreamHttpProtocolOptions(other.getUpstreamHttpProtocolOptions()); } if (other.hasCommonHttpProtocolOptions()) { mergeCommonHttpProtocolOptions(other.getCommonHttpProtocolOptions()); } if (other.hasHttpProtocolOptions()) { mergeHttpProtocolOptions(other.getHttpProtocolOptions()); } if (other.hasHttp2ProtocolOptions()) { mergeHttp2ProtocolOptions(other.getHttp2ProtocolOptions()); } internalGetMutableTypedExtensionProtocolOptions().mergeFrom( other.internalGetTypedExtensionProtocolOptions()); if (other.hasDnsRefreshRate()) { mergeDnsRefreshRate(other.getDnsRefreshRate()); } if (other.hasDnsFailureRefreshRate()) { mergeDnsFailureRefreshRate(other.getDnsFailureRefreshRate()); } if (other.getRespectDnsTtl() != false) { setRespectDnsTtl(other.getRespectDnsTtl()); } if (other.dnsLookupFamily_ != 0) { setDnsLookupFamilyValue(other.getDnsLookupFamilyValue()); } if (dnsResolversBuilder_ == null) { if (!other.dnsResolvers_.isEmpty()) { if (dnsResolvers_.isEmpty()) { dnsResolvers_ = other.dnsResolvers_; bitField0_ = (bitField0_ & ~0x00000008); } else { ensureDnsResolversIsMutable(); dnsResolvers_.addAll(other.dnsResolvers_); } onChanged(); } } else { if (!other.dnsResolvers_.isEmpty()) { if (dnsResolversBuilder_.isEmpty()) { dnsResolversBuilder_.dispose(); dnsResolversBuilder_ = null; dnsResolvers_ = other.dnsResolvers_; bitField0_ = (bitField0_ & ~0x00000008); dnsResolversBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getDnsResolversFieldBuilder() : null; } else { dnsResolversBuilder_.addAllMessages(other.dnsResolvers_); } } } if (other.getUseTcpForDnsLookups() != false) { setUseTcpForDnsLookups(other.getUseTcpForDnsLookups()); } if (other.hasDnsResolutionConfig()) { mergeDnsResolutionConfig(other.getDnsResolutionConfig()); } if (other.hasTypedDnsResolverConfig()) { mergeTypedDnsResolverConfig(other.getTypedDnsResolverConfig()); } if (other.hasWaitForWarmOnInit()) { mergeWaitForWarmOnInit(other.getWaitForWarmOnInit()); } if (other.hasOutlierDetection()) { mergeOutlierDetection(other.getOutlierDetection()); } if (other.hasCleanupInterval()) { mergeCleanupInterval(other.getCleanupInterval()); } if (other.hasUpstreamBindConfig()) { mergeUpstreamBindConfig(other.getUpstreamBindConfig()); } if (other.hasLbSubsetConfig()) { mergeLbSubsetConfig(other.getLbSubsetConfig()); } if (other.hasCommonLbConfig()) { mergeCommonLbConfig(other.getCommonLbConfig()); } if (other.hasTransportSocket()) { mergeTransportSocket(other.getTransportSocket()); } if (other.hasMetadata()) { mergeMetadata(other.getMetadata()); } if (other.protocolSelection_ != 0) { setProtocolSelectionValue(other.getProtocolSelectionValue()); } if (other.hasUpstreamConnectionOptions()) { mergeUpstreamConnectionOptions(other.getUpstreamConnectionOptions()); } if (other.getCloseConnectionsOnHostHealthFailure() != false) { setCloseConnectionsOnHostHealthFailure(other.getCloseConnectionsOnHostHealthFailure()); } if (other.getIgnoreHealthOnHostRemoval() != false) { setIgnoreHealthOnHostRemoval(other.getIgnoreHealthOnHostRemoval()); } if (filtersBuilder_ == null) { if (!other.filters_.isEmpty()) { if (filters_.isEmpty()) { filters_ = other.filters_; bitField0_ = (bitField0_ & ~0x00000010); } else { ensureFiltersIsMutable(); filters_.addAll(other.filters_); } onChanged(); } } else { if (!other.filters_.isEmpty()) { if (filtersBuilder_.isEmpty()) { filtersBuilder_.dispose(); filtersBuilder_ = null; filters_ = other.filters_; bitField0_ = (bitField0_ & ~0x00000010); filtersBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getFiltersFieldBuilder() : null; } else { filtersBuilder_.addAllMessages(other.filters_); } } } if (other.hasLoadBalancingPolicy()) { mergeLoadBalancingPolicy(other.getLoadBalancingPolicy()); } if (other.hasLrsServer()) { mergeLrsServer(other.getLrsServer()); } if (other.getTrackTimeoutBudgets() != false) { setTrackTimeoutBudgets(other.getTrackTimeoutBudgets()); } if (other.hasUpstreamConfig()) { mergeUpstreamConfig(other.getUpstreamConfig()); } if (other.hasTrackClusterStats()) { mergeTrackClusterStats(other.getTrackClusterStats()); } if (other.hasPreconnectPolicy()) { mergePreconnectPolicy(other.getPreconnectPolicy()); } if (other.getConnectionPoolPerDownstreamConnection() != false) { setConnectionPoolPerDownstreamConnection(other.getConnectionPoolPerDownstreamConnection()); } switch (other.getClusterDiscoveryTypeCase()) { case TYPE: { setTypeValue(other.getTypeValue()); break; } case CLUSTER_TYPE: { mergeClusterType(other.getClusterType()); break; } case CLUSTERDISCOVERYTYPE_NOT_SET: { break; } } switch (other.getLbConfigCase()) { case RING_HASH_LB_CONFIG: { mergeRingHashLbConfig(other.getRingHashLbConfig()); break; } case MAGLEV_LB_CONFIG: { mergeMaglevLbConfig(other.getMaglevLbConfig()); break; } case ORIGINAL_DST_LB_CONFIG: { mergeOriginalDstLbConfig(other.getOriginalDstLbConfig()); break; } case LEAST_REQUEST_LB_CONFIG: { mergeLeastRequestLbConfig(other.getLeastRequestLbConfig()); break; } case ROUND_ROBIN_LB_CONFIG: { mergeRoundRobinLbConfig(other.getRoundRobinLbConfig()); break; } case LBCONFIG_NOT_SET: { break; } } 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 { io.envoyproxy.envoy.config.cluster.v3.Cluster parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.cluster.v3.Cluster) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int clusterDiscoveryTypeCase_ = 0; private java.lang.Object clusterDiscoveryType_; public ClusterDiscoveryTypeCase getClusterDiscoveryTypeCase() { return ClusterDiscoveryTypeCase.forNumber( clusterDiscoveryTypeCase_); } public Builder clearClusterDiscoveryType() { clusterDiscoveryTypeCase_ = 0; clusterDiscoveryType_ = null; onChanged(); return this; } private int lbConfigCase_ = 0; private java.lang.Object lbConfig_; public LbConfigCase getLbConfigCase() { return LbConfigCase.forNumber( lbConfigCase_); } public Builder clearLbConfig() { lbConfigCase_ = 0; lbConfig_ = null; onChanged(); return this; } private int bitField0_; private java.util.List transportSocketMatches_ = java.util.Collections.emptyList(); private void ensureTransportSocketMatchesIsMutable() { if (!((bitField0_ & 0x00000001) != 0)) { transportSocketMatches_ = new java.util.ArrayList(transportSocketMatches_); bitField0_ |= 0x00000001; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch, io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatchOrBuilder> transportSocketMatchesBuilder_; /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public java.util.List getTransportSocketMatchesList() { if (transportSocketMatchesBuilder_ == null) { return java.util.Collections.unmodifiableList(transportSocketMatches_); } else { return transportSocketMatchesBuilder_.getMessageList(); } } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public int getTransportSocketMatchesCount() { if (transportSocketMatchesBuilder_ == null) { return transportSocketMatches_.size(); } else { return transportSocketMatchesBuilder_.getCount(); } } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch getTransportSocketMatches(int index) { if (transportSocketMatchesBuilder_ == null) { return transportSocketMatches_.get(index); } else { return transportSocketMatchesBuilder_.getMessage(index); } } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public Builder setTransportSocketMatches( int index, io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch value) { if (transportSocketMatchesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureTransportSocketMatchesIsMutable(); transportSocketMatches_.set(index, value); onChanged(); } else { transportSocketMatchesBuilder_.setMessage(index, value); } return this; } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public Builder setTransportSocketMatches( int index, io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.Builder builderForValue) { if (transportSocketMatchesBuilder_ == null) { ensureTransportSocketMatchesIsMutable(); transportSocketMatches_.set(index, builderForValue.build()); onChanged(); } else { transportSocketMatchesBuilder_.setMessage(index, builderForValue.build()); } return this; } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public Builder addTransportSocketMatches(io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch value) { if (transportSocketMatchesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureTransportSocketMatchesIsMutable(); transportSocketMatches_.add(value); onChanged(); } else { transportSocketMatchesBuilder_.addMessage(value); } return this; } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public Builder addTransportSocketMatches( int index, io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch value) { if (transportSocketMatchesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureTransportSocketMatchesIsMutable(); transportSocketMatches_.add(index, value); onChanged(); } else { transportSocketMatchesBuilder_.addMessage(index, value); } return this; } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public Builder addTransportSocketMatches( io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.Builder builderForValue) { if (transportSocketMatchesBuilder_ == null) { ensureTransportSocketMatchesIsMutable(); transportSocketMatches_.add(builderForValue.build()); onChanged(); } else { transportSocketMatchesBuilder_.addMessage(builderForValue.build()); } return this; } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public Builder addTransportSocketMatches( int index, io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.Builder builderForValue) { if (transportSocketMatchesBuilder_ == null) { ensureTransportSocketMatchesIsMutable(); transportSocketMatches_.add(index, builderForValue.build()); onChanged(); } else { transportSocketMatchesBuilder_.addMessage(index, builderForValue.build()); } return this; } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public Builder addAllTransportSocketMatches( java.lang.Iterable values) { if (transportSocketMatchesBuilder_ == null) { ensureTransportSocketMatchesIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, transportSocketMatches_); onChanged(); } else { transportSocketMatchesBuilder_.addAllMessages(values); } return this; } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public Builder clearTransportSocketMatches() { if (transportSocketMatchesBuilder_ == null) { transportSocketMatches_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); } else { transportSocketMatchesBuilder_.clear(); } return this; } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public Builder removeTransportSocketMatches(int index) { if (transportSocketMatchesBuilder_ == null) { ensureTransportSocketMatchesIsMutable(); transportSocketMatches_.remove(index); onChanged(); } else { transportSocketMatchesBuilder_.remove(index); } return this; } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.Builder getTransportSocketMatchesBuilder( int index) { return getTransportSocketMatchesFieldBuilder().getBuilder(index); } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatchOrBuilder getTransportSocketMatchesOrBuilder( int index) { if (transportSocketMatchesBuilder_ == null) { return transportSocketMatches_.get(index); } else { return transportSocketMatchesBuilder_.getMessageOrBuilder(index); } } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public java.util.List getTransportSocketMatchesOrBuilderList() { if (transportSocketMatchesBuilder_ != null) { return transportSocketMatchesBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(transportSocketMatches_); } } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.Builder addTransportSocketMatchesBuilder() { return getTransportSocketMatchesFieldBuilder().addBuilder( io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.getDefaultInstance()); } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.Builder addTransportSocketMatchesBuilder( int index) { return getTransportSocketMatchesFieldBuilder().addBuilder( index, io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.getDefaultInstance()); } /** *
     * Configuration to use different transport sockets for different endpoints.
     * The entry of ``envoy.transport_socket_match`` in the
     * :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
     * is used to match against the transport sockets as they appear in the list. The first
     * :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
     * For example, with the following match
     * .. code-block:: yaml
     *  transport_socket_matches:
     *  - name: "enableMTLS"
     *    match:
     *      acceptMTLS: true
     *    transport_socket:
     *      name: envoy.transport_sockets.tls
     *      config: { ... } # tls socket configuration
     *  - name: "defaultToPlaintext"
     *    match: {}
     *    transport_socket:
     *      name: envoy.transport_sockets.raw_buffer
     * Connections to the endpoints whose metadata value under ``envoy.transport_socket_match``
     * having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
     * If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
     * criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
     * socket match in case above.
     * If an endpoint metadata's value under ``envoy.transport_socket_match`` does not match any
     * ``TransportSocketMatch``, socket configuration fallbacks to use the ``tls_context`` or
     * ``transport_socket`` specified in this cluster.
     * This field allows gradual and flexible transport socket configuration changes.
     * The metadata of endpoints in EDS can indicate transport socket capabilities. For example,
     * an endpoint's metadata can have two key value pairs as "acceptMTLS": "true",
     * "acceptPlaintext": "true". While some other endpoints, only accepting plaintext traffic
     * has "acceptPlaintext": "true" metadata information.
     * Then the xDS server can configure the CDS to a client, Envoy A, to send mutual TLS
     * traffic for endpoints with "acceptMTLS": "true", by adding a corresponding
     * ``TransportSocketMatch`` in this field. Other client Envoys receive CDS without
     * ``transport_socket_match`` set, and still send plain text traffic to the same cluster.
     * This field can be used to specify custom transport socket configurations for health
     * checks by adding matching key/value pairs in a health check's
     * :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
     * [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
     * 
* * repeated .envoy.config.cluster.v3.Cluster.TransportSocketMatch transport_socket_matches = 43; */ public java.util.List getTransportSocketMatchesBuilderList() { return getTransportSocketMatchesFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch, io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatchOrBuilder> getTransportSocketMatchesFieldBuilder() { if (transportSocketMatchesBuilder_ == null) { transportSocketMatchesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch, io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatchOrBuilder>( transportSocketMatches_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); transportSocketMatches_ = null; } return transportSocketMatchesBuilder_; } private java.lang.Object name_ = ""; /** *
     * Supplies the name of the cluster which must be unique across all clusters.
     * The cluster name is used when emitting
     * :ref:`statistics <config_cluster_manager_cluster_stats>` if :ref:`alt_stat_name
     * <envoy_v3_api_field_config.cluster.v3.Cluster.alt_stat_name>` is not provided.
     * Any ``:`` in the cluster name will be converted to ``_`` when emitting statistics.
     * 
* * string name = 1 [(.validate.rules) = { ... } * @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; } } /** *
     * Supplies the name of the cluster which must be unique across all clusters.
     * The cluster name is used when emitting
     * :ref:`statistics <config_cluster_manager_cluster_stats>` if :ref:`alt_stat_name
     * <envoy_v3_api_field_config.cluster.v3.Cluster.alt_stat_name>` is not provided.
     * Any ``:`` in the cluster name will be converted to ``_`` when emitting statistics.
     * 
* * string name = 1 [(.validate.rules) = { ... } * @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; } } /** *
     * Supplies the name of the cluster which must be unique across all clusters.
     * The cluster name is used when emitting
     * :ref:`statistics <config_cluster_manager_cluster_stats>` if :ref:`alt_stat_name
     * <envoy_v3_api_field_config.cluster.v3.Cluster.alt_stat_name>` is not provided.
     * Any ``:`` in the cluster name will be converted to ``_`` when emitting statistics.
     * 
* * string name = 1 [(.validate.rules) = { ... } * @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; } /** *
     * Supplies the name of the cluster which must be unique across all clusters.
     * The cluster name is used when emitting
     * :ref:`statistics <config_cluster_manager_cluster_stats>` if :ref:`alt_stat_name
     * <envoy_v3_api_field_config.cluster.v3.Cluster.alt_stat_name>` is not provided.
     * Any ``:`` in the cluster name will be converted to ``_`` when emitting statistics.
     * 
* * string name = 1 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearName() { name_ = getDefaultInstance().getName(); onChanged(); return this; } /** *
     * Supplies the name of the cluster which must be unique across all clusters.
     * The cluster name is used when emitting
     * :ref:`statistics <config_cluster_manager_cluster_stats>` if :ref:`alt_stat_name
     * <envoy_v3_api_field_config.cluster.v3.Cluster.alt_stat_name>` is not provided.
     * Any ``:`` in the cluster name will be converted to ``_`` when emitting statistics.
     * 
* * string name = 1 [(.validate.rules) = { ... } * @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 altStatName_ = ""; /** *
     * An optional alternative to the cluster name to be used for observability. This name is used
     * emitting stats for the cluster and access logging the cluster name. This will appear as
     * additional information in configuration dumps of a cluster's current status as
     * :ref:`observability_name <envoy_v3_api_field_admin.v3.ClusterStatus.observability_name>`
     * and as an additional tag "upstream_cluster.name" while tracing. Note: Any ``:`` in the name
     * will be converted to ``_`` when emitting statistics. This should not be confused with
     * :ref:`Router Filter Header <config_http_filters_router_x-envoy-upstream-alt-stat-name>`.
     * 
* * string alt_stat_name = 28 [(.udpa.annotations.field_migrate) = { ... } * @return The altStatName. */ public java.lang.String getAltStatName() { java.lang.Object ref = altStatName_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); altStatName_ = s; return s; } else { return (java.lang.String) ref; } } /** *
     * An optional alternative to the cluster name to be used for observability. This name is used
     * emitting stats for the cluster and access logging the cluster name. This will appear as
     * additional information in configuration dumps of a cluster's current status as
     * :ref:`observability_name <envoy_v3_api_field_admin.v3.ClusterStatus.observability_name>`
     * and as an additional tag "upstream_cluster.name" while tracing. Note: Any ``:`` in the name
     * will be converted to ``_`` when emitting statistics. This should not be confused with
     * :ref:`Router Filter Header <config_http_filters_router_x-envoy-upstream-alt-stat-name>`.
     * 
* * string alt_stat_name = 28 [(.udpa.annotations.field_migrate) = { ... } * @return The bytes for altStatName. */ public com.google.protobuf.ByteString getAltStatNameBytes() { java.lang.Object ref = altStatName_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); altStatName_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * An optional alternative to the cluster name to be used for observability. This name is used
     * emitting stats for the cluster and access logging the cluster name. This will appear as
     * additional information in configuration dumps of a cluster's current status as
     * :ref:`observability_name <envoy_v3_api_field_admin.v3.ClusterStatus.observability_name>`
     * and as an additional tag "upstream_cluster.name" while tracing. Note: Any ``:`` in the name
     * will be converted to ``_`` when emitting statistics. This should not be confused with
     * :ref:`Router Filter Header <config_http_filters_router_x-envoy-upstream-alt-stat-name>`.
     * 
* * string alt_stat_name = 28 [(.udpa.annotations.field_migrate) = { ... } * @param value The altStatName to set. * @return This builder for chaining. */ public Builder setAltStatName( java.lang.String value) { if (value == null) { throw new NullPointerException(); } altStatName_ = value; onChanged(); return this; } /** *
     * An optional alternative to the cluster name to be used for observability. This name is used
     * emitting stats for the cluster and access logging the cluster name. This will appear as
     * additional information in configuration dumps of a cluster's current status as
     * :ref:`observability_name <envoy_v3_api_field_admin.v3.ClusterStatus.observability_name>`
     * and as an additional tag "upstream_cluster.name" while tracing. Note: Any ``:`` in the name
     * will be converted to ``_`` when emitting statistics. This should not be confused with
     * :ref:`Router Filter Header <config_http_filters_router_x-envoy-upstream-alt-stat-name>`.
     * 
* * string alt_stat_name = 28 [(.udpa.annotations.field_migrate) = { ... } * @return This builder for chaining. */ public Builder clearAltStatName() { altStatName_ = getDefaultInstance().getAltStatName(); onChanged(); return this; } /** *
     * An optional alternative to the cluster name to be used for observability. This name is used
     * emitting stats for the cluster and access logging the cluster name. This will appear as
     * additional information in configuration dumps of a cluster's current status as
     * :ref:`observability_name <envoy_v3_api_field_admin.v3.ClusterStatus.observability_name>`
     * and as an additional tag "upstream_cluster.name" while tracing. Note: Any ``:`` in the name
     * will be converted to ``_`` when emitting statistics. This should not be confused with
     * :ref:`Router Filter Header <config_http_filters_router_x-envoy-upstream-alt-stat-name>`.
     * 
* * string alt_stat_name = 28 [(.udpa.annotations.field_migrate) = { ... } * @param value The bytes for altStatName to set. * @return This builder for chaining. */ public Builder setAltStatNameBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); altStatName_ = value; onChanged(); return this; } /** *
     * The :ref:`service discovery type <arch_overview_service_discovery_types>`
     * to use for resolving the cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.DiscoveryType type = 2 [(.validate.rules) = { ... } * @return Whether the type field is set. */ @java.lang.Override public boolean hasType() { return clusterDiscoveryTypeCase_ == 2; } /** *
     * The :ref:`service discovery type <arch_overview_service_discovery_types>`
     * to use for resolving the cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.DiscoveryType type = 2 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for type. */ @java.lang.Override public int getTypeValue() { if (clusterDiscoveryTypeCase_ == 2) { return ((java.lang.Integer) clusterDiscoveryType_).intValue(); } return 0; } /** *
     * The :ref:`service discovery type <arch_overview_service_discovery_types>`
     * to use for resolving the cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.DiscoveryType type = 2 [(.validate.rules) = { ... } * @param value The enum numeric value on the wire for type to set. * @return This builder for chaining. */ public Builder setTypeValue(int value) { clusterDiscoveryTypeCase_ = 2; clusterDiscoveryType_ = value; onChanged(); return this; } /** *
     * The :ref:`service discovery type <arch_overview_service_discovery_types>`
     * to use for resolving the cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.DiscoveryType type = 2 [(.validate.rules) = { ... } * @return The type. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.DiscoveryType getType() { if (clusterDiscoveryTypeCase_ == 2) { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.DiscoveryType result = io.envoyproxy.envoy.config.cluster.v3.Cluster.DiscoveryType.valueOf( (java.lang.Integer) clusterDiscoveryType_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.DiscoveryType.UNRECOGNIZED : result; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.DiscoveryType.STATIC; } /** *
     * The :ref:`service discovery type <arch_overview_service_discovery_types>`
     * to use for resolving the cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.DiscoveryType type = 2 [(.validate.rules) = { ... } * @param value The type to set. * @return This builder for chaining. */ public Builder setType(io.envoyproxy.envoy.config.cluster.v3.Cluster.DiscoveryType value) { if (value == null) { throw new NullPointerException(); } clusterDiscoveryTypeCase_ = 2; clusterDiscoveryType_ = value.getNumber(); onChanged(); return this; } /** *
     * The :ref:`service discovery type <arch_overview_service_discovery_types>`
     * to use for resolving the cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.DiscoveryType type = 2 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearType() { if (clusterDiscoveryTypeCase_ == 2) { clusterDiscoveryTypeCase_ = 0; clusterDiscoveryType_ = null; onChanged(); } return this; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType, io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterTypeOrBuilder> clusterTypeBuilder_; /** *
     * The custom cluster type.
     * 
* * .envoy.config.cluster.v3.Cluster.CustomClusterType cluster_type = 38; * @return Whether the clusterType field is set. */ @java.lang.Override public boolean hasClusterType() { return clusterDiscoveryTypeCase_ == 38; } /** *
     * The custom cluster type.
     * 
* * .envoy.config.cluster.v3.Cluster.CustomClusterType cluster_type = 38; * @return The clusterType. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType getClusterType() { if (clusterTypeBuilder_ == null) { if (clusterDiscoveryTypeCase_ == 38) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType) clusterDiscoveryType_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.getDefaultInstance(); } else { if (clusterDiscoveryTypeCase_ == 38) { return clusterTypeBuilder_.getMessage(); } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.getDefaultInstance(); } } /** *
     * The custom cluster type.
     * 
* * .envoy.config.cluster.v3.Cluster.CustomClusterType cluster_type = 38; */ public Builder setClusterType(io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType value) { if (clusterTypeBuilder_ == null) { if (value == null) { throw new NullPointerException(); } clusterDiscoveryType_ = value; onChanged(); } else { clusterTypeBuilder_.setMessage(value); } clusterDiscoveryTypeCase_ = 38; return this; } /** *
     * The custom cluster type.
     * 
* * .envoy.config.cluster.v3.Cluster.CustomClusterType cluster_type = 38; */ public Builder setClusterType( io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.Builder builderForValue) { if (clusterTypeBuilder_ == null) { clusterDiscoveryType_ = builderForValue.build(); onChanged(); } else { clusterTypeBuilder_.setMessage(builderForValue.build()); } clusterDiscoveryTypeCase_ = 38; return this; } /** *
     * The custom cluster type.
     * 
* * .envoy.config.cluster.v3.Cluster.CustomClusterType cluster_type = 38; */ public Builder mergeClusterType(io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType value) { if (clusterTypeBuilder_ == null) { if (clusterDiscoveryTypeCase_ == 38 && clusterDiscoveryType_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.getDefaultInstance()) { clusterDiscoveryType_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.newBuilder((io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType) clusterDiscoveryType_) .mergeFrom(value).buildPartial(); } else { clusterDiscoveryType_ = value; } onChanged(); } else { if (clusterDiscoveryTypeCase_ == 38) { clusterTypeBuilder_.mergeFrom(value); } else { clusterTypeBuilder_.setMessage(value); } } clusterDiscoveryTypeCase_ = 38; return this; } /** *
     * The custom cluster type.
     * 
* * .envoy.config.cluster.v3.Cluster.CustomClusterType cluster_type = 38; */ public Builder clearClusterType() { if (clusterTypeBuilder_ == null) { if (clusterDiscoveryTypeCase_ == 38) { clusterDiscoveryTypeCase_ = 0; clusterDiscoveryType_ = null; onChanged(); } } else { if (clusterDiscoveryTypeCase_ == 38) { clusterDiscoveryTypeCase_ = 0; clusterDiscoveryType_ = null; } clusterTypeBuilder_.clear(); } return this; } /** *
     * The custom cluster type.
     * 
* * .envoy.config.cluster.v3.Cluster.CustomClusterType cluster_type = 38; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.Builder getClusterTypeBuilder() { return getClusterTypeFieldBuilder().getBuilder(); } /** *
     * The custom cluster type.
     * 
* * .envoy.config.cluster.v3.Cluster.CustomClusterType cluster_type = 38; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterTypeOrBuilder getClusterTypeOrBuilder() { if ((clusterDiscoveryTypeCase_ == 38) && (clusterTypeBuilder_ != null)) { return clusterTypeBuilder_.getMessageOrBuilder(); } else { if (clusterDiscoveryTypeCase_ == 38) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType) clusterDiscoveryType_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.getDefaultInstance(); } } /** *
     * The custom cluster type.
     * 
* * .envoy.config.cluster.v3.Cluster.CustomClusterType cluster_type = 38; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType, io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterTypeOrBuilder> getClusterTypeFieldBuilder() { if (clusterTypeBuilder_ == null) { if (!(clusterDiscoveryTypeCase_ == 38)) { clusterDiscoveryType_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.getDefaultInstance(); } clusterTypeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType, io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterTypeOrBuilder>( (io.envoyproxy.envoy.config.cluster.v3.Cluster.CustomClusterType) clusterDiscoveryType_, getParentForChildren(), isClean()); clusterDiscoveryType_ = null; } clusterDiscoveryTypeCase_ = 38; onChanged();; return clusterTypeBuilder_; } private io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig edsClusterConfig_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfigOrBuilder> edsClusterConfigBuilder_; /** *
     * Configuration to use for EDS updates for the Cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.EdsClusterConfig eds_cluster_config = 3; * @return Whether the edsClusterConfig field is set. */ public boolean hasEdsClusterConfig() { return edsClusterConfigBuilder_ != null || edsClusterConfig_ != null; } /** *
     * Configuration to use for EDS updates for the Cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.EdsClusterConfig eds_cluster_config = 3; * @return The edsClusterConfig. */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig getEdsClusterConfig() { if (edsClusterConfigBuilder_ == null) { return edsClusterConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.getDefaultInstance() : edsClusterConfig_; } else { return edsClusterConfigBuilder_.getMessage(); } } /** *
     * Configuration to use for EDS updates for the Cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.EdsClusterConfig eds_cluster_config = 3; */ public Builder setEdsClusterConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig value) { if (edsClusterConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } edsClusterConfig_ = value; onChanged(); } else { edsClusterConfigBuilder_.setMessage(value); } return this; } /** *
     * Configuration to use for EDS updates for the Cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.EdsClusterConfig eds_cluster_config = 3; */ public Builder setEdsClusterConfig( io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.Builder builderForValue) { if (edsClusterConfigBuilder_ == null) { edsClusterConfig_ = builderForValue.build(); onChanged(); } else { edsClusterConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Configuration to use for EDS updates for the Cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.EdsClusterConfig eds_cluster_config = 3; */ public Builder mergeEdsClusterConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig value) { if (edsClusterConfigBuilder_ == null) { if (edsClusterConfig_ != null) { edsClusterConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.newBuilder(edsClusterConfig_).mergeFrom(value).buildPartial(); } else { edsClusterConfig_ = value; } onChanged(); } else { edsClusterConfigBuilder_.mergeFrom(value); } return this; } /** *
     * Configuration to use for EDS updates for the Cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.EdsClusterConfig eds_cluster_config = 3; */ public Builder clearEdsClusterConfig() { if (edsClusterConfigBuilder_ == null) { edsClusterConfig_ = null; onChanged(); } else { edsClusterConfig_ = null; edsClusterConfigBuilder_ = null; } return this; } /** *
     * Configuration to use for EDS updates for the Cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.EdsClusterConfig eds_cluster_config = 3; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.Builder getEdsClusterConfigBuilder() { onChanged(); return getEdsClusterConfigFieldBuilder().getBuilder(); } /** *
     * Configuration to use for EDS updates for the Cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.EdsClusterConfig eds_cluster_config = 3; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfigOrBuilder getEdsClusterConfigOrBuilder() { if (edsClusterConfigBuilder_ != null) { return edsClusterConfigBuilder_.getMessageOrBuilder(); } else { return edsClusterConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.getDefaultInstance() : edsClusterConfig_; } } /** *
     * Configuration to use for EDS updates for the Cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.EdsClusterConfig eds_cluster_config = 3; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfigOrBuilder> getEdsClusterConfigFieldBuilder() { if (edsClusterConfigBuilder_ == null) { edsClusterConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfigOrBuilder>( getEdsClusterConfig(), getParentForChildren(), isClean()); edsClusterConfig_ = null; } return edsClusterConfigBuilder_; } private com.google.protobuf.Duration connectTimeout_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> connectTimeoutBuilder_; /** *
     * The timeout for new network connections to hosts in the cluster.
     * If not set, a default value of 5s will be used.
     * 
* * .google.protobuf.Duration connect_timeout = 4 [(.validate.rules) = { ... } * @return Whether the connectTimeout field is set. */ public boolean hasConnectTimeout() { return connectTimeoutBuilder_ != null || connectTimeout_ != null; } /** *
     * The timeout for new network connections to hosts in the cluster.
     * If not set, a default value of 5s will be used.
     * 
* * .google.protobuf.Duration connect_timeout = 4 [(.validate.rules) = { ... } * @return The connectTimeout. */ public com.google.protobuf.Duration getConnectTimeout() { if (connectTimeoutBuilder_ == null) { return connectTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : connectTimeout_; } else { return connectTimeoutBuilder_.getMessage(); } } /** *
     * The timeout for new network connections to hosts in the cluster.
     * If not set, a default value of 5s will be used.
     * 
* * .google.protobuf.Duration connect_timeout = 4 [(.validate.rules) = { ... } */ public Builder setConnectTimeout(com.google.protobuf.Duration value) { if (connectTimeoutBuilder_ == null) { if (value == null) { throw new NullPointerException(); } connectTimeout_ = value; onChanged(); } else { connectTimeoutBuilder_.setMessage(value); } return this; } /** *
     * The timeout for new network connections to hosts in the cluster.
     * If not set, a default value of 5s will be used.
     * 
* * .google.protobuf.Duration connect_timeout = 4 [(.validate.rules) = { ... } */ public Builder setConnectTimeout( com.google.protobuf.Duration.Builder builderForValue) { if (connectTimeoutBuilder_ == null) { connectTimeout_ = builderForValue.build(); onChanged(); } else { connectTimeoutBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * The timeout for new network connections to hosts in the cluster.
     * If not set, a default value of 5s will be used.
     * 
* * .google.protobuf.Duration connect_timeout = 4 [(.validate.rules) = { ... } */ public Builder mergeConnectTimeout(com.google.protobuf.Duration value) { if (connectTimeoutBuilder_ == null) { if (connectTimeout_ != null) { connectTimeout_ = com.google.protobuf.Duration.newBuilder(connectTimeout_).mergeFrom(value).buildPartial(); } else { connectTimeout_ = value; } onChanged(); } else { connectTimeoutBuilder_.mergeFrom(value); } return this; } /** *
     * The timeout for new network connections to hosts in the cluster.
     * If not set, a default value of 5s will be used.
     * 
* * .google.protobuf.Duration connect_timeout = 4 [(.validate.rules) = { ... } */ public Builder clearConnectTimeout() { if (connectTimeoutBuilder_ == null) { connectTimeout_ = null; onChanged(); } else { connectTimeout_ = null; connectTimeoutBuilder_ = null; } return this; } /** *
     * The timeout for new network connections to hosts in the cluster.
     * If not set, a default value of 5s will be used.
     * 
* * .google.protobuf.Duration connect_timeout = 4 [(.validate.rules) = { ... } */ public com.google.protobuf.Duration.Builder getConnectTimeoutBuilder() { onChanged(); return getConnectTimeoutFieldBuilder().getBuilder(); } /** *
     * The timeout for new network connections to hosts in the cluster.
     * If not set, a default value of 5s will be used.
     * 
* * .google.protobuf.Duration connect_timeout = 4 [(.validate.rules) = { ... } */ public com.google.protobuf.DurationOrBuilder getConnectTimeoutOrBuilder() { if (connectTimeoutBuilder_ != null) { return connectTimeoutBuilder_.getMessageOrBuilder(); } else { return connectTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : connectTimeout_; } } /** *
     * The timeout for new network connections to hosts in the cluster.
     * If not set, a default value of 5s will be used.
     * 
* * .google.protobuf.Duration connect_timeout = 4 [(.validate.rules) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getConnectTimeoutFieldBuilder() { if (connectTimeoutBuilder_ == null) { connectTimeoutBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getConnectTimeout(), getParentForChildren(), isClean()); connectTimeout_ = null; } return connectTimeoutBuilder_; } private com.google.protobuf.UInt32Value perConnectionBufferLimitBytes_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder> perConnectionBufferLimitBytesBuilder_; /** *
     * Soft limit on size of the cluster’s connections read and write buffers. If
     * unspecified, an implementation defined default is applied (1MiB).
     * 
* * .google.protobuf.UInt32Value per_connection_buffer_limit_bytes = 5 [(.udpa.annotations.security) = { ... } * @return Whether the perConnectionBufferLimitBytes field is set. */ public boolean hasPerConnectionBufferLimitBytes() { return perConnectionBufferLimitBytesBuilder_ != null || perConnectionBufferLimitBytes_ != null; } /** *
     * Soft limit on size of the cluster’s connections read and write buffers. If
     * unspecified, an implementation defined default is applied (1MiB).
     * 
* * .google.protobuf.UInt32Value per_connection_buffer_limit_bytes = 5 [(.udpa.annotations.security) = { ... } * @return The perConnectionBufferLimitBytes. */ public com.google.protobuf.UInt32Value getPerConnectionBufferLimitBytes() { if (perConnectionBufferLimitBytesBuilder_ == null) { return perConnectionBufferLimitBytes_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : perConnectionBufferLimitBytes_; } else { return perConnectionBufferLimitBytesBuilder_.getMessage(); } } /** *
     * Soft limit on size of the cluster’s connections read and write buffers. If
     * unspecified, an implementation defined default is applied (1MiB).
     * 
* * .google.protobuf.UInt32Value per_connection_buffer_limit_bytes = 5 [(.udpa.annotations.security) = { ... } */ public Builder setPerConnectionBufferLimitBytes(com.google.protobuf.UInt32Value value) { if (perConnectionBufferLimitBytesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } perConnectionBufferLimitBytes_ = value; onChanged(); } else { perConnectionBufferLimitBytesBuilder_.setMessage(value); } return this; } /** *
     * Soft limit on size of the cluster’s connections read and write buffers. If
     * unspecified, an implementation defined default is applied (1MiB).
     * 
* * .google.protobuf.UInt32Value per_connection_buffer_limit_bytes = 5 [(.udpa.annotations.security) = { ... } */ public Builder setPerConnectionBufferLimitBytes( com.google.protobuf.UInt32Value.Builder builderForValue) { if (perConnectionBufferLimitBytesBuilder_ == null) { perConnectionBufferLimitBytes_ = builderForValue.build(); onChanged(); } else { perConnectionBufferLimitBytesBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Soft limit on size of the cluster’s connections read and write buffers. If
     * unspecified, an implementation defined default is applied (1MiB).
     * 
* * .google.protobuf.UInt32Value per_connection_buffer_limit_bytes = 5 [(.udpa.annotations.security) = { ... } */ public Builder mergePerConnectionBufferLimitBytes(com.google.protobuf.UInt32Value value) { if (perConnectionBufferLimitBytesBuilder_ == null) { if (perConnectionBufferLimitBytes_ != null) { perConnectionBufferLimitBytes_ = com.google.protobuf.UInt32Value.newBuilder(perConnectionBufferLimitBytes_).mergeFrom(value).buildPartial(); } else { perConnectionBufferLimitBytes_ = value; } onChanged(); } else { perConnectionBufferLimitBytesBuilder_.mergeFrom(value); } return this; } /** *
     * Soft limit on size of the cluster’s connections read and write buffers. If
     * unspecified, an implementation defined default is applied (1MiB).
     * 
* * .google.protobuf.UInt32Value per_connection_buffer_limit_bytes = 5 [(.udpa.annotations.security) = { ... } */ public Builder clearPerConnectionBufferLimitBytes() { if (perConnectionBufferLimitBytesBuilder_ == null) { perConnectionBufferLimitBytes_ = null; onChanged(); } else { perConnectionBufferLimitBytes_ = null; perConnectionBufferLimitBytesBuilder_ = null; } return this; } /** *
     * Soft limit on size of the cluster’s connections read and write buffers. If
     * unspecified, an implementation defined default is applied (1MiB).
     * 
* * .google.protobuf.UInt32Value per_connection_buffer_limit_bytes = 5 [(.udpa.annotations.security) = { ... } */ public com.google.protobuf.UInt32Value.Builder getPerConnectionBufferLimitBytesBuilder() { onChanged(); return getPerConnectionBufferLimitBytesFieldBuilder().getBuilder(); } /** *
     * Soft limit on size of the cluster’s connections read and write buffers. If
     * unspecified, an implementation defined default is applied (1MiB).
     * 
* * .google.protobuf.UInt32Value per_connection_buffer_limit_bytes = 5 [(.udpa.annotations.security) = { ... } */ public com.google.protobuf.UInt32ValueOrBuilder getPerConnectionBufferLimitBytesOrBuilder() { if (perConnectionBufferLimitBytesBuilder_ != null) { return perConnectionBufferLimitBytesBuilder_.getMessageOrBuilder(); } else { return perConnectionBufferLimitBytes_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : perConnectionBufferLimitBytes_; } } /** *
     * Soft limit on size of the cluster’s connections read and write buffers. If
     * unspecified, an implementation defined default is applied (1MiB).
     * 
* * .google.protobuf.UInt32Value per_connection_buffer_limit_bytes = 5 [(.udpa.annotations.security) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder> getPerConnectionBufferLimitBytesFieldBuilder() { if (perConnectionBufferLimitBytesBuilder_ == null) { perConnectionBufferLimitBytesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder>( getPerConnectionBufferLimitBytes(), getParentForChildren(), isClean()); perConnectionBufferLimitBytes_ = null; } return perConnectionBufferLimitBytesBuilder_; } private int lbPolicy_ = 0; /** *
     * The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
     * when picking a host in the cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.LbPolicy lb_policy = 6 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for lbPolicy. */ @java.lang.Override public int getLbPolicyValue() { return lbPolicy_; } /** *
     * The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
     * when picking a host in the cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.LbPolicy lb_policy = 6 [(.validate.rules) = { ... } * @param value The enum numeric value on the wire for lbPolicy to set. * @return This builder for chaining. */ public Builder setLbPolicyValue(int value) { lbPolicy_ = value; onChanged(); return this; } /** *
     * The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
     * when picking a host in the cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.LbPolicy lb_policy = 6 [(.validate.rules) = { ... } * @return The lbPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbPolicy getLbPolicy() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.LbPolicy result = io.envoyproxy.envoy.config.cluster.v3.Cluster.LbPolicy.valueOf(lbPolicy_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.LbPolicy.UNRECOGNIZED : result; } /** *
     * The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
     * when picking a host in the cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.LbPolicy lb_policy = 6 [(.validate.rules) = { ... } * @param value The lbPolicy to set. * @return This builder for chaining. */ public Builder setLbPolicy(io.envoyproxy.envoy.config.cluster.v3.Cluster.LbPolicy value) { if (value == null) { throw new NullPointerException(); } lbPolicy_ = value.getNumber(); onChanged(); return this; } /** *
     * The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
     * when picking a host in the cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.LbPolicy lb_policy = 6 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearLbPolicy() { lbPolicy_ = 0; onChanged(); return this; } private io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment loadAssignment_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment, io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment.Builder, io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignmentOrBuilder> loadAssignmentBuilder_; /** *
     * Setting this is required for specifying members of
     * :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
     * This field supersedes the ``hosts`` field in the v2 API.
     * .. attention::
     *   Setting this allows non-EDS cluster types to contain embedded EDS equivalent
     *   :ref:`endpoint assignments<envoy_v3_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
     * 
* * .envoy.config.endpoint.v3.ClusterLoadAssignment load_assignment = 33; * @return Whether the loadAssignment field is set. */ public boolean hasLoadAssignment() { return loadAssignmentBuilder_ != null || loadAssignment_ != null; } /** *
     * Setting this is required for specifying members of
     * :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
     * This field supersedes the ``hosts`` field in the v2 API.
     * .. attention::
     *   Setting this allows non-EDS cluster types to contain embedded EDS equivalent
     *   :ref:`endpoint assignments<envoy_v3_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
     * 
* * .envoy.config.endpoint.v3.ClusterLoadAssignment load_assignment = 33; * @return The loadAssignment. */ public io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment getLoadAssignment() { if (loadAssignmentBuilder_ == null) { return loadAssignment_ == null ? io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment.getDefaultInstance() : loadAssignment_; } else { return loadAssignmentBuilder_.getMessage(); } } /** *
     * Setting this is required for specifying members of
     * :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
     * This field supersedes the ``hosts`` field in the v2 API.
     * .. attention::
     *   Setting this allows non-EDS cluster types to contain embedded EDS equivalent
     *   :ref:`endpoint assignments<envoy_v3_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
     * 
* * .envoy.config.endpoint.v3.ClusterLoadAssignment load_assignment = 33; */ public Builder setLoadAssignment(io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment value) { if (loadAssignmentBuilder_ == null) { if (value == null) { throw new NullPointerException(); } loadAssignment_ = value; onChanged(); } else { loadAssignmentBuilder_.setMessage(value); } return this; } /** *
     * Setting this is required for specifying members of
     * :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
     * This field supersedes the ``hosts`` field in the v2 API.
     * .. attention::
     *   Setting this allows non-EDS cluster types to contain embedded EDS equivalent
     *   :ref:`endpoint assignments<envoy_v3_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
     * 
* * .envoy.config.endpoint.v3.ClusterLoadAssignment load_assignment = 33; */ public Builder setLoadAssignment( io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment.Builder builderForValue) { if (loadAssignmentBuilder_ == null) { loadAssignment_ = builderForValue.build(); onChanged(); } else { loadAssignmentBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Setting this is required for specifying members of
     * :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
     * This field supersedes the ``hosts`` field in the v2 API.
     * .. attention::
     *   Setting this allows non-EDS cluster types to contain embedded EDS equivalent
     *   :ref:`endpoint assignments<envoy_v3_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
     * 
* * .envoy.config.endpoint.v3.ClusterLoadAssignment load_assignment = 33; */ public Builder mergeLoadAssignment(io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment value) { if (loadAssignmentBuilder_ == null) { if (loadAssignment_ != null) { loadAssignment_ = io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment.newBuilder(loadAssignment_).mergeFrom(value).buildPartial(); } else { loadAssignment_ = value; } onChanged(); } else { loadAssignmentBuilder_.mergeFrom(value); } return this; } /** *
     * Setting this is required for specifying members of
     * :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
     * This field supersedes the ``hosts`` field in the v2 API.
     * .. attention::
     *   Setting this allows non-EDS cluster types to contain embedded EDS equivalent
     *   :ref:`endpoint assignments<envoy_v3_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
     * 
* * .envoy.config.endpoint.v3.ClusterLoadAssignment load_assignment = 33; */ public Builder clearLoadAssignment() { if (loadAssignmentBuilder_ == null) { loadAssignment_ = null; onChanged(); } else { loadAssignment_ = null; loadAssignmentBuilder_ = null; } return this; } /** *
     * Setting this is required for specifying members of
     * :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
     * This field supersedes the ``hosts`` field in the v2 API.
     * .. attention::
     *   Setting this allows non-EDS cluster types to contain embedded EDS equivalent
     *   :ref:`endpoint assignments<envoy_v3_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
     * 
* * .envoy.config.endpoint.v3.ClusterLoadAssignment load_assignment = 33; */ public io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment.Builder getLoadAssignmentBuilder() { onChanged(); return getLoadAssignmentFieldBuilder().getBuilder(); } /** *
     * Setting this is required for specifying members of
     * :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
     * This field supersedes the ``hosts`` field in the v2 API.
     * .. attention::
     *   Setting this allows non-EDS cluster types to contain embedded EDS equivalent
     *   :ref:`endpoint assignments<envoy_v3_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
     * 
* * .envoy.config.endpoint.v3.ClusterLoadAssignment load_assignment = 33; */ public io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignmentOrBuilder getLoadAssignmentOrBuilder() { if (loadAssignmentBuilder_ != null) { return loadAssignmentBuilder_.getMessageOrBuilder(); } else { return loadAssignment_ == null ? io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment.getDefaultInstance() : loadAssignment_; } } /** *
     * Setting this is required for specifying members of
     * :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
     * This field supersedes the ``hosts`` field in the v2 API.
     * .. attention::
     *   Setting this allows non-EDS cluster types to contain embedded EDS equivalent
     *   :ref:`endpoint assignments<envoy_v3_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
     * 
* * .envoy.config.endpoint.v3.ClusterLoadAssignment load_assignment = 33; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment, io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment.Builder, io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignmentOrBuilder> getLoadAssignmentFieldBuilder() { if (loadAssignmentBuilder_ == null) { loadAssignmentBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment, io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment.Builder, io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignmentOrBuilder>( getLoadAssignment(), getParentForChildren(), isClean()); loadAssignment_ = null; } return loadAssignmentBuilder_; } private java.util.List healthChecks_ = java.util.Collections.emptyList(); private void ensureHealthChecksIsMutable() { if (!((bitField0_ & 0x00000002) != 0)) { healthChecks_ = new java.util.ArrayList(healthChecks_); bitField0_ |= 0x00000002; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.HealthCheck, io.envoyproxy.envoy.config.core.v3.HealthCheck.Builder, io.envoyproxy.envoy.config.core.v3.HealthCheckOrBuilder> healthChecksBuilder_; /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public java.util.List getHealthChecksList() { if (healthChecksBuilder_ == null) { return java.util.Collections.unmodifiableList(healthChecks_); } else { return healthChecksBuilder_.getMessageList(); } } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public int getHealthChecksCount() { if (healthChecksBuilder_ == null) { return healthChecks_.size(); } else { return healthChecksBuilder_.getCount(); } } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public io.envoyproxy.envoy.config.core.v3.HealthCheck getHealthChecks(int index) { if (healthChecksBuilder_ == null) { return healthChecks_.get(index); } else { return healthChecksBuilder_.getMessage(index); } } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public Builder setHealthChecks( int index, io.envoyproxy.envoy.config.core.v3.HealthCheck value) { if (healthChecksBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureHealthChecksIsMutable(); healthChecks_.set(index, value); onChanged(); } else { healthChecksBuilder_.setMessage(index, value); } return this; } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public Builder setHealthChecks( int index, io.envoyproxy.envoy.config.core.v3.HealthCheck.Builder builderForValue) { if (healthChecksBuilder_ == null) { ensureHealthChecksIsMutable(); healthChecks_.set(index, builderForValue.build()); onChanged(); } else { healthChecksBuilder_.setMessage(index, builderForValue.build()); } return this; } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public Builder addHealthChecks(io.envoyproxy.envoy.config.core.v3.HealthCheck value) { if (healthChecksBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureHealthChecksIsMutable(); healthChecks_.add(value); onChanged(); } else { healthChecksBuilder_.addMessage(value); } return this; } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public Builder addHealthChecks( int index, io.envoyproxy.envoy.config.core.v3.HealthCheck value) { if (healthChecksBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureHealthChecksIsMutable(); healthChecks_.add(index, value); onChanged(); } else { healthChecksBuilder_.addMessage(index, value); } return this; } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public Builder addHealthChecks( io.envoyproxy.envoy.config.core.v3.HealthCheck.Builder builderForValue) { if (healthChecksBuilder_ == null) { ensureHealthChecksIsMutable(); healthChecks_.add(builderForValue.build()); onChanged(); } else { healthChecksBuilder_.addMessage(builderForValue.build()); } return this; } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public Builder addHealthChecks( int index, io.envoyproxy.envoy.config.core.v3.HealthCheck.Builder builderForValue) { if (healthChecksBuilder_ == null) { ensureHealthChecksIsMutable(); healthChecks_.add(index, builderForValue.build()); onChanged(); } else { healthChecksBuilder_.addMessage(index, builderForValue.build()); } return this; } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public Builder addAllHealthChecks( java.lang.Iterable values) { if (healthChecksBuilder_ == null) { ensureHealthChecksIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, healthChecks_); onChanged(); } else { healthChecksBuilder_.addAllMessages(values); } return this; } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public Builder clearHealthChecks() { if (healthChecksBuilder_ == null) { healthChecks_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000002); onChanged(); } else { healthChecksBuilder_.clear(); } return this; } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public Builder removeHealthChecks(int index) { if (healthChecksBuilder_ == null) { ensureHealthChecksIsMutable(); healthChecks_.remove(index); onChanged(); } else { healthChecksBuilder_.remove(index); } return this; } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public io.envoyproxy.envoy.config.core.v3.HealthCheck.Builder getHealthChecksBuilder( int index) { return getHealthChecksFieldBuilder().getBuilder(index); } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public io.envoyproxy.envoy.config.core.v3.HealthCheckOrBuilder getHealthChecksOrBuilder( int index) { if (healthChecksBuilder_ == null) { return healthChecks_.get(index); } else { return healthChecksBuilder_.getMessageOrBuilder(index); } } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public java.util.List getHealthChecksOrBuilderList() { if (healthChecksBuilder_ != null) { return healthChecksBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(healthChecks_); } } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public io.envoyproxy.envoy.config.core.v3.HealthCheck.Builder addHealthChecksBuilder() { return getHealthChecksFieldBuilder().addBuilder( io.envoyproxy.envoy.config.core.v3.HealthCheck.getDefaultInstance()); } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public io.envoyproxy.envoy.config.core.v3.HealthCheck.Builder addHealthChecksBuilder( int index) { return getHealthChecksFieldBuilder().addBuilder( index, io.envoyproxy.envoy.config.core.v3.HealthCheck.getDefaultInstance()); } /** *
     * Optional :ref:`active health checking <arch_overview_health_checking>`
     * configuration for the cluster. If no
     * configuration is specified no health checking will be done and all cluster
     * members will be considered healthy at all times.
     * 
* * repeated .envoy.config.core.v3.HealthCheck health_checks = 8; */ public java.util.List getHealthChecksBuilderList() { return getHealthChecksFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.HealthCheck, io.envoyproxy.envoy.config.core.v3.HealthCheck.Builder, io.envoyproxy.envoy.config.core.v3.HealthCheckOrBuilder> getHealthChecksFieldBuilder() { if (healthChecksBuilder_ == null) { healthChecksBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.HealthCheck, io.envoyproxy.envoy.config.core.v3.HealthCheck.Builder, io.envoyproxy.envoy.config.core.v3.HealthCheckOrBuilder>( healthChecks_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); healthChecks_ = null; } return healthChecksBuilder_; } private com.google.protobuf.UInt32Value maxRequestsPerConnection_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder> maxRequestsPerConnectionBuilder_; /** *
     * Optional maximum requests for a single upstream connection. This parameter
     * is respected by both the HTTP/1.1 and HTTP/2 connection pool
     * implementations. If not specified, there is no limit. Setting this
     * parameter to 1 will effectively disable keep alive.
     * .. attention::
     *   This field has been deprecated in favor of the :ref:`max_requests_per_connection <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_requests_per_connection>` field.
     * 
* * .google.protobuf.UInt32Value max_requests_per_connection = 9 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.max_requests_per_connection is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=868 * @return Whether the maxRequestsPerConnection field is set. */ @java.lang.Deprecated public boolean hasMaxRequestsPerConnection() { return maxRequestsPerConnectionBuilder_ != null || maxRequestsPerConnection_ != null; } /** *
     * Optional maximum requests for a single upstream connection. This parameter
     * is respected by both the HTTP/1.1 and HTTP/2 connection pool
     * implementations. If not specified, there is no limit. Setting this
     * parameter to 1 will effectively disable keep alive.
     * .. attention::
     *   This field has been deprecated in favor of the :ref:`max_requests_per_connection <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_requests_per_connection>` field.
     * 
* * .google.protobuf.UInt32Value max_requests_per_connection = 9 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.max_requests_per_connection is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=868 * @return The maxRequestsPerConnection. */ @java.lang.Deprecated public com.google.protobuf.UInt32Value getMaxRequestsPerConnection() { if (maxRequestsPerConnectionBuilder_ == null) { return maxRequestsPerConnection_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : maxRequestsPerConnection_; } else { return maxRequestsPerConnectionBuilder_.getMessage(); } } /** *
     * Optional maximum requests for a single upstream connection. This parameter
     * is respected by both the HTTP/1.1 and HTTP/2 connection pool
     * implementations. If not specified, there is no limit. Setting this
     * parameter to 1 will effectively disable keep alive.
     * .. attention::
     *   This field has been deprecated in favor of the :ref:`max_requests_per_connection <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_requests_per_connection>` field.
     * 
* * .google.protobuf.UInt32Value max_requests_per_connection = 9 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setMaxRequestsPerConnection(com.google.protobuf.UInt32Value value) { if (maxRequestsPerConnectionBuilder_ == null) { if (value == null) { throw new NullPointerException(); } maxRequestsPerConnection_ = value; onChanged(); } else { maxRequestsPerConnectionBuilder_.setMessage(value); } return this; } /** *
     * Optional maximum requests for a single upstream connection. This parameter
     * is respected by both the HTTP/1.1 and HTTP/2 connection pool
     * implementations. If not specified, there is no limit. Setting this
     * parameter to 1 will effectively disable keep alive.
     * .. attention::
     *   This field has been deprecated in favor of the :ref:`max_requests_per_connection <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_requests_per_connection>` field.
     * 
* * .google.protobuf.UInt32Value max_requests_per_connection = 9 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setMaxRequestsPerConnection( com.google.protobuf.UInt32Value.Builder builderForValue) { if (maxRequestsPerConnectionBuilder_ == null) { maxRequestsPerConnection_ = builderForValue.build(); onChanged(); } else { maxRequestsPerConnectionBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Optional maximum requests for a single upstream connection. This parameter
     * is respected by both the HTTP/1.1 and HTTP/2 connection pool
     * implementations. If not specified, there is no limit. Setting this
     * parameter to 1 will effectively disable keep alive.
     * .. attention::
     *   This field has been deprecated in favor of the :ref:`max_requests_per_connection <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_requests_per_connection>` field.
     * 
* * .google.protobuf.UInt32Value max_requests_per_connection = 9 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder mergeMaxRequestsPerConnection(com.google.protobuf.UInt32Value value) { if (maxRequestsPerConnectionBuilder_ == null) { if (maxRequestsPerConnection_ != null) { maxRequestsPerConnection_ = com.google.protobuf.UInt32Value.newBuilder(maxRequestsPerConnection_).mergeFrom(value).buildPartial(); } else { maxRequestsPerConnection_ = value; } onChanged(); } else { maxRequestsPerConnectionBuilder_.mergeFrom(value); } return this; } /** *
     * Optional maximum requests for a single upstream connection. This parameter
     * is respected by both the HTTP/1.1 and HTTP/2 connection pool
     * implementations. If not specified, there is no limit. Setting this
     * parameter to 1 will effectively disable keep alive.
     * .. attention::
     *   This field has been deprecated in favor of the :ref:`max_requests_per_connection <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_requests_per_connection>` field.
     * 
* * .google.protobuf.UInt32Value max_requests_per_connection = 9 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder clearMaxRequestsPerConnection() { if (maxRequestsPerConnectionBuilder_ == null) { maxRequestsPerConnection_ = null; onChanged(); } else { maxRequestsPerConnection_ = null; maxRequestsPerConnectionBuilder_ = null; } return this; } /** *
     * Optional maximum requests for a single upstream connection. This parameter
     * is respected by both the HTTP/1.1 and HTTP/2 connection pool
     * implementations. If not specified, there is no limit. Setting this
     * parameter to 1 will effectively disable keep alive.
     * .. attention::
     *   This field has been deprecated in favor of the :ref:`max_requests_per_connection <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_requests_per_connection>` field.
     * 
* * .google.protobuf.UInt32Value max_requests_per_connection = 9 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public com.google.protobuf.UInt32Value.Builder getMaxRequestsPerConnectionBuilder() { onChanged(); return getMaxRequestsPerConnectionFieldBuilder().getBuilder(); } /** *
     * Optional maximum requests for a single upstream connection. This parameter
     * is respected by both the HTTP/1.1 and HTTP/2 connection pool
     * implementations. If not specified, there is no limit. Setting this
     * parameter to 1 will effectively disable keep alive.
     * .. attention::
     *   This field has been deprecated in favor of the :ref:`max_requests_per_connection <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_requests_per_connection>` field.
     * 
* * .google.protobuf.UInt32Value max_requests_per_connection = 9 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public com.google.protobuf.UInt32ValueOrBuilder getMaxRequestsPerConnectionOrBuilder() { if (maxRequestsPerConnectionBuilder_ != null) { return maxRequestsPerConnectionBuilder_.getMessageOrBuilder(); } else { return maxRequestsPerConnection_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : maxRequestsPerConnection_; } } /** *
     * Optional maximum requests for a single upstream connection. This parameter
     * is respected by both the HTTP/1.1 and HTTP/2 connection pool
     * implementations. If not specified, there is no limit. Setting this
     * parameter to 1 will effectively disable keep alive.
     * .. attention::
     *   This field has been deprecated in favor of the :ref:`max_requests_per_connection <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_requests_per_connection>` field.
     * 
* * .google.protobuf.UInt32Value max_requests_per_connection = 9 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder> getMaxRequestsPerConnectionFieldBuilder() { if (maxRequestsPerConnectionBuilder_ == null) { maxRequestsPerConnectionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder>( getMaxRequestsPerConnection(), getParentForChildren(), isClean()); maxRequestsPerConnection_ = null; } return maxRequestsPerConnectionBuilder_; } private io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers circuitBreakers_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers, io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers.Builder, io.envoyproxy.envoy.config.cluster.v3.CircuitBreakersOrBuilder> circuitBreakersBuilder_; /** *
     * Optional :ref:`circuit breaking <arch_overview_circuit_break>` for the cluster.
     * 
* * .envoy.config.cluster.v3.CircuitBreakers circuit_breakers = 10; * @return Whether the circuitBreakers field is set. */ public boolean hasCircuitBreakers() { return circuitBreakersBuilder_ != null || circuitBreakers_ != null; } /** *
     * Optional :ref:`circuit breaking <arch_overview_circuit_break>` for the cluster.
     * 
* * .envoy.config.cluster.v3.CircuitBreakers circuit_breakers = 10; * @return The circuitBreakers. */ public io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers getCircuitBreakers() { if (circuitBreakersBuilder_ == null) { return circuitBreakers_ == null ? io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers.getDefaultInstance() : circuitBreakers_; } else { return circuitBreakersBuilder_.getMessage(); } } /** *
     * Optional :ref:`circuit breaking <arch_overview_circuit_break>` for the cluster.
     * 
* * .envoy.config.cluster.v3.CircuitBreakers circuit_breakers = 10; */ public Builder setCircuitBreakers(io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers value) { if (circuitBreakersBuilder_ == null) { if (value == null) { throw new NullPointerException(); } circuitBreakers_ = value; onChanged(); } else { circuitBreakersBuilder_.setMessage(value); } return this; } /** *
     * Optional :ref:`circuit breaking <arch_overview_circuit_break>` for the cluster.
     * 
* * .envoy.config.cluster.v3.CircuitBreakers circuit_breakers = 10; */ public Builder setCircuitBreakers( io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers.Builder builderForValue) { if (circuitBreakersBuilder_ == null) { circuitBreakers_ = builderForValue.build(); onChanged(); } else { circuitBreakersBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Optional :ref:`circuit breaking <arch_overview_circuit_break>` for the cluster.
     * 
* * .envoy.config.cluster.v3.CircuitBreakers circuit_breakers = 10; */ public Builder mergeCircuitBreakers(io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers value) { if (circuitBreakersBuilder_ == null) { if (circuitBreakers_ != null) { circuitBreakers_ = io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers.newBuilder(circuitBreakers_).mergeFrom(value).buildPartial(); } else { circuitBreakers_ = value; } onChanged(); } else { circuitBreakersBuilder_.mergeFrom(value); } return this; } /** *
     * Optional :ref:`circuit breaking <arch_overview_circuit_break>` for the cluster.
     * 
* * .envoy.config.cluster.v3.CircuitBreakers circuit_breakers = 10; */ public Builder clearCircuitBreakers() { if (circuitBreakersBuilder_ == null) { circuitBreakers_ = null; onChanged(); } else { circuitBreakers_ = null; circuitBreakersBuilder_ = null; } return this; } /** *
     * Optional :ref:`circuit breaking <arch_overview_circuit_break>` for the cluster.
     * 
* * .envoy.config.cluster.v3.CircuitBreakers circuit_breakers = 10; */ public io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers.Builder getCircuitBreakersBuilder() { onChanged(); return getCircuitBreakersFieldBuilder().getBuilder(); } /** *
     * Optional :ref:`circuit breaking <arch_overview_circuit_break>` for the cluster.
     * 
* * .envoy.config.cluster.v3.CircuitBreakers circuit_breakers = 10; */ public io.envoyproxy.envoy.config.cluster.v3.CircuitBreakersOrBuilder getCircuitBreakersOrBuilder() { if (circuitBreakersBuilder_ != null) { return circuitBreakersBuilder_.getMessageOrBuilder(); } else { return circuitBreakers_ == null ? io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers.getDefaultInstance() : circuitBreakers_; } } /** *
     * Optional :ref:`circuit breaking <arch_overview_circuit_break>` for the cluster.
     * 
* * .envoy.config.cluster.v3.CircuitBreakers circuit_breakers = 10; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers, io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers.Builder, io.envoyproxy.envoy.config.cluster.v3.CircuitBreakersOrBuilder> getCircuitBreakersFieldBuilder() { if (circuitBreakersBuilder_ == null) { circuitBreakersBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers, io.envoyproxy.envoy.config.cluster.v3.CircuitBreakers.Builder, io.envoyproxy.envoy.config.cluster.v3.CircuitBreakersOrBuilder>( getCircuitBreakers(), getParentForChildren(), isClean()); circuitBreakers_ = null; } return circuitBreakersBuilder_; } private io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions upstreamHttpProtocolOptions_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions, io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions.Builder, io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptionsOrBuilder> upstreamHttpProtocolOptionsBuilder_; /** *
     * HTTP protocol options that are applied only to upstream HTTP connections.
     * These options apply to all HTTP versions.
     * This has been deprecated in favor of
     * :ref:`upstream_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * upstream_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.upstream_http_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=884 * @return Whether the upstreamHttpProtocolOptions field is set. */ @java.lang.Deprecated public boolean hasUpstreamHttpProtocolOptions() { return upstreamHttpProtocolOptionsBuilder_ != null || upstreamHttpProtocolOptions_ != null; } /** *
     * HTTP protocol options that are applied only to upstream HTTP connections.
     * These options apply to all HTTP versions.
     * This has been deprecated in favor of
     * :ref:`upstream_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * upstream_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.upstream_http_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=884 * @return The upstreamHttpProtocolOptions. */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions getUpstreamHttpProtocolOptions() { if (upstreamHttpProtocolOptionsBuilder_ == null) { return upstreamHttpProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions.getDefaultInstance() : upstreamHttpProtocolOptions_; } else { return upstreamHttpProtocolOptionsBuilder_.getMessage(); } } /** *
     * HTTP protocol options that are applied only to upstream HTTP connections.
     * These options apply to all HTTP versions.
     * This has been deprecated in favor of
     * :ref:`upstream_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * upstream_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setUpstreamHttpProtocolOptions(io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions value) { if (upstreamHttpProtocolOptionsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } upstreamHttpProtocolOptions_ = value; onChanged(); } else { upstreamHttpProtocolOptionsBuilder_.setMessage(value); } return this; } /** *
     * HTTP protocol options that are applied only to upstream HTTP connections.
     * These options apply to all HTTP versions.
     * This has been deprecated in favor of
     * :ref:`upstream_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * upstream_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setUpstreamHttpProtocolOptions( io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions.Builder builderForValue) { if (upstreamHttpProtocolOptionsBuilder_ == null) { upstreamHttpProtocolOptions_ = builderForValue.build(); onChanged(); } else { upstreamHttpProtocolOptionsBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * HTTP protocol options that are applied only to upstream HTTP connections.
     * These options apply to all HTTP versions.
     * This has been deprecated in favor of
     * :ref:`upstream_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * upstream_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder mergeUpstreamHttpProtocolOptions(io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions value) { if (upstreamHttpProtocolOptionsBuilder_ == null) { if (upstreamHttpProtocolOptions_ != null) { upstreamHttpProtocolOptions_ = io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions.newBuilder(upstreamHttpProtocolOptions_).mergeFrom(value).buildPartial(); } else { upstreamHttpProtocolOptions_ = value; } onChanged(); } else { upstreamHttpProtocolOptionsBuilder_.mergeFrom(value); } return this; } /** *
     * HTTP protocol options that are applied only to upstream HTTP connections.
     * These options apply to all HTTP versions.
     * This has been deprecated in favor of
     * :ref:`upstream_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * upstream_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder clearUpstreamHttpProtocolOptions() { if (upstreamHttpProtocolOptionsBuilder_ == null) { upstreamHttpProtocolOptions_ = null; onChanged(); } else { upstreamHttpProtocolOptions_ = null; upstreamHttpProtocolOptionsBuilder_ = null; } return this; } /** *
     * HTTP protocol options that are applied only to upstream HTTP connections.
     * These options apply to all HTTP versions.
     * This has been deprecated in favor of
     * :ref:`upstream_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * upstream_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions.Builder getUpstreamHttpProtocolOptionsBuilder() { onChanged(); return getUpstreamHttpProtocolOptionsFieldBuilder().getBuilder(); } /** *
     * HTTP protocol options that are applied only to upstream HTTP connections.
     * These options apply to all HTTP versions.
     * This has been deprecated in favor of
     * :ref:`upstream_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * upstream_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptionsOrBuilder getUpstreamHttpProtocolOptionsOrBuilder() { if (upstreamHttpProtocolOptionsBuilder_ != null) { return upstreamHttpProtocolOptionsBuilder_.getMessageOrBuilder(); } else { return upstreamHttpProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions.getDefaultInstance() : upstreamHttpProtocolOptions_; } } /** *
     * HTTP protocol options that are applied only to upstream HTTP connections.
     * These options apply to all HTTP versions.
     * This has been deprecated in favor of
     * :ref:`upstream_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * upstream_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions, io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions.Builder, io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptionsOrBuilder> getUpstreamHttpProtocolOptionsFieldBuilder() { if (upstreamHttpProtocolOptionsBuilder_ == null) { upstreamHttpProtocolOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions, io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions.Builder, io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptionsOrBuilder>( getUpstreamHttpProtocolOptions(), getParentForChildren(), isClean()); upstreamHttpProtocolOptions_ = null; } return upstreamHttpProtocolOptionsBuilder_; } private io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions commonHttpProtocolOptions_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions, io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions.Builder, io.envoyproxy.envoy.config.core.v3.HttpProtocolOptionsOrBuilder> commonHttpProtocolOptionsBuilder_; /** *
     * Additional options when handling HTTP requests upstream. These options will be applicable to
     * both HTTP1 and HTTP2 requests.
     * This has been deprecated in favor of
     * :ref:`common_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * common_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 29 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.common_http_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=897 * @return Whether the commonHttpProtocolOptions field is set. */ @java.lang.Deprecated public boolean hasCommonHttpProtocolOptions() { return commonHttpProtocolOptionsBuilder_ != null || commonHttpProtocolOptions_ != null; } /** *
     * Additional options when handling HTTP requests upstream. These options will be applicable to
     * both HTTP1 and HTTP2 requests.
     * This has been deprecated in favor of
     * :ref:`common_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * common_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 29 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.common_http_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=897 * @return The commonHttpProtocolOptions. */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions getCommonHttpProtocolOptions() { if (commonHttpProtocolOptionsBuilder_ == null) { return commonHttpProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions.getDefaultInstance() : commonHttpProtocolOptions_; } else { return commonHttpProtocolOptionsBuilder_.getMessage(); } } /** *
     * Additional options when handling HTTP requests upstream. These options will be applicable to
     * both HTTP1 and HTTP2 requests.
     * This has been deprecated in favor of
     * :ref:`common_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * common_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 29 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setCommonHttpProtocolOptions(io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions value) { if (commonHttpProtocolOptionsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } commonHttpProtocolOptions_ = value; onChanged(); } else { commonHttpProtocolOptionsBuilder_.setMessage(value); } return this; } /** *
     * Additional options when handling HTTP requests upstream. These options will be applicable to
     * both HTTP1 and HTTP2 requests.
     * This has been deprecated in favor of
     * :ref:`common_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * common_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 29 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setCommonHttpProtocolOptions( io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions.Builder builderForValue) { if (commonHttpProtocolOptionsBuilder_ == null) { commonHttpProtocolOptions_ = builderForValue.build(); onChanged(); } else { commonHttpProtocolOptionsBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Additional options when handling HTTP requests upstream. These options will be applicable to
     * both HTTP1 and HTTP2 requests.
     * This has been deprecated in favor of
     * :ref:`common_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * common_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 29 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder mergeCommonHttpProtocolOptions(io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions value) { if (commonHttpProtocolOptionsBuilder_ == null) { if (commonHttpProtocolOptions_ != null) { commonHttpProtocolOptions_ = io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions.newBuilder(commonHttpProtocolOptions_).mergeFrom(value).buildPartial(); } else { commonHttpProtocolOptions_ = value; } onChanged(); } else { commonHttpProtocolOptionsBuilder_.mergeFrom(value); } return this; } /** *
     * Additional options when handling HTTP requests upstream. These options will be applicable to
     * both HTTP1 and HTTP2 requests.
     * This has been deprecated in favor of
     * :ref:`common_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * common_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 29 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder clearCommonHttpProtocolOptions() { if (commonHttpProtocolOptionsBuilder_ == null) { commonHttpProtocolOptions_ = null; onChanged(); } else { commonHttpProtocolOptions_ = null; commonHttpProtocolOptionsBuilder_ = null; } return this; } /** *
     * Additional options when handling HTTP requests upstream. These options will be applicable to
     * both HTTP1 and HTTP2 requests.
     * This has been deprecated in favor of
     * :ref:`common_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * common_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 29 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions.Builder getCommonHttpProtocolOptionsBuilder() { onChanged(); return getCommonHttpProtocolOptionsFieldBuilder().getBuilder(); } /** *
     * Additional options when handling HTTP requests upstream. These options will be applicable to
     * both HTTP1 and HTTP2 requests.
     * This has been deprecated in favor of
     * :ref:`common_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * common_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 29 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.HttpProtocolOptionsOrBuilder getCommonHttpProtocolOptionsOrBuilder() { if (commonHttpProtocolOptionsBuilder_ != null) { return commonHttpProtocolOptionsBuilder_.getMessageOrBuilder(); } else { return commonHttpProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions.getDefaultInstance() : commonHttpProtocolOptions_; } } /** *
     * Additional options when handling HTTP requests upstream. These options will be applicable to
     * both HTTP1 and HTTP2 requests.
     * This has been deprecated in favor of
     * :ref:`common_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>`
     * in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * common_http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 29 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions, io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions.Builder, io.envoyproxy.envoy.config.core.v3.HttpProtocolOptionsOrBuilder> getCommonHttpProtocolOptionsFieldBuilder() { if (commonHttpProtocolOptionsBuilder_ == null) { commonHttpProtocolOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions, io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions.Builder, io.envoyproxy.envoy.config.core.v3.HttpProtocolOptionsOrBuilder>( getCommonHttpProtocolOptions(), getParentForChildren(), isClean()); commonHttpProtocolOptions_ = null; } return commonHttpProtocolOptionsBuilder_; } private io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions httpProtocolOptions_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions, io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.Builder, io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptionsOrBuilder> httpProtocolOptionsBuilder_; /** *
     * Additional options when handling HTTP1 requests.
     * This has been deprecated in favor of http_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 13 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.http_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=908 * @return Whether the httpProtocolOptions field is set. */ @java.lang.Deprecated public boolean hasHttpProtocolOptions() { return httpProtocolOptionsBuilder_ != null || httpProtocolOptions_ != null; } /** *
     * Additional options when handling HTTP1 requests.
     * This has been deprecated in favor of http_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 13 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.http_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=908 * @return The httpProtocolOptions. */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions getHttpProtocolOptions() { if (httpProtocolOptionsBuilder_ == null) { return httpProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.getDefaultInstance() : httpProtocolOptions_; } else { return httpProtocolOptionsBuilder_.getMessage(); } } /** *
     * Additional options when handling HTTP1 requests.
     * This has been deprecated in favor of http_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 13 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setHttpProtocolOptions(io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions value) { if (httpProtocolOptionsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } httpProtocolOptions_ = value; onChanged(); } else { httpProtocolOptionsBuilder_.setMessage(value); } return this; } /** *
     * Additional options when handling HTTP1 requests.
     * This has been deprecated in favor of http_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 13 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setHttpProtocolOptions( io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.Builder builderForValue) { if (httpProtocolOptionsBuilder_ == null) { httpProtocolOptions_ = builderForValue.build(); onChanged(); } else { httpProtocolOptionsBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Additional options when handling HTTP1 requests.
     * This has been deprecated in favor of http_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 13 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder mergeHttpProtocolOptions(io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions value) { if (httpProtocolOptionsBuilder_ == null) { if (httpProtocolOptions_ != null) { httpProtocolOptions_ = io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.newBuilder(httpProtocolOptions_).mergeFrom(value).buildPartial(); } else { httpProtocolOptions_ = value; } onChanged(); } else { httpProtocolOptionsBuilder_.mergeFrom(value); } return this; } /** *
     * Additional options when handling HTTP1 requests.
     * This has been deprecated in favor of http_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 13 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder clearHttpProtocolOptions() { if (httpProtocolOptionsBuilder_ == null) { httpProtocolOptions_ = null; onChanged(); } else { httpProtocolOptions_ = null; httpProtocolOptionsBuilder_ = null; } return this; } /** *
     * Additional options when handling HTTP1 requests.
     * This has been deprecated in favor of http_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 13 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.Builder getHttpProtocolOptionsBuilder() { onChanged(); return getHttpProtocolOptionsFieldBuilder().getBuilder(); } /** *
     * Additional options when handling HTTP1 requests.
     * This has been deprecated in favor of http_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 13 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptionsOrBuilder getHttpProtocolOptionsOrBuilder() { if (httpProtocolOptionsBuilder_ != null) { return httpProtocolOptionsBuilder_.getMessageOrBuilder(); } else { return httpProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.getDefaultInstance() : httpProtocolOptions_; } } /** *
     * Additional options when handling HTTP1 requests.
     * This has been deprecated in favor of http_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 13 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions, io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.Builder, io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptionsOrBuilder> getHttpProtocolOptionsFieldBuilder() { if (httpProtocolOptionsBuilder_ == null) { httpProtocolOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions, io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.Builder, io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptionsOrBuilder>( getHttpProtocolOptions(), getParentForChildren(), isClean()); httpProtocolOptions_ = null; } return httpProtocolOptionsBuilder_; } private io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions http2ProtocolOptions_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions, io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.Builder, io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptionsOrBuilder> http2ProtocolOptionsBuilder_; /** *
     * Even if default HTTP2 protocol options are desired, this field must be
     * set so that Envoy will assume that the upstream supports HTTP/2 when
     * making new HTTP connection pool connections. Currently, Envoy only
     * supports prior knowledge for upstream connections. Even if TLS is used
     * with ALPN, ``http2_protocol_options`` must be specified. As an aside this allows HTTP/2
     * connections to happen over plain text.
     * This has been deprecated in favor of http2_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
     * message. http2_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 14 [deprecated = true, (.udpa.annotations.security) = { ... } * @deprecated envoy.config.cluster.v3.Cluster.http2_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=924 * @return Whether the http2ProtocolOptions field is set. */ @java.lang.Deprecated public boolean hasHttp2ProtocolOptions() { return http2ProtocolOptionsBuilder_ != null || http2ProtocolOptions_ != null; } /** *
     * Even if default HTTP2 protocol options are desired, this field must be
     * set so that Envoy will assume that the upstream supports HTTP/2 when
     * making new HTTP connection pool connections. Currently, Envoy only
     * supports prior knowledge for upstream connections. Even if TLS is used
     * with ALPN, ``http2_protocol_options`` must be specified. As an aside this allows HTTP/2
     * connections to happen over plain text.
     * This has been deprecated in favor of http2_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
     * message. http2_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 14 [deprecated = true, (.udpa.annotations.security) = { ... } * @deprecated envoy.config.cluster.v3.Cluster.http2_protocol_options is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=924 * @return The http2ProtocolOptions. */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions getHttp2ProtocolOptions() { if (http2ProtocolOptionsBuilder_ == null) { return http2ProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.getDefaultInstance() : http2ProtocolOptions_; } else { return http2ProtocolOptionsBuilder_.getMessage(); } } /** *
     * Even if default HTTP2 protocol options are desired, this field must be
     * set so that Envoy will assume that the upstream supports HTTP/2 when
     * making new HTTP connection pool connections. Currently, Envoy only
     * supports prior knowledge for upstream connections. Even if TLS is used
     * with ALPN, ``http2_protocol_options`` must be specified. As an aside this allows HTTP/2
     * connections to happen over plain text.
     * This has been deprecated in favor of http2_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
     * message. http2_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 14 [deprecated = true, (.udpa.annotations.security) = { ... } */ @java.lang.Deprecated public Builder setHttp2ProtocolOptions(io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions value) { if (http2ProtocolOptionsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } http2ProtocolOptions_ = value; onChanged(); } else { http2ProtocolOptionsBuilder_.setMessage(value); } return this; } /** *
     * Even if default HTTP2 protocol options are desired, this field must be
     * set so that Envoy will assume that the upstream supports HTTP/2 when
     * making new HTTP connection pool connections. Currently, Envoy only
     * supports prior knowledge for upstream connections. Even if TLS is used
     * with ALPN, ``http2_protocol_options`` must be specified. As an aside this allows HTTP/2
     * connections to happen over plain text.
     * This has been deprecated in favor of http2_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
     * message. http2_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 14 [deprecated = true, (.udpa.annotations.security) = { ... } */ @java.lang.Deprecated public Builder setHttp2ProtocolOptions( io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.Builder builderForValue) { if (http2ProtocolOptionsBuilder_ == null) { http2ProtocolOptions_ = builderForValue.build(); onChanged(); } else { http2ProtocolOptionsBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Even if default HTTP2 protocol options are desired, this field must be
     * set so that Envoy will assume that the upstream supports HTTP/2 when
     * making new HTTP connection pool connections. Currently, Envoy only
     * supports prior knowledge for upstream connections. Even if TLS is used
     * with ALPN, ``http2_protocol_options`` must be specified. As an aside this allows HTTP/2
     * connections to happen over plain text.
     * This has been deprecated in favor of http2_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
     * message. http2_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 14 [deprecated = true, (.udpa.annotations.security) = { ... } */ @java.lang.Deprecated public Builder mergeHttp2ProtocolOptions(io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions value) { if (http2ProtocolOptionsBuilder_ == null) { if (http2ProtocolOptions_ != null) { http2ProtocolOptions_ = io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.newBuilder(http2ProtocolOptions_).mergeFrom(value).buildPartial(); } else { http2ProtocolOptions_ = value; } onChanged(); } else { http2ProtocolOptionsBuilder_.mergeFrom(value); } return this; } /** *
     * Even if default HTTP2 protocol options are desired, this field must be
     * set so that Envoy will assume that the upstream supports HTTP/2 when
     * making new HTTP connection pool connections. Currently, Envoy only
     * supports prior knowledge for upstream connections. Even if TLS is used
     * with ALPN, ``http2_protocol_options`` must be specified. As an aside this allows HTTP/2
     * connections to happen over plain text.
     * This has been deprecated in favor of http2_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
     * message. http2_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 14 [deprecated = true, (.udpa.annotations.security) = { ... } */ @java.lang.Deprecated public Builder clearHttp2ProtocolOptions() { if (http2ProtocolOptionsBuilder_ == null) { http2ProtocolOptions_ = null; onChanged(); } else { http2ProtocolOptions_ = null; http2ProtocolOptionsBuilder_ = null; } return this; } /** *
     * Even if default HTTP2 protocol options are desired, this field must be
     * set so that Envoy will assume that the upstream supports HTTP/2 when
     * making new HTTP connection pool connections. Currently, Envoy only
     * supports prior knowledge for upstream connections. Even if TLS is used
     * with ALPN, ``http2_protocol_options`` must be specified. As an aside this allows HTTP/2
     * connections to happen over plain text.
     * This has been deprecated in favor of http2_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
     * message. http2_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 14 [deprecated = true, (.udpa.annotations.security) = { ... } */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.Builder getHttp2ProtocolOptionsBuilder() { onChanged(); return getHttp2ProtocolOptionsFieldBuilder().getBuilder(); } /** *
     * Even if default HTTP2 protocol options are desired, this field must be
     * set so that Envoy will assume that the upstream supports HTTP/2 when
     * making new HTTP connection pool connections. Currently, Envoy only
     * supports prior knowledge for upstream connections. Even if TLS is used
     * with ALPN, ``http2_protocol_options`` must be specified. As an aside this allows HTTP/2
     * connections to happen over plain text.
     * This has been deprecated in favor of http2_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
     * message. http2_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 14 [deprecated = true, (.udpa.annotations.security) = { ... } */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptionsOrBuilder getHttp2ProtocolOptionsOrBuilder() { if (http2ProtocolOptionsBuilder_ != null) { return http2ProtocolOptionsBuilder_.getMessageOrBuilder(); } else { return http2ProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.getDefaultInstance() : http2ProtocolOptions_; } } /** *
     * Even if default HTTP2 protocol options are desired, this field must be
     * set so that Envoy will assume that the upstream supports HTTP/2 when
     * making new HTTP connection pool connections. Currently, Envoy only
     * supports prior knowledge for upstream connections. Even if TLS is used
     * with ALPN, ``http2_protocol_options`` must be specified. As an aside this allows HTTP/2
     * connections to happen over plain text.
     * This has been deprecated in favor of http2_protocol_options fields in the
     * :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
     * message. http2_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * See :ref:`upstream_http_protocol_options
     * <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
     * for example usage.
     * 
* * .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 14 [deprecated = true, (.udpa.annotations.security) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions, io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.Builder, io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptionsOrBuilder> getHttp2ProtocolOptionsFieldBuilder() { if (http2ProtocolOptionsBuilder_ == null) { http2ProtocolOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions, io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.Builder, io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptionsOrBuilder>( getHttp2ProtocolOptions(), getParentForChildren(), isClean()); http2ProtocolOptions_ = null; } return http2ProtocolOptionsBuilder_; } private com.google.protobuf.MapField< java.lang.String, com.google.protobuf.Any> typedExtensionProtocolOptions_; private com.google.protobuf.MapField internalGetTypedExtensionProtocolOptions() { if (typedExtensionProtocolOptions_ == null) { return com.google.protobuf.MapField.emptyMapField( TypedExtensionProtocolOptionsDefaultEntryHolder.defaultEntry); } return typedExtensionProtocolOptions_; } private com.google.protobuf.MapField internalGetMutableTypedExtensionProtocolOptions() { onChanged();; if (typedExtensionProtocolOptions_ == null) { typedExtensionProtocolOptions_ = com.google.protobuf.MapField.newMapField( TypedExtensionProtocolOptionsDefaultEntryHolder.defaultEntry); } if (!typedExtensionProtocolOptions_.isMutable()) { typedExtensionProtocolOptions_ = typedExtensionProtocolOptions_.copy(); } return typedExtensionProtocolOptions_; } public int getTypedExtensionProtocolOptionsCount() { return internalGetTypedExtensionProtocolOptions().getMap().size(); } /** *
     * The extension_protocol_options field is used to provide extension-specific protocol options
     * for upstream connections. The key should match the extension filter name, such as
     * "envoy.filters.network.thrift_proxy". See the extension's documentation for details on
     * specific options.
     * [#next-major-version: make this a list of typed extensions.]
     * 
* * map<string, .google.protobuf.Any> typed_extension_protocol_options = 36; */ @java.lang.Override public boolean containsTypedExtensionProtocolOptions( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetTypedExtensionProtocolOptions().getMap().containsKey(key); } /** * Use {@link #getTypedExtensionProtocolOptionsMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getTypedExtensionProtocolOptions() { return getTypedExtensionProtocolOptionsMap(); } /** *
     * The extension_protocol_options field is used to provide extension-specific protocol options
     * for upstream connections. The key should match the extension filter name, such as
     * "envoy.filters.network.thrift_proxy". See the extension's documentation for details on
     * specific options.
     * [#next-major-version: make this a list of typed extensions.]
     * 
* * map<string, .google.protobuf.Any> typed_extension_protocol_options = 36; */ @java.lang.Override public java.util.Map getTypedExtensionProtocolOptionsMap() { return internalGetTypedExtensionProtocolOptions().getMap(); } /** *
     * The extension_protocol_options field is used to provide extension-specific protocol options
     * for upstream connections. The key should match the extension filter name, such as
     * "envoy.filters.network.thrift_proxy". See the extension's documentation for details on
     * specific options.
     * [#next-major-version: make this a list of typed extensions.]
     * 
* * map<string, .google.protobuf.Any> typed_extension_protocol_options = 36; */ @java.lang.Override public com.google.protobuf.Any getTypedExtensionProtocolOptionsOrDefault( java.lang.String key, com.google.protobuf.Any defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetTypedExtensionProtocolOptions().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** *
     * The extension_protocol_options field is used to provide extension-specific protocol options
     * for upstream connections. The key should match the extension filter name, such as
     * "envoy.filters.network.thrift_proxy". See the extension's documentation for details on
     * specific options.
     * [#next-major-version: make this a list of typed extensions.]
     * 
* * map<string, .google.protobuf.Any> typed_extension_protocol_options = 36; */ @java.lang.Override public com.google.protobuf.Any getTypedExtensionProtocolOptionsOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetTypedExtensionProtocolOptions().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } public Builder clearTypedExtensionProtocolOptions() { internalGetMutableTypedExtensionProtocolOptions().getMutableMap() .clear(); return this; } /** *
     * The extension_protocol_options field is used to provide extension-specific protocol options
     * for upstream connections. The key should match the extension filter name, such as
     * "envoy.filters.network.thrift_proxy". See the extension's documentation for details on
     * specific options.
     * [#next-major-version: make this a list of typed extensions.]
     * 
* * map<string, .google.protobuf.Any> typed_extension_protocol_options = 36; */ public Builder removeTypedExtensionProtocolOptions( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } internalGetMutableTypedExtensionProtocolOptions().getMutableMap() .remove(key); return this; } /** * Use alternate mutation accessors instead. */ @java.lang.Deprecated public java.util.Map getMutableTypedExtensionProtocolOptions() { return internalGetMutableTypedExtensionProtocolOptions().getMutableMap(); } /** *
     * The extension_protocol_options field is used to provide extension-specific protocol options
     * for upstream connections. The key should match the extension filter name, such as
     * "envoy.filters.network.thrift_proxy". See the extension's documentation for details on
     * specific options.
     * [#next-major-version: make this a list of typed extensions.]
     * 
* * map<string, .google.protobuf.Any> typed_extension_protocol_options = 36; */ public Builder putTypedExtensionProtocolOptions( java.lang.String key, com.google.protobuf.Any value) { if (key == null) { throw new NullPointerException("map key"); } if (value == null) { throw new NullPointerException("map value"); } internalGetMutableTypedExtensionProtocolOptions().getMutableMap() .put(key, value); return this; } /** *
     * The extension_protocol_options field is used to provide extension-specific protocol options
     * for upstream connections. The key should match the extension filter name, such as
     * "envoy.filters.network.thrift_proxy". See the extension's documentation for details on
     * specific options.
     * [#next-major-version: make this a list of typed extensions.]
     * 
* * map<string, .google.protobuf.Any> typed_extension_protocol_options = 36; */ public Builder putAllTypedExtensionProtocolOptions( java.util.Map values) { internalGetMutableTypedExtensionProtocolOptions().getMutableMap() .putAll(values); return this; } private com.google.protobuf.Duration dnsRefreshRate_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> dnsRefreshRateBuilder_; /** *
     * If the DNS refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used as the cluster’s DNS refresh
     * rate. The value configured must be at least 1ms. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration dns_refresh_rate = 16 [(.validate.rules) = { ... } * @return Whether the dnsRefreshRate field is set. */ public boolean hasDnsRefreshRate() { return dnsRefreshRateBuilder_ != null || dnsRefreshRate_ != null; } /** *
     * If the DNS refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used as the cluster’s DNS refresh
     * rate. The value configured must be at least 1ms. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration dns_refresh_rate = 16 [(.validate.rules) = { ... } * @return The dnsRefreshRate. */ public com.google.protobuf.Duration getDnsRefreshRate() { if (dnsRefreshRateBuilder_ == null) { return dnsRefreshRate_ == null ? com.google.protobuf.Duration.getDefaultInstance() : dnsRefreshRate_; } else { return dnsRefreshRateBuilder_.getMessage(); } } /** *
     * If the DNS refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used as the cluster’s DNS refresh
     * rate. The value configured must be at least 1ms. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration dns_refresh_rate = 16 [(.validate.rules) = { ... } */ public Builder setDnsRefreshRate(com.google.protobuf.Duration value) { if (dnsRefreshRateBuilder_ == null) { if (value == null) { throw new NullPointerException(); } dnsRefreshRate_ = value; onChanged(); } else { dnsRefreshRateBuilder_.setMessage(value); } return this; } /** *
     * If the DNS refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used as the cluster’s DNS refresh
     * rate. The value configured must be at least 1ms. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration dns_refresh_rate = 16 [(.validate.rules) = { ... } */ public Builder setDnsRefreshRate( com.google.protobuf.Duration.Builder builderForValue) { if (dnsRefreshRateBuilder_ == null) { dnsRefreshRate_ = builderForValue.build(); onChanged(); } else { dnsRefreshRateBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * If the DNS refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used as the cluster’s DNS refresh
     * rate. The value configured must be at least 1ms. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration dns_refresh_rate = 16 [(.validate.rules) = { ... } */ public Builder mergeDnsRefreshRate(com.google.protobuf.Duration value) { if (dnsRefreshRateBuilder_ == null) { if (dnsRefreshRate_ != null) { dnsRefreshRate_ = com.google.protobuf.Duration.newBuilder(dnsRefreshRate_).mergeFrom(value).buildPartial(); } else { dnsRefreshRate_ = value; } onChanged(); } else { dnsRefreshRateBuilder_.mergeFrom(value); } return this; } /** *
     * If the DNS refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used as the cluster’s DNS refresh
     * rate. The value configured must be at least 1ms. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration dns_refresh_rate = 16 [(.validate.rules) = { ... } */ public Builder clearDnsRefreshRate() { if (dnsRefreshRateBuilder_ == null) { dnsRefreshRate_ = null; onChanged(); } else { dnsRefreshRate_ = null; dnsRefreshRateBuilder_ = null; } return this; } /** *
     * If the DNS refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used as the cluster’s DNS refresh
     * rate. The value configured must be at least 1ms. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration dns_refresh_rate = 16 [(.validate.rules) = { ... } */ public com.google.protobuf.Duration.Builder getDnsRefreshRateBuilder() { onChanged(); return getDnsRefreshRateFieldBuilder().getBuilder(); } /** *
     * If the DNS refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used as the cluster’s DNS refresh
     * rate. The value configured must be at least 1ms. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration dns_refresh_rate = 16 [(.validate.rules) = { ... } */ public com.google.protobuf.DurationOrBuilder getDnsRefreshRateOrBuilder() { if (dnsRefreshRateBuilder_ != null) { return dnsRefreshRateBuilder_.getMessageOrBuilder(); } else { return dnsRefreshRate_ == null ? com.google.protobuf.Duration.getDefaultInstance() : dnsRefreshRate_; } } /** *
     * If the DNS refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used as the cluster’s DNS refresh
     * rate. The value configured must be at least 1ms. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration dns_refresh_rate = 16 [(.validate.rules) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getDnsRefreshRateFieldBuilder() { if (dnsRefreshRateBuilder_ == null) { dnsRefreshRateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getDnsRefreshRate(), getParentForChildren(), isClean()); dnsRefreshRate_ = null; } return dnsRefreshRateBuilder_; } private io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate dnsFailureRefreshRate_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate, io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRateOrBuilder> dnsFailureRefreshRateBuilder_; /** *
     * If the DNS failure refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this is used as the cluster’s DNS refresh rate when requests are failing. If this setting is
     * not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
     * other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
     * :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
     * ignored.
     * 
* * .envoy.config.cluster.v3.Cluster.RefreshRate dns_failure_refresh_rate = 44; * @return Whether the dnsFailureRefreshRate field is set. */ public boolean hasDnsFailureRefreshRate() { return dnsFailureRefreshRateBuilder_ != null || dnsFailureRefreshRate_ != null; } /** *
     * If the DNS failure refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this is used as the cluster’s DNS refresh rate when requests are failing. If this setting is
     * not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
     * other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
     * :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
     * ignored.
     * 
* * .envoy.config.cluster.v3.Cluster.RefreshRate dns_failure_refresh_rate = 44; * @return The dnsFailureRefreshRate. */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate getDnsFailureRefreshRate() { if (dnsFailureRefreshRateBuilder_ == null) { return dnsFailureRefreshRate_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.getDefaultInstance() : dnsFailureRefreshRate_; } else { return dnsFailureRefreshRateBuilder_.getMessage(); } } /** *
     * If the DNS failure refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this is used as the cluster’s DNS refresh rate when requests are failing. If this setting is
     * not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
     * other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
     * :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
     * ignored.
     * 
* * .envoy.config.cluster.v3.Cluster.RefreshRate dns_failure_refresh_rate = 44; */ public Builder setDnsFailureRefreshRate(io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate value) { if (dnsFailureRefreshRateBuilder_ == null) { if (value == null) { throw new NullPointerException(); } dnsFailureRefreshRate_ = value; onChanged(); } else { dnsFailureRefreshRateBuilder_.setMessage(value); } return this; } /** *
     * If the DNS failure refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this is used as the cluster’s DNS refresh rate when requests are failing. If this setting is
     * not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
     * other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
     * :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
     * ignored.
     * 
* * .envoy.config.cluster.v3.Cluster.RefreshRate dns_failure_refresh_rate = 44; */ public Builder setDnsFailureRefreshRate( io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.Builder builderForValue) { if (dnsFailureRefreshRateBuilder_ == null) { dnsFailureRefreshRate_ = builderForValue.build(); onChanged(); } else { dnsFailureRefreshRateBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * If the DNS failure refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this is used as the cluster’s DNS refresh rate when requests are failing. If this setting is
     * not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
     * other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
     * :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
     * ignored.
     * 
* * .envoy.config.cluster.v3.Cluster.RefreshRate dns_failure_refresh_rate = 44; */ public Builder mergeDnsFailureRefreshRate(io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate value) { if (dnsFailureRefreshRateBuilder_ == null) { if (dnsFailureRefreshRate_ != null) { dnsFailureRefreshRate_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.newBuilder(dnsFailureRefreshRate_).mergeFrom(value).buildPartial(); } else { dnsFailureRefreshRate_ = value; } onChanged(); } else { dnsFailureRefreshRateBuilder_.mergeFrom(value); } return this; } /** *
     * If the DNS failure refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this is used as the cluster’s DNS refresh rate when requests are failing. If this setting is
     * not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
     * other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
     * :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
     * ignored.
     * 
* * .envoy.config.cluster.v3.Cluster.RefreshRate dns_failure_refresh_rate = 44; */ public Builder clearDnsFailureRefreshRate() { if (dnsFailureRefreshRateBuilder_ == null) { dnsFailureRefreshRate_ = null; onChanged(); } else { dnsFailureRefreshRate_ = null; dnsFailureRefreshRateBuilder_ = null; } return this; } /** *
     * If the DNS failure refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this is used as the cluster’s DNS refresh rate when requests are failing. If this setting is
     * not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
     * other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
     * :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
     * ignored.
     * 
* * .envoy.config.cluster.v3.Cluster.RefreshRate dns_failure_refresh_rate = 44; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.Builder getDnsFailureRefreshRateBuilder() { onChanged(); return getDnsFailureRefreshRateFieldBuilder().getBuilder(); } /** *
     * If the DNS failure refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this is used as the cluster’s DNS refresh rate when requests are failing. If this setting is
     * not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
     * other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
     * :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
     * ignored.
     * 
* * .envoy.config.cluster.v3.Cluster.RefreshRate dns_failure_refresh_rate = 44; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRateOrBuilder getDnsFailureRefreshRateOrBuilder() { if (dnsFailureRefreshRateBuilder_ != null) { return dnsFailureRefreshRateBuilder_.getMessageOrBuilder(); } else { return dnsFailureRefreshRate_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.getDefaultInstance() : dnsFailureRefreshRate_; } } /** *
     * If the DNS failure refresh rate is specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this is used as the cluster’s DNS refresh rate when requests are failing. If this setting is
     * not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
     * other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
     * :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
     * ignored.
     * 
* * .envoy.config.cluster.v3.Cluster.RefreshRate dns_failure_refresh_rate = 44; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate, io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRateOrBuilder> getDnsFailureRefreshRateFieldBuilder() { if (dnsFailureRefreshRateBuilder_ == null) { dnsFailureRefreshRateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate, io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRate.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.RefreshRateOrBuilder>( getDnsFailureRefreshRate(), getParentForChildren(), isClean()); dnsFailureRefreshRate_ = null; } return dnsFailureRefreshRateBuilder_; } private boolean respectDnsTtl_ ; /** *
     * Optional configuration for setting cluster's DNS refresh rate. If the value is set to true,
     * cluster's DNS refresh rate will be set to resource record's TTL which comes from DNS
     * resolution.
     * 
* * bool respect_dns_ttl = 39; * @return The respectDnsTtl. */ @java.lang.Override public boolean getRespectDnsTtl() { return respectDnsTtl_; } /** *
     * Optional configuration for setting cluster's DNS refresh rate. If the value is set to true,
     * cluster's DNS refresh rate will be set to resource record's TTL which comes from DNS
     * resolution.
     * 
* * bool respect_dns_ttl = 39; * @param value The respectDnsTtl to set. * @return This builder for chaining. */ public Builder setRespectDnsTtl(boolean value) { respectDnsTtl_ = value; onChanged(); return this; } /** *
     * Optional configuration for setting cluster's DNS refresh rate. If the value is set to true,
     * cluster's DNS refresh rate will be set to resource record's TTL which comes from DNS
     * resolution.
     * 
* * bool respect_dns_ttl = 39; * @return This builder for chaining. */ public Builder clearRespectDnsTtl() { respectDnsTtl_ = false; onChanged(); return this; } private int dnsLookupFamily_ = 0; /** *
     * The DNS IP address resolution policy. If this setting is not specified, the
     * value defaults to
     * :ref:`AUTO<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DnsLookupFamily.AUTO>`.
     * 
* * .envoy.config.cluster.v3.Cluster.DnsLookupFamily dns_lookup_family = 17 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for dnsLookupFamily. */ @java.lang.Override public int getDnsLookupFamilyValue() { return dnsLookupFamily_; } /** *
     * The DNS IP address resolution policy. If this setting is not specified, the
     * value defaults to
     * :ref:`AUTO<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DnsLookupFamily.AUTO>`.
     * 
* * .envoy.config.cluster.v3.Cluster.DnsLookupFamily dns_lookup_family = 17 [(.validate.rules) = { ... } * @param value The enum numeric value on the wire for dnsLookupFamily to set. * @return This builder for chaining. */ public Builder setDnsLookupFamilyValue(int value) { dnsLookupFamily_ = value; onChanged(); return this; } /** *
     * The DNS IP address resolution policy. If this setting is not specified, the
     * value defaults to
     * :ref:`AUTO<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DnsLookupFamily.AUTO>`.
     * 
* * .envoy.config.cluster.v3.Cluster.DnsLookupFamily dns_lookup_family = 17 [(.validate.rules) = { ... } * @return The dnsLookupFamily. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.DnsLookupFamily getDnsLookupFamily() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.DnsLookupFamily result = io.envoyproxy.envoy.config.cluster.v3.Cluster.DnsLookupFamily.valueOf(dnsLookupFamily_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.DnsLookupFamily.UNRECOGNIZED : result; } /** *
     * The DNS IP address resolution policy. If this setting is not specified, the
     * value defaults to
     * :ref:`AUTO<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DnsLookupFamily.AUTO>`.
     * 
* * .envoy.config.cluster.v3.Cluster.DnsLookupFamily dns_lookup_family = 17 [(.validate.rules) = { ... } * @param value The dnsLookupFamily to set. * @return This builder for chaining. */ public Builder setDnsLookupFamily(io.envoyproxy.envoy.config.cluster.v3.Cluster.DnsLookupFamily value) { if (value == null) { throw new NullPointerException(); } dnsLookupFamily_ = value.getNumber(); onChanged(); return this; } /** *
     * The DNS IP address resolution policy. If this setting is not specified, the
     * value defaults to
     * :ref:`AUTO<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DnsLookupFamily.AUTO>`.
     * 
* * .envoy.config.cluster.v3.Cluster.DnsLookupFamily dns_lookup_family = 17 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearDnsLookupFamily() { dnsLookupFamily_ = 0; onChanged(); return this; } private java.util.List dnsResolvers_ = java.util.Collections.emptyList(); private void ensureDnsResolversIsMutable() { if (!((bitField0_ & 0x00000008) != 0)) { dnsResolvers_ = new java.util.ArrayList(dnsResolvers_); bitField0_ |= 0x00000008; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.Address, io.envoyproxy.envoy.config.core.v3.Address.Builder, io.envoyproxy.envoy.config.core.v3.AddressOrBuilder> dnsResolversBuilder_; /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public java.util.List getDnsResolversList() { if (dnsResolversBuilder_ == null) { return java.util.Collections.unmodifiableList(dnsResolvers_); } else { return dnsResolversBuilder_.getMessageList(); } } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public int getDnsResolversCount() { if (dnsResolversBuilder_ == null) { return dnsResolvers_.size(); } else { return dnsResolversBuilder_.getCount(); } } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Address getDnsResolvers(int index) { if (dnsResolversBuilder_ == null) { return dnsResolvers_.get(index); } else { return dnsResolversBuilder_.getMessage(index); } } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setDnsResolvers( int index, io.envoyproxy.envoy.config.core.v3.Address value) { if (dnsResolversBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureDnsResolversIsMutable(); dnsResolvers_.set(index, value); onChanged(); } else { dnsResolversBuilder_.setMessage(index, value); } return this; } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setDnsResolvers( int index, io.envoyproxy.envoy.config.core.v3.Address.Builder builderForValue) { if (dnsResolversBuilder_ == null) { ensureDnsResolversIsMutable(); dnsResolvers_.set(index, builderForValue.build()); onChanged(); } else { dnsResolversBuilder_.setMessage(index, builderForValue.build()); } return this; } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder addDnsResolvers(io.envoyproxy.envoy.config.core.v3.Address value) { if (dnsResolversBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureDnsResolversIsMutable(); dnsResolvers_.add(value); onChanged(); } else { dnsResolversBuilder_.addMessage(value); } return this; } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder addDnsResolvers( int index, io.envoyproxy.envoy.config.core.v3.Address value) { if (dnsResolversBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureDnsResolversIsMutable(); dnsResolvers_.add(index, value); onChanged(); } else { dnsResolversBuilder_.addMessage(index, value); } return this; } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder addDnsResolvers( io.envoyproxy.envoy.config.core.v3.Address.Builder builderForValue) { if (dnsResolversBuilder_ == null) { ensureDnsResolversIsMutable(); dnsResolvers_.add(builderForValue.build()); onChanged(); } else { dnsResolversBuilder_.addMessage(builderForValue.build()); } return this; } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder addDnsResolvers( int index, io.envoyproxy.envoy.config.core.v3.Address.Builder builderForValue) { if (dnsResolversBuilder_ == null) { ensureDnsResolversIsMutable(); dnsResolvers_.add(index, builderForValue.build()); onChanged(); } else { dnsResolversBuilder_.addMessage(index, builderForValue.build()); } return this; } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder addAllDnsResolvers( java.lang.Iterable values) { if (dnsResolversBuilder_ == null) { ensureDnsResolversIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, dnsResolvers_); onChanged(); } else { dnsResolversBuilder_.addAllMessages(values); } return this; } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder clearDnsResolvers() { if (dnsResolversBuilder_ == null) { dnsResolvers_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { dnsResolversBuilder_.clear(); } return this; } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder removeDnsResolvers(int index) { if (dnsResolversBuilder_ == null) { ensureDnsResolversIsMutable(); dnsResolvers_.remove(index); onChanged(); } else { dnsResolversBuilder_.remove(index); } return this; } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Address.Builder getDnsResolversBuilder( int index) { return getDnsResolversFieldBuilder().getBuilder(index); } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.AddressOrBuilder getDnsResolversOrBuilder( int index) { if (dnsResolversBuilder_ == null) { return dnsResolvers_.get(index); } else { return dnsResolversBuilder_.getMessageOrBuilder(index); } } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public java.util.List getDnsResolversOrBuilderList() { if (dnsResolversBuilder_ != null) { return dnsResolversBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(dnsResolvers_); } } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Address.Builder addDnsResolversBuilder() { return getDnsResolversFieldBuilder().addBuilder( io.envoyproxy.envoy.config.core.v3.Address.getDefaultInstance()); } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.Address.Builder addDnsResolversBuilder( int index) { return getDnsResolversFieldBuilder().addBuilder( index, io.envoyproxy.envoy.config.core.v3.Address.getDefaultInstance()); } /** *
     * If DNS resolvers are specified and the cluster type is either
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
     * this value is used to specify the cluster’s dns resolvers.
     * If this setting is not specified, the value defaults to the default
     * resolver, which uses /etc/resolv.conf for configuration. For cluster types
     * other than
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
     * and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
     * this setting is ignored.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * repeated .envoy.config.core.v3.Address dns_resolvers = 18 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public java.util.List getDnsResolversBuilderList() { return getDnsResolversFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.Address, io.envoyproxy.envoy.config.core.v3.Address.Builder, io.envoyproxy.envoy.config.core.v3.AddressOrBuilder> getDnsResolversFieldBuilder() { if (dnsResolversBuilder_ == null) { dnsResolversBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.Address, io.envoyproxy.envoy.config.core.v3.Address.Builder, io.envoyproxy.envoy.config.core.v3.AddressOrBuilder>( dnsResolvers_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); dnsResolvers_ = null; } return dnsResolversBuilder_; } private boolean useTcpForDnsLookups_ ; /** *
     * Always use TCP queries instead of UDP queries for DNS lookups.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * bool use_tcp_for_dns_lookups = 45 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.use_tcp_for_dns_lookups is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=987 * @return The useTcpForDnsLookups. */ @java.lang.Override @java.lang.Deprecated public boolean getUseTcpForDnsLookups() { return useTcpForDnsLookups_; } /** *
     * Always use TCP queries instead of UDP queries for DNS lookups.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * bool use_tcp_for_dns_lookups = 45 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.use_tcp_for_dns_lookups is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=987 * @param value The useTcpForDnsLookups to set. * @return This builder for chaining. */ @java.lang.Deprecated public Builder setUseTcpForDnsLookups(boolean value) { useTcpForDnsLookups_ = value; onChanged(); return this; } /** *
     * Always use TCP queries instead of UDP queries for DNS lookups.
     * This field is deprecated in favor of ``dns_resolution_config``
     * which aggregates all of the DNS resolver configuration in a single message.
     * 
* * bool use_tcp_for_dns_lookups = 45 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.use_tcp_for_dns_lookups is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=987 * @return This builder for chaining. */ @java.lang.Deprecated public Builder clearUseTcpForDnsLookups() { useTcpForDnsLookups_ = false; onChanged(); return this; } private io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig dnsResolutionConfig_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig, io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig.Builder, io.envoyproxy.envoy.config.core.v3.DnsResolutionConfigOrBuilder> dnsResolutionConfigBuilder_; /** *
     * DNS resolution configuration which includes the underlying dns resolver addresses and options.
     * This field is deprecated in favor of
     * :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
     * 
* * .envoy.config.core.v3.DnsResolutionConfig dns_resolution_config = 53 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.dns_resolution_config is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=993 * @return Whether the dnsResolutionConfig field is set. */ @java.lang.Deprecated public boolean hasDnsResolutionConfig() { return dnsResolutionConfigBuilder_ != null || dnsResolutionConfig_ != null; } /** *
     * DNS resolution configuration which includes the underlying dns resolver addresses and options.
     * This field is deprecated in favor of
     * :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
     * 
* * .envoy.config.core.v3.DnsResolutionConfig dns_resolution_config = 53 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.dns_resolution_config is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=993 * @return The dnsResolutionConfig. */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig getDnsResolutionConfig() { if (dnsResolutionConfigBuilder_ == null) { return dnsResolutionConfig_ == null ? io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig.getDefaultInstance() : dnsResolutionConfig_; } else { return dnsResolutionConfigBuilder_.getMessage(); } } /** *
     * DNS resolution configuration which includes the underlying dns resolver addresses and options.
     * This field is deprecated in favor of
     * :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
     * 
* * .envoy.config.core.v3.DnsResolutionConfig dns_resolution_config = 53 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setDnsResolutionConfig(io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig value) { if (dnsResolutionConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } dnsResolutionConfig_ = value; onChanged(); } else { dnsResolutionConfigBuilder_.setMessage(value); } return this; } /** *
     * DNS resolution configuration which includes the underlying dns resolver addresses and options.
     * This field is deprecated in favor of
     * :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
     * 
* * .envoy.config.core.v3.DnsResolutionConfig dns_resolution_config = 53 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setDnsResolutionConfig( io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig.Builder builderForValue) { if (dnsResolutionConfigBuilder_ == null) { dnsResolutionConfig_ = builderForValue.build(); onChanged(); } else { dnsResolutionConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * DNS resolution configuration which includes the underlying dns resolver addresses and options.
     * This field is deprecated in favor of
     * :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
     * 
* * .envoy.config.core.v3.DnsResolutionConfig dns_resolution_config = 53 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder mergeDnsResolutionConfig(io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig value) { if (dnsResolutionConfigBuilder_ == null) { if (dnsResolutionConfig_ != null) { dnsResolutionConfig_ = io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig.newBuilder(dnsResolutionConfig_).mergeFrom(value).buildPartial(); } else { dnsResolutionConfig_ = value; } onChanged(); } else { dnsResolutionConfigBuilder_.mergeFrom(value); } return this; } /** *
     * DNS resolution configuration which includes the underlying dns resolver addresses and options.
     * This field is deprecated in favor of
     * :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
     * 
* * .envoy.config.core.v3.DnsResolutionConfig dns_resolution_config = 53 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder clearDnsResolutionConfig() { if (dnsResolutionConfigBuilder_ == null) { dnsResolutionConfig_ = null; onChanged(); } else { dnsResolutionConfig_ = null; dnsResolutionConfigBuilder_ = null; } return this; } /** *
     * DNS resolution configuration which includes the underlying dns resolver addresses and options.
     * This field is deprecated in favor of
     * :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
     * 
* * .envoy.config.core.v3.DnsResolutionConfig dns_resolution_config = 53 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig.Builder getDnsResolutionConfigBuilder() { onChanged(); return getDnsResolutionConfigFieldBuilder().getBuilder(); } /** *
     * DNS resolution configuration which includes the underlying dns resolver addresses and options.
     * This field is deprecated in favor of
     * :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
     * 
* * .envoy.config.core.v3.DnsResolutionConfig dns_resolution_config = 53 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.core.v3.DnsResolutionConfigOrBuilder getDnsResolutionConfigOrBuilder() { if (dnsResolutionConfigBuilder_ != null) { return dnsResolutionConfigBuilder_.getMessageOrBuilder(); } else { return dnsResolutionConfig_ == null ? io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig.getDefaultInstance() : dnsResolutionConfig_; } } /** *
     * DNS resolution configuration which includes the underlying dns resolver addresses and options.
     * This field is deprecated in favor of
     * :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
     * 
* * .envoy.config.core.v3.DnsResolutionConfig dns_resolution_config = 53 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig, io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig.Builder, io.envoyproxy.envoy.config.core.v3.DnsResolutionConfigOrBuilder> getDnsResolutionConfigFieldBuilder() { if (dnsResolutionConfigBuilder_ == null) { dnsResolutionConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig, io.envoyproxy.envoy.config.core.v3.DnsResolutionConfig.Builder, io.envoyproxy.envoy.config.core.v3.DnsResolutionConfigOrBuilder>( getDnsResolutionConfig(), getParentForChildren(), isClean()); dnsResolutionConfig_ = null; } return dnsResolutionConfigBuilder_; } private io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig typedDnsResolverConfig_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder> typedDnsResolverConfigBuilder_; /** *
     * DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
     * or any other DNS resolver types and the related parameters.
     * For example, an object of
     * :ref:`CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
     * can be packed into this ``typed_dns_resolver_config``. This configuration replaces the
     * :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
     * configuration.
     * During the transition period when both ``dns_resolution_config`` and ``typed_dns_resolver_config`` exists,
     * when ``typed_dns_resolver_config`` is in place, Envoy will use it and ignore ``dns_resolution_config``.
     * When ``typed_dns_resolver_config`` is missing, the default behavior is in place.
     * [#extension-category: envoy.network.dns_resolver]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig typed_dns_resolver_config = 55; * @return Whether the typedDnsResolverConfig field is set. */ public boolean hasTypedDnsResolverConfig() { return typedDnsResolverConfigBuilder_ != null || typedDnsResolverConfig_ != null; } /** *
     * DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
     * or any other DNS resolver types and the related parameters.
     * For example, an object of
     * :ref:`CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
     * can be packed into this ``typed_dns_resolver_config``. This configuration replaces the
     * :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
     * configuration.
     * During the transition period when both ``dns_resolution_config`` and ``typed_dns_resolver_config`` exists,
     * when ``typed_dns_resolver_config`` is in place, Envoy will use it and ignore ``dns_resolution_config``.
     * When ``typed_dns_resolver_config`` is missing, the default behavior is in place.
     * [#extension-category: envoy.network.dns_resolver]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig typed_dns_resolver_config = 55; * @return The typedDnsResolverConfig. */ public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig getTypedDnsResolverConfig() { if (typedDnsResolverConfigBuilder_ == null) { return typedDnsResolverConfig_ == null ? io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance() : typedDnsResolverConfig_; } else { return typedDnsResolverConfigBuilder_.getMessage(); } } /** *
     * DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
     * or any other DNS resolver types and the related parameters.
     * For example, an object of
     * :ref:`CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
     * can be packed into this ``typed_dns_resolver_config``. This configuration replaces the
     * :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
     * configuration.
     * During the transition period when both ``dns_resolution_config`` and ``typed_dns_resolver_config`` exists,
     * when ``typed_dns_resolver_config`` is in place, Envoy will use it and ignore ``dns_resolution_config``.
     * When ``typed_dns_resolver_config`` is missing, the default behavior is in place.
     * [#extension-category: envoy.network.dns_resolver]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig typed_dns_resolver_config = 55; */ public Builder setTypedDnsResolverConfig(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig value) { if (typedDnsResolverConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } typedDnsResolverConfig_ = value; onChanged(); } else { typedDnsResolverConfigBuilder_.setMessage(value); } return this; } /** *
     * DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
     * or any other DNS resolver types and the related parameters.
     * For example, an object of
     * :ref:`CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
     * can be packed into this ``typed_dns_resolver_config``. This configuration replaces the
     * :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
     * configuration.
     * During the transition period when both ``dns_resolution_config`` and ``typed_dns_resolver_config`` exists,
     * when ``typed_dns_resolver_config`` is in place, Envoy will use it and ignore ``dns_resolution_config``.
     * When ``typed_dns_resolver_config`` is missing, the default behavior is in place.
     * [#extension-category: envoy.network.dns_resolver]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig typed_dns_resolver_config = 55; */ public Builder setTypedDnsResolverConfig( io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder builderForValue) { if (typedDnsResolverConfigBuilder_ == null) { typedDnsResolverConfig_ = builderForValue.build(); onChanged(); } else { typedDnsResolverConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
     * or any other DNS resolver types and the related parameters.
     * For example, an object of
     * :ref:`CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
     * can be packed into this ``typed_dns_resolver_config``. This configuration replaces the
     * :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
     * configuration.
     * During the transition period when both ``dns_resolution_config`` and ``typed_dns_resolver_config`` exists,
     * when ``typed_dns_resolver_config`` is in place, Envoy will use it and ignore ``dns_resolution_config``.
     * When ``typed_dns_resolver_config`` is missing, the default behavior is in place.
     * [#extension-category: envoy.network.dns_resolver]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig typed_dns_resolver_config = 55; */ public Builder mergeTypedDnsResolverConfig(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig value) { if (typedDnsResolverConfigBuilder_ == null) { if (typedDnsResolverConfig_ != null) { typedDnsResolverConfig_ = io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.newBuilder(typedDnsResolverConfig_).mergeFrom(value).buildPartial(); } else { typedDnsResolverConfig_ = value; } onChanged(); } else { typedDnsResolverConfigBuilder_.mergeFrom(value); } return this; } /** *
     * DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
     * or any other DNS resolver types and the related parameters.
     * For example, an object of
     * :ref:`CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
     * can be packed into this ``typed_dns_resolver_config``. This configuration replaces the
     * :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
     * configuration.
     * During the transition period when both ``dns_resolution_config`` and ``typed_dns_resolver_config`` exists,
     * when ``typed_dns_resolver_config`` is in place, Envoy will use it and ignore ``dns_resolution_config``.
     * When ``typed_dns_resolver_config`` is missing, the default behavior is in place.
     * [#extension-category: envoy.network.dns_resolver]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig typed_dns_resolver_config = 55; */ public Builder clearTypedDnsResolverConfig() { if (typedDnsResolverConfigBuilder_ == null) { typedDnsResolverConfig_ = null; onChanged(); } else { typedDnsResolverConfig_ = null; typedDnsResolverConfigBuilder_ = null; } return this; } /** *
     * DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
     * or any other DNS resolver types and the related parameters.
     * For example, an object of
     * :ref:`CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
     * can be packed into this ``typed_dns_resolver_config``. This configuration replaces the
     * :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
     * configuration.
     * During the transition period when both ``dns_resolution_config`` and ``typed_dns_resolver_config`` exists,
     * when ``typed_dns_resolver_config`` is in place, Envoy will use it and ignore ``dns_resolution_config``.
     * When ``typed_dns_resolver_config`` is missing, the default behavior is in place.
     * [#extension-category: envoy.network.dns_resolver]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig typed_dns_resolver_config = 55; */ public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder getTypedDnsResolverConfigBuilder() { onChanged(); return getTypedDnsResolverConfigFieldBuilder().getBuilder(); } /** *
     * DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
     * or any other DNS resolver types and the related parameters.
     * For example, an object of
     * :ref:`CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
     * can be packed into this ``typed_dns_resolver_config``. This configuration replaces the
     * :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
     * configuration.
     * During the transition period when both ``dns_resolution_config`` and ``typed_dns_resolver_config`` exists,
     * when ``typed_dns_resolver_config`` is in place, Envoy will use it and ignore ``dns_resolution_config``.
     * When ``typed_dns_resolver_config`` is missing, the default behavior is in place.
     * [#extension-category: envoy.network.dns_resolver]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig typed_dns_resolver_config = 55; */ public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder getTypedDnsResolverConfigOrBuilder() { if (typedDnsResolverConfigBuilder_ != null) { return typedDnsResolverConfigBuilder_.getMessageOrBuilder(); } else { return typedDnsResolverConfig_ == null ? io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance() : typedDnsResolverConfig_; } } /** *
     * DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
     * or any other DNS resolver types and the related parameters.
     * For example, an object of
     * :ref:`CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>`
     * can be packed into this ``typed_dns_resolver_config``. This configuration replaces the
     * :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
     * configuration.
     * During the transition period when both ``dns_resolution_config`` and ``typed_dns_resolver_config`` exists,
     * when ``typed_dns_resolver_config`` is in place, Envoy will use it and ignore ``dns_resolution_config``.
     * When ``typed_dns_resolver_config`` is missing, the default behavior is in place.
     * [#extension-category: envoy.network.dns_resolver]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig typed_dns_resolver_config = 55; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder> getTypedDnsResolverConfigFieldBuilder() { if (typedDnsResolverConfigBuilder_ == null) { typedDnsResolverConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder>( getTypedDnsResolverConfig(), getParentForChildren(), isClean()); typedDnsResolverConfig_ = null; } return typedDnsResolverConfigBuilder_; } private com.google.protobuf.BoolValue waitForWarmOnInit_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> waitForWarmOnInitBuilder_; /** *
     * Optional configuration for having cluster readiness block on warm-up. Currently, only applicable for
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`.
     * If true, cluster readiness blocks on warm-up. If false, the cluster will complete
     * initialization whether or not warm-up has completed. Defaults to true.
     * 
* * .google.protobuf.BoolValue wait_for_warm_on_init = 54; * @return Whether the waitForWarmOnInit field is set. */ public boolean hasWaitForWarmOnInit() { return waitForWarmOnInitBuilder_ != null || waitForWarmOnInit_ != null; } /** *
     * Optional configuration for having cluster readiness block on warm-up. Currently, only applicable for
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`.
     * If true, cluster readiness blocks on warm-up. If false, the cluster will complete
     * initialization whether or not warm-up has completed. Defaults to true.
     * 
* * .google.protobuf.BoolValue wait_for_warm_on_init = 54; * @return The waitForWarmOnInit. */ public com.google.protobuf.BoolValue getWaitForWarmOnInit() { if (waitForWarmOnInitBuilder_ == null) { return waitForWarmOnInit_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : waitForWarmOnInit_; } else { return waitForWarmOnInitBuilder_.getMessage(); } } /** *
     * Optional configuration for having cluster readiness block on warm-up. Currently, only applicable for
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`.
     * If true, cluster readiness blocks on warm-up. If false, the cluster will complete
     * initialization whether or not warm-up has completed. Defaults to true.
     * 
* * .google.protobuf.BoolValue wait_for_warm_on_init = 54; */ public Builder setWaitForWarmOnInit(com.google.protobuf.BoolValue value) { if (waitForWarmOnInitBuilder_ == null) { if (value == null) { throw new NullPointerException(); } waitForWarmOnInit_ = value; onChanged(); } else { waitForWarmOnInitBuilder_.setMessage(value); } return this; } /** *
     * Optional configuration for having cluster readiness block on warm-up. Currently, only applicable for
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`.
     * If true, cluster readiness blocks on warm-up. If false, the cluster will complete
     * initialization whether or not warm-up has completed. Defaults to true.
     * 
* * .google.protobuf.BoolValue wait_for_warm_on_init = 54; */ public Builder setWaitForWarmOnInit( com.google.protobuf.BoolValue.Builder builderForValue) { if (waitForWarmOnInitBuilder_ == null) { waitForWarmOnInit_ = builderForValue.build(); onChanged(); } else { waitForWarmOnInitBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Optional configuration for having cluster readiness block on warm-up. Currently, only applicable for
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`.
     * If true, cluster readiness blocks on warm-up. If false, the cluster will complete
     * initialization whether or not warm-up has completed. Defaults to true.
     * 
* * .google.protobuf.BoolValue wait_for_warm_on_init = 54; */ public Builder mergeWaitForWarmOnInit(com.google.protobuf.BoolValue value) { if (waitForWarmOnInitBuilder_ == null) { if (waitForWarmOnInit_ != null) { waitForWarmOnInit_ = com.google.protobuf.BoolValue.newBuilder(waitForWarmOnInit_).mergeFrom(value).buildPartial(); } else { waitForWarmOnInit_ = value; } onChanged(); } else { waitForWarmOnInitBuilder_.mergeFrom(value); } return this; } /** *
     * Optional configuration for having cluster readiness block on warm-up. Currently, only applicable for
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`.
     * If true, cluster readiness blocks on warm-up. If false, the cluster will complete
     * initialization whether or not warm-up has completed. Defaults to true.
     * 
* * .google.protobuf.BoolValue wait_for_warm_on_init = 54; */ public Builder clearWaitForWarmOnInit() { if (waitForWarmOnInitBuilder_ == null) { waitForWarmOnInit_ = null; onChanged(); } else { waitForWarmOnInit_ = null; waitForWarmOnInitBuilder_ = null; } return this; } /** *
     * Optional configuration for having cluster readiness block on warm-up. Currently, only applicable for
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`.
     * If true, cluster readiness blocks on warm-up. If false, the cluster will complete
     * initialization whether or not warm-up has completed. Defaults to true.
     * 
* * .google.protobuf.BoolValue wait_for_warm_on_init = 54; */ public com.google.protobuf.BoolValue.Builder getWaitForWarmOnInitBuilder() { onChanged(); return getWaitForWarmOnInitFieldBuilder().getBuilder(); } /** *
     * Optional configuration for having cluster readiness block on warm-up. Currently, only applicable for
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`.
     * If true, cluster readiness blocks on warm-up. If false, the cluster will complete
     * initialization whether or not warm-up has completed. Defaults to true.
     * 
* * .google.protobuf.BoolValue wait_for_warm_on_init = 54; */ public com.google.protobuf.BoolValueOrBuilder getWaitForWarmOnInitOrBuilder() { if (waitForWarmOnInitBuilder_ != null) { return waitForWarmOnInitBuilder_.getMessageOrBuilder(); } else { return waitForWarmOnInit_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : waitForWarmOnInit_; } } /** *
     * Optional configuration for having cluster readiness block on warm-up. Currently, only applicable for
     * :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
     * or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`.
     * If true, cluster readiness blocks on warm-up. If false, the cluster will complete
     * initialization whether or not warm-up has completed. Defaults to true.
     * 
* * .google.protobuf.BoolValue wait_for_warm_on_init = 54; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> getWaitForWarmOnInitFieldBuilder() { if (waitForWarmOnInitBuilder_ == null) { waitForWarmOnInitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>( getWaitForWarmOnInit(), getParentForChildren(), isClean()); waitForWarmOnInit_ = null; } return waitForWarmOnInitBuilder_; } private io.envoyproxy.envoy.config.cluster.v3.OutlierDetection outlierDetection_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.OutlierDetection, io.envoyproxy.envoy.config.cluster.v3.OutlierDetection.Builder, io.envoyproxy.envoy.config.cluster.v3.OutlierDetectionOrBuilder> outlierDetectionBuilder_; /** *
     * If specified, outlier detection will be enabled for this upstream cluster.
     * Each of the configuration values can be overridden via
     * :ref:`runtime values <config_cluster_manager_cluster_runtime_outlier_detection>`.
     * 
* * .envoy.config.cluster.v3.OutlierDetection outlier_detection = 19; * @return Whether the outlierDetection field is set. */ public boolean hasOutlierDetection() { return outlierDetectionBuilder_ != null || outlierDetection_ != null; } /** *
     * If specified, outlier detection will be enabled for this upstream cluster.
     * Each of the configuration values can be overridden via
     * :ref:`runtime values <config_cluster_manager_cluster_runtime_outlier_detection>`.
     * 
* * .envoy.config.cluster.v3.OutlierDetection outlier_detection = 19; * @return The outlierDetection. */ public io.envoyproxy.envoy.config.cluster.v3.OutlierDetection getOutlierDetection() { if (outlierDetectionBuilder_ == null) { return outlierDetection_ == null ? io.envoyproxy.envoy.config.cluster.v3.OutlierDetection.getDefaultInstance() : outlierDetection_; } else { return outlierDetectionBuilder_.getMessage(); } } /** *
     * If specified, outlier detection will be enabled for this upstream cluster.
     * Each of the configuration values can be overridden via
     * :ref:`runtime values <config_cluster_manager_cluster_runtime_outlier_detection>`.
     * 
* * .envoy.config.cluster.v3.OutlierDetection outlier_detection = 19; */ public Builder setOutlierDetection(io.envoyproxy.envoy.config.cluster.v3.OutlierDetection value) { if (outlierDetectionBuilder_ == null) { if (value == null) { throw new NullPointerException(); } outlierDetection_ = value; onChanged(); } else { outlierDetectionBuilder_.setMessage(value); } return this; } /** *
     * If specified, outlier detection will be enabled for this upstream cluster.
     * Each of the configuration values can be overridden via
     * :ref:`runtime values <config_cluster_manager_cluster_runtime_outlier_detection>`.
     * 
* * .envoy.config.cluster.v3.OutlierDetection outlier_detection = 19; */ public Builder setOutlierDetection( io.envoyproxy.envoy.config.cluster.v3.OutlierDetection.Builder builderForValue) { if (outlierDetectionBuilder_ == null) { outlierDetection_ = builderForValue.build(); onChanged(); } else { outlierDetectionBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * If specified, outlier detection will be enabled for this upstream cluster.
     * Each of the configuration values can be overridden via
     * :ref:`runtime values <config_cluster_manager_cluster_runtime_outlier_detection>`.
     * 
* * .envoy.config.cluster.v3.OutlierDetection outlier_detection = 19; */ public Builder mergeOutlierDetection(io.envoyproxy.envoy.config.cluster.v3.OutlierDetection value) { if (outlierDetectionBuilder_ == null) { if (outlierDetection_ != null) { outlierDetection_ = io.envoyproxy.envoy.config.cluster.v3.OutlierDetection.newBuilder(outlierDetection_).mergeFrom(value).buildPartial(); } else { outlierDetection_ = value; } onChanged(); } else { outlierDetectionBuilder_.mergeFrom(value); } return this; } /** *
     * If specified, outlier detection will be enabled for this upstream cluster.
     * Each of the configuration values can be overridden via
     * :ref:`runtime values <config_cluster_manager_cluster_runtime_outlier_detection>`.
     * 
* * .envoy.config.cluster.v3.OutlierDetection outlier_detection = 19; */ public Builder clearOutlierDetection() { if (outlierDetectionBuilder_ == null) { outlierDetection_ = null; onChanged(); } else { outlierDetection_ = null; outlierDetectionBuilder_ = null; } return this; } /** *
     * If specified, outlier detection will be enabled for this upstream cluster.
     * Each of the configuration values can be overridden via
     * :ref:`runtime values <config_cluster_manager_cluster_runtime_outlier_detection>`.
     * 
* * .envoy.config.cluster.v3.OutlierDetection outlier_detection = 19; */ public io.envoyproxy.envoy.config.cluster.v3.OutlierDetection.Builder getOutlierDetectionBuilder() { onChanged(); return getOutlierDetectionFieldBuilder().getBuilder(); } /** *
     * If specified, outlier detection will be enabled for this upstream cluster.
     * Each of the configuration values can be overridden via
     * :ref:`runtime values <config_cluster_manager_cluster_runtime_outlier_detection>`.
     * 
* * .envoy.config.cluster.v3.OutlierDetection outlier_detection = 19; */ public io.envoyproxy.envoy.config.cluster.v3.OutlierDetectionOrBuilder getOutlierDetectionOrBuilder() { if (outlierDetectionBuilder_ != null) { return outlierDetectionBuilder_.getMessageOrBuilder(); } else { return outlierDetection_ == null ? io.envoyproxy.envoy.config.cluster.v3.OutlierDetection.getDefaultInstance() : outlierDetection_; } } /** *
     * If specified, outlier detection will be enabled for this upstream cluster.
     * Each of the configuration values can be overridden via
     * :ref:`runtime values <config_cluster_manager_cluster_runtime_outlier_detection>`.
     * 
* * .envoy.config.cluster.v3.OutlierDetection outlier_detection = 19; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.OutlierDetection, io.envoyproxy.envoy.config.cluster.v3.OutlierDetection.Builder, io.envoyproxy.envoy.config.cluster.v3.OutlierDetectionOrBuilder> getOutlierDetectionFieldBuilder() { if (outlierDetectionBuilder_ == null) { outlierDetectionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.OutlierDetection, io.envoyproxy.envoy.config.cluster.v3.OutlierDetection.Builder, io.envoyproxy.envoy.config.cluster.v3.OutlierDetectionOrBuilder>( getOutlierDetection(), getParentForChildren(), isClean()); outlierDetection_ = null; } return outlierDetectionBuilder_; } private com.google.protobuf.Duration cleanupInterval_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> cleanupIntervalBuilder_; /** *
     * The interval for removing stale hosts from a cluster type
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
     * Hosts are considered stale if they have not been used
     * as upstream destinations during this interval. New hosts are added
     * to original destination clusters on demand as new connections are
     * redirected to Envoy, causing the number of hosts in the cluster to
     * grow over time. Hosts that are not stale (they are actively used as
     * destinations) are kept in the cluster, which allows connections to
     * them remain open, saving the latency that would otherwise be spent
     * on opening new connections. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration cleanup_interval = 20 [(.validate.rules) = { ... } * @return Whether the cleanupInterval field is set. */ public boolean hasCleanupInterval() { return cleanupIntervalBuilder_ != null || cleanupInterval_ != null; } /** *
     * The interval for removing stale hosts from a cluster type
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
     * Hosts are considered stale if they have not been used
     * as upstream destinations during this interval. New hosts are added
     * to original destination clusters on demand as new connections are
     * redirected to Envoy, causing the number of hosts in the cluster to
     * grow over time. Hosts that are not stale (they are actively used as
     * destinations) are kept in the cluster, which allows connections to
     * them remain open, saving the latency that would otherwise be spent
     * on opening new connections. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration cleanup_interval = 20 [(.validate.rules) = { ... } * @return The cleanupInterval. */ public com.google.protobuf.Duration getCleanupInterval() { if (cleanupIntervalBuilder_ == null) { return cleanupInterval_ == null ? com.google.protobuf.Duration.getDefaultInstance() : cleanupInterval_; } else { return cleanupIntervalBuilder_.getMessage(); } } /** *
     * The interval for removing stale hosts from a cluster type
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
     * Hosts are considered stale if they have not been used
     * as upstream destinations during this interval. New hosts are added
     * to original destination clusters on demand as new connections are
     * redirected to Envoy, causing the number of hosts in the cluster to
     * grow over time. Hosts that are not stale (they are actively used as
     * destinations) are kept in the cluster, which allows connections to
     * them remain open, saving the latency that would otherwise be spent
     * on opening new connections. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration cleanup_interval = 20 [(.validate.rules) = { ... } */ public Builder setCleanupInterval(com.google.protobuf.Duration value) { if (cleanupIntervalBuilder_ == null) { if (value == null) { throw new NullPointerException(); } cleanupInterval_ = value; onChanged(); } else { cleanupIntervalBuilder_.setMessage(value); } return this; } /** *
     * The interval for removing stale hosts from a cluster type
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
     * Hosts are considered stale if they have not been used
     * as upstream destinations during this interval. New hosts are added
     * to original destination clusters on demand as new connections are
     * redirected to Envoy, causing the number of hosts in the cluster to
     * grow over time. Hosts that are not stale (they are actively used as
     * destinations) are kept in the cluster, which allows connections to
     * them remain open, saving the latency that would otherwise be spent
     * on opening new connections. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration cleanup_interval = 20 [(.validate.rules) = { ... } */ public Builder setCleanupInterval( com.google.protobuf.Duration.Builder builderForValue) { if (cleanupIntervalBuilder_ == null) { cleanupInterval_ = builderForValue.build(); onChanged(); } else { cleanupIntervalBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * The interval for removing stale hosts from a cluster type
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
     * Hosts are considered stale if they have not been used
     * as upstream destinations during this interval. New hosts are added
     * to original destination clusters on demand as new connections are
     * redirected to Envoy, causing the number of hosts in the cluster to
     * grow over time. Hosts that are not stale (they are actively used as
     * destinations) are kept in the cluster, which allows connections to
     * them remain open, saving the latency that would otherwise be spent
     * on opening new connections. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration cleanup_interval = 20 [(.validate.rules) = { ... } */ public Builder mergeCleanupInterval(com.google.protobuf.Duration value) { if (cleanupIntervalBuilder_ == null) { if (cleanupInterval_ != null) { cleanupInterval_ = com.google.protobuf.Duration.newBuilder(cleanupInterval_).mergeFrom(value).buildPartial(); } else { cleanupInterval_ = value; } onChanged(); } else { cleanupIntervalBuilder_.mergeFrom(value); } return this; } /** *
     * The interval for removing stale hosts from a cluster type
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
     * Hosts are considered stale if they have not been used
     * as upstream destinations during this interval. New hosts are added
     * to original destination clusters on demand as new connections are
     * redirected to Envoy, causing the number of hosts in the cluster to
     * grow over time. Hosts that are not stale (they are actively used as
     * destinations) are kept in the cluster, which allows connections to
     * them remain open, saving the latency that would otherwise be spent
     * on opening new connections. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration cleanup_interval = 20 [(.validate.rules) = { ... } */ public Builder clearCleanupInterval() { if (cleanupIntervalBuilder_ == null) { cleanupInterval_ = null; onChanged(); } else { cleanupInterval_ = null; cleanupIntervalBuilder_ = null; } return this; } /** *
     * The interval for removing stale hosts from a cluster type
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
     * Hosts are considered stale if they have not been used
     * as upstream destinations during this interval. New hosts are added
     * to original destination clusters on demand as new connections are
     * redirected to Envoy, causing the number of hosts in the cluster to
     * grow over time. Hosts that are not stale (they are actively used as
     * destinations) are kept in the cluster, which allows connections to
     * them remain open, saving the latency that would otherwise be spent
     * on opening new connections. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration cleanup_interval = 20 [(.validate.rules) = { ... } */ public com.google.protobuf.Duration.Builder getCleanupIntervalBuilder() { onChanged(); return getCleanupIntervalFieldBuilder().getBuilder(); } /** *
     * The interval for removing stale hosts from a cluster type
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
     * Hosts are considered stale if they have not been used
     * as upstream destinations during this interval. New hosts are added
     * to original destination clusters on demand as new connections are
     * redirected to Envoy, causing the number of hosts in the cluster to
     * grow over time. Hosts that are not stale (they are actively used as
     * destinations) are kept in the cluster, which allows connections to
     * them remain open, saving the latency that would otherwise be spent
     * on opening new connections. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration cleanup_interval = 20 [(.validate.rules) = { ... } */ public com.google.protobuf.DurationOrBuilder getCleanupIntervalOrBuilder() { if (cleanupIntervalBuilder_ != null) { return cleanupIntervalBuilder_.getMessageOrBuilder(); } else { return cleanupInterval_ == null ? com.google.protobuf.Duration.getDefaultInstance() : cleanupInterval_; } } /** *
     * The interval for removing stale hosts from a cluster type
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
     * Hosts are considered stale if they have not been used
     * as upstream destinations during this interval. New hosts are added
     * to original destination clusters on demand as new connections are
     * redirected to Envoy, causing the number of hosts in the cluster to
     * grow over time. Hosts that are not stale (they are actively used as
     * destinations) are kept in the cluster, which allows connections to
     * them remain open, saving the latency that would otherwise be spent
     * on opening new connections. If this setting is not specified, the
     * value defaults to 5000ms. For cluster types other than
     * :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
     * this setting is ignored.
     * 
* * .google.protobuf.Duration cleanup_interval = 20 [(.validate.rules) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getCleanupIntervalFieldBuilder() { if (cleanupIntervalBuilder_ == null) { cleanupIntervalBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getCleanupInterval(), getParentForChildren(), isClean()); cleanupInterval_ = null; } return cleanupIntervalBuilder_; } private io.envoyproxy.envoy.config.core.v3.BindConfig upstreamBindConfig_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.BindConfig, io.envoyproxy.envoy.config.core.v3.BindConfig.Builder, io.envoyproxy.envoy.config.core.v3.BindConfigOrBuilder> upstreamBindConfigBuilder_; /** *
     * Optional configuration used to bind newly established upstream connections.
     * This overrides any bind_config specified in the bootstrap proto.
     * If the address and port are empty, no bind will be performed.
     * 
* * .envoy.config.core.v3.BindConfig upstream_bind_config = 21; * @return Whether the upstreamBindConfig field is set. */ public boolean hasUpstreamBindConfig() { return upstreamBindConfigBuilder_ != null || upstreamBindConfig_ != null; } /** *
     * Optional configuration used to bind newly established upstream connections.
     * This overrides any bind_config specified in the bootstrap proto.
     * If the address and port are empty, no bind will be performed.
     * 
* * .envoy.config.core.v3.BindConfig upstream_bind_config = 21; * @return The upstreamBindConfig. */ public io.envoyproxy.envoy.config.core.v3.BindConfig getUpstreamBindConfig() { if (upstreamBindConfigBuilder_ == null) { return upstreamBindConfig_ == null ? io.envoyproxy.envoy.config.core.v3.BindConfig.getDefaultInstance() : upstreamBindConfig_; } else { return upstreamBindConfigBuilder_.getMessage(); } } /** *
     * Optional configuration used to bind newly established upstream connections.
     * This overrides any bind_config specified in the bootstrap proto.
     * If the address and port are empty, no bind will be performed.
     * 
* * .envoy.config.core.v3.BindConfig upstream_bind_config = 21; */ public Builder setUpstreamBindConfig(io.envoyproxy.envoy.config.core.v3.BindConfig value) { if (upstreamBindConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } upstreamBindConfig_ = value; onChanged(); } else { upstreamBindConfigBuilder_.setMessage(value); } return this; } /** *
     * Optional configuration used to bind newly established upstream connections.
     * This overrides any bind_config specified in the bootstrap proto.
     * If the address and port are empty, no bind will be performed.
     * 
* * .envoy.config.core.v3.BindConfig upstream_bind_config = 21; */ public Builder setUpstreamBindConfig( io.envoyproxy.envoy.config.core.v3.BindConfig.Builder builderForValue) { if (upstreamBindConfigBuilder_ == null) { upstreamBindConfig_ = builderForValue.build(); onChanged(); } else { upstreamBindConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Optional configuration used to bind newly established upstream connections.
     * This overrides any bind_config specified in the bootstrap proto.
     * If the address and port are empty, no bind will be performed.
     * 
* * .envoy.config.core.v3.BindConfig upstream_bind_config = 21; */ public Builder mergeUpstreamBindConfig(io.envoyproxy.envoy.config.core.v3.BindConfig value) { if (upstreamBindConfigBuilder_ == null) { if (upstreamBindConfig_ != null) { upstreamBindConfig_ = io.envoyproxy.envoy.config.core.v3.BindConfig.newBuilder(upstreamBindConfig_).mergeFrom(value).buildPartial(); } else { upstreamBindConfig_ = value; } onChanged(); } else { upstreamBindConfigBuilder_.mergeFrom(value); } return this; } /** *
     * Optional configuration used to bind newly established upstream connections.
     * This overrides any bind_config specified in the bootstrap proto.
     * If the address and port are empty, no bind will be performed.
     * 
* * .envoy.config.core.v3.BindConfig upstream_bind_config = 21; */ public Builder clearUpstreamBindConfig() { if (upstreamBindConfigBuilder_ == null) { upstreamBindConfig_ = null; onChanged(); } else { upstreamBindConfig_ = null; upstreamBindConfigBuilder_ = null; } return this; } /** *
     * Optional configuration used to bind newly established upstream connections.
     * This overrides any bind_config specified in the bootstrap proto.
     * If the address and port are empty, no bind will be performed.
     * 
* * .envoy.config.core.v3.BindConfig upstream_bind_config = 21; */ public io.envoyproxy.envoy.config.core.v3.BindConfig.Builder getUpstreamBindConfigBuilder() { onChanged(); return getUpstreamBindConfigFieldBuilder().getBuilder(); } /** *
     * Optional configuration used to bind newly established upstream connections.
     * This overrides any bind_config specified in the bootstrap proto.
     * If the address and port are empty, no bind will be performed.
     * 
* * .envoy.config.core.v3.BindConfig upstream_bind_config = 21; */ public io.envoyproxy.envoy.config.core.v3.BindConfigOrBuilder getUpstreamBindConfigOrBuilder() { if (upstreamBindConfigBuilder_ != null) { return upstreamBindConfigBuilder_.getMessageOrBuilder(); } else { return upstreamBindConfig_ == null ? io.envoyproxy.envoy.config.core.v3.BindConfig.getDefaultInstance() : upstreamBindConfig_; } } /** *
     * Optional configuration used to bind newly established upstream connections.
     * This overrides any bind_config specified in the bootstrap proto.
     * If the address and port are empty, no bind will be performed.
     * 
* * .envoy.config.core.v3.BindConfig upstream_bind_config = 21; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.BindConfig, io.envoyproxy.envoy.config.core.v3.BindConfig.Builder, io.envoyproxy.envoy.config.core.v3.BindConfigOrBuilder> getUpstreamBindConfigFieldBuilder() { if (upstreamBindConfigBuilder_ == null) { upstreamBindConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.BindConfig, io.envoyproxy.envoy.config.core.v3.BindConfig.Builder, io.envoyproxy.envoy.config.core.v3.BindConfigOrBuilder>( getUpstreamBindConfig(), getParentForChildren(), isClean()); upstreamBindConfig_ = null; } return upstreamBindConfigBuilder_; } private io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig lbSubsetConfig_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfigOrBuilder> lbSubsetConfigBuilder_; /** *
     * Configuration for load balancing subsetting.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig lb_subset_config = 22; * @return Whether the lbSubsetConfig field is set. */ public boolean hasLbSubsetConfig() { return lbSubsetConfigBuilder_ != null || lbSubsetConfig_ != null; } /** *
     * Configuration for load balancing subsetting.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig lb_subset_config = 22; * @return The lbSubsetConfig. */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig getLbSubsetConfig() { if (lbSubsetConfigBuilder_ == null) { return lbSubsetConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.getDefaultInstance() : lbSubsetConfig_; } else { return lbSubsetConfigBuilder_.getMessage(); } } /** *
     * Configuration for load balancing subsetting.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig lb_subset_config = 22; */ public Builder setLbSubsetConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig value) { if (lbSubsetConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } lbSubsetConfig_ = value; onChanged(); } else { lbSubsetConfigBuilder_.setMessage(value); } return this; } /** *
     * Configuration for load balancing subsetting.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig lb_subset_config = 22; */ public Builder setLbSubsetConfig( io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.Builder builderForValue) { if (lbSubsetConfigBuilder_ == null) { lbSubsetConfig_ = builderForValue.build(); onChanged(); } else { lbSubsetConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Configuration for load balancing subsetting.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig lb_subset_config = 22; */ public Builder mergeLbSubsetConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig value) { if (lbSubsetConfigBuilder_ == null) { if (lbSubsetConfig_ != null) { lbSubsetConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.newBuilder(lbSubsetConfig_).mergeFrom(value).buildPartial(); } else { lbSubsetConfig_ = value; } onChanged(); } else { lbSubsetConfigBuilder_.mergeFrom(value); } return this; } /** *
     * Configuration for load balancing subsetting.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig lb_subset_config = 22; */ public Builder clearLbSubsetConfig() { if (lbSubsetConfigBuilder_ == null) { lbSubsetConfig_ = null; onChanged(); } else { lbSubsetConfig_ = null; lbSubsetConfigBuilder_ = null; } return this; } /** *
     * Configuration for load balancing subsetting.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig lb_subset_config = 22; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.Builder getLbSubsetConfigBuilder() { onChanged(); return getLbSubsetConfigFieldBuilder().getBuilder(); } /** *
     * Configuration for load balancing subsetting.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig lb_subset_config = 22; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfigOrBuilder getLbSubsetConfigOrBuilder() { if (lbSubsetConfigBuilder_ != null) { return lbSubsetConfigBuilder_.getMessageOrBuilder(); } else { return lbSubsetConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.getDefaultInstance() : lbSubsetConfig_; } } /** *
     * Configuration for load balancing subsetting.
     * 
* * .envoy.config.cluster.v3.Cluster.LbSubsetConfig lb_subset_config = 22; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfigOrBuilder> getLbSubsetConfigFieldBuilder() { if (lbSubsetConfigBuilder_ == null) { lbSubsetConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfigOrBuilder>( getLbSubsetConfig(), getParentForChildren(), isClean()); lbSubsetConfig_ = null; } return lbSubsetConfigBuilder_; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfigOrBuilder> ringHashLbConfigBuilder_; /** *
     * Optional configuration for the Ring Hash load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig ring_hash_lb_config = 23; * @return Whether the ringHashLbConfig field is set. */ @java.lang.Override public boolean hasRingHashLbConfig() { return lbConfigCase_ == 23; } /** *
     * Optional configuration for the Ring Hash load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig ring_hash_lb_config = 23; * @return The ringHashLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig getRingHashLbConfig() { if (ringHashLbConfigBuilder_ == null) { if (lbConfigCase_ == 23) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.getDefaultInstance(); } else { if (lbConfigCase_ == 23) { return ringHashLbConfigBuilder_.getMessage(); } return io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.getDefaultInstance(); } } /** *
     * Optional configuration for the Ring Hash load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig ring_hash_lb_config = 23; */ public Builder setRingHashLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig value) { if (ringHashLbConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } lbConfig_ = value; onChanged(); } else { ringHashLbConfigBuilder_.setMessage(value); } lbConfigCase_ = 23; return this; } /** *
     * Optional configuration for the Ring Hash load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig ring_hash_lb_config = 23; */ public Builder setRingHashLbConfig( io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.Builder builderForValue) { if (ringHashLbConfigBuilder_ == null) { lbConfig_ = builderForValue.build(); onChanged(); } else { ringHashLbConfigBuilder_.setMessage(builderForValue.build()); } lbConfigCase_ = 23; return this; } /** *
     * Optional configuration for the Ring Hash load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig ring_hash_lb_config = 23; */ public Builder mergeRingHashLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig value) { if (ringHashLbConfigBuilder_ == null) { if (lbConfigCase_ == 23 && lbConfig_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.getDefaultInstance()) { lbConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.newBuilder((io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig) lbConfig_) .mergeFrom(value).buildPartial(); } else { lbConfig_ = value; } onChanged(); } else { if (lbConfigCase_ == 23) { ringHashLbConfigBuilder_.mergeFrom(value); } else { ringHashLbConfigBuilder_.setMessage(value); } } lbConfigCase_ = 23; return this; } /** *
     * Optional configuration for the Ring Hash load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig ring_hash_lb_config = 23; */ public Builder clearRingHashLbConfig() { if (ringHashLbConfigBuilder_ == null) { if (lbConfigCase_ == 23) { lbConfigCase_ = 0; lbConfig_ = null; onChanged(); } } else { if (lbConfigCase_ == 23) { lbConfigCase_ = 0; lbConfig_ = null; } ringHashLbConfigBuilder_.clear(); } return this; } /** *
     * Optional configuration for the Ring Hash load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig ring_hash_lb_config = 23; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.Builder getRingHashLbConfigBuilder() { return getRingHashLbConfigFieldBuilder().getBuilder(); } /** *
     * Optional configuration for the Ring Hash load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig ring_hash_lb_config = 23; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfigOrBuilder getRingHashLbConfigOrBuilder() { if ((lbConfigCase_ == 23) && (ringHashLbConfigBuilder_ != null)) { return ringHashLbConfigBuilder_.getMessageOrBuilder(); } else { if (lbConfigCase_ == 23) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.getDefaultInstance(); } } /** *
     * Optional configuration for the Ring Hash load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RingHashLbConfig ring_hash_lb_config = 23; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfigOrBuilder> getRingHashLbConfigFieldBuilder() { if (ringHashLbConfigBuilder_ == null) { if (!(lbConfigCase_ == 23)) { lbConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.getDefaultInstance(); } ringHashLbConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfigOrBuilder>( (io.envoyproxy.envoy.config.cluster.v3.Cluster.RingHashLbConfig) lbConfig_, getParentForChildren(), isClean()); lbConfig_ = null; } lbConfigCase_ = 23; onChanged();; return ringHashLbConfigBuilder_; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfigOrBuilder> maglevLbConfigBuilder_; /** *
     * Optional configuration for the Maglev load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.MaglevLbConfig maglev_lb_config = 52; * @return Whether the maglevLbConfig field is set. */ @java.lang.Override public boolean hasMaglevLbConfig() { return lbConfigCase_ == 52; } /** *
     * Optional configuration for the Maglev load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.MaglevLbConfig maglev_lb_config = 52; * @return The maglevLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig getMaglevLbConfig() { if (maglevLbConfigBuilder_ == null) { if (lbConfigCase_ == 52) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.getDefaultInstance(); } else { if (lbConfigCase_ == 52) { return maglevLbConfigBuilder_.getMessage(); } return io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.getDefaultInstance(); } } /** *
     * Optional configuration for the Maglev load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.MaglevLbConfig maglev_lb_config = 52; */ public Builder setMaglevLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig value) { if (maglevLbConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } lbConfig_ = value; onChanged(); } else { maglevLbConfigBuilder_.setMessage(value); } lbConfigCase_ = 52; return this; } /** *
     * Optional configuration for the Maglev load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.MaglevLbConfig maglev_lb_config = 52; */ public Builder setMaglevLbConfig( io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.Builder builderForValue) { if (maglevLbConfigBuilder_ == null) { lbConfig_ = builderForValue.build(); onChanged(); } else { maglevLbConfigBuilder_.setMessage(builderForValue.build()); } lbConfigCase_ = 52; return this; } /** *
     * Optional configuration for the Maglev load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.MaglevLbConfig maglev_lb_config = 52; */ public Builder mergeMaglevLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig value) { if (maglevLbConfigBuilder_ == null) { if (lbConfigCase_ == 52 && lbConfig_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.getDefaultInstance()) { lbConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.newBuilder((io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig) lbConfig_) .mergeFrom(value).buildPartial(); } else { lbConfig_ = value; } onChanged(); } else { if (lbConfigCase_ == 52) { maglevLbConfigBuilder_.mergeFrom(value); } else { maglevLbConfigBuilder_.setMessage(value); } } lbConfigCase_ = 52; return this; } /** *
     * Optional configuration for the Maglev load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.MaglevLbConfig maglev_lb_config = 52; */ public Builder clearMaglevLbConfig() { if (maglevLbConfigBuilder_ == null) { if (lbConfigCase_ == 52) { lbConfigCase_ = 0; lbConfig_ = null; onChanged(); } } else { if (lbConfigCase_ == 52) { lbConfigCase_ = 0; lbConfig_ = null; } maglevLbConfigBuilder_.clear(); } return this; } /** *
     * Optional configuration for the Maglev load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.MaglevLbConfig maglev_lb_config = 52; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.Builder getMaglevLbConfigBuilder() { return getMaglevLbConfigFieldBuilder().getBuilder(); } /** *
     * Optional configuration for the Maglev load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.MaglevLbConfig maglev_lb_config = 52; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfigOrBuilder getMaglevLbConfigOrBuilder() { if ((lbConfigCase_ == 52) && (maglevLbConfigBuilder_ != null)) { return maglevLbConfigBuilder_.getMessageOrBuilder(); } else { if (lbConfigCase_ == 52) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.getDefaultInstance(); } } /** *
     * Optional configuration for the Maglev load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.MaglevLbConfig maglev_lb_config = 52; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfigOrBuilder> getMaglevLbConfigFieldBuilder() { if (maglevLbConfigBuilder_ == null) { if (!(lbConfigCase_ == 52)) { lbConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.getDefaultInstance(); } maglevLbConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfigOrBuilder>( (io.envoyproxy.envoy.config.cluster.v3.Cluster.MaglevLbConfig) lbConfig_, getParentForChildren(), isClean()); lbConfig_ = null; } lbConfigCase_ = 52; onChanged();; return maglevLbConfigBuilder_; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfigOrBuilder> originalDstLbConfigBuilder_; /** *
     * Optional configuration for the Original Destination load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.OriginalDstLbConfig original_dst_lb_config = 34; * @return Whether the originalDstLbConfig field is set. */ @java.lang.Override public boolean hasOriginalDstLbConfig() { return lbConfigCase_ == 34; } /** *
     * Optional configuration for the Original Destination load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.OriginalDstLbConfig original_dst_lb_config = 34; * @return The originalDstLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig getOriginalDstLbConfig() { if (originalDstLbConfigBuilder_ == null) { if (lbConfigCase_ == 34) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.getDefaultInstance(); } else { if (lbConfigCase_ == 34) { return originalDstLbConfigBuilder_.getMessage(); } return io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.getDefaultInstance(); } } /** *
     * Optional configuration for the Original Destination load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.OriginalDstLbConfig original_dst_lb_config = 34; */ public Builder setOriginalDstLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig value) { if (originalDstLbConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } lbConfig_ = value; onChanged(); } else { originalDstLbConfigBuilder_.setMessage(value); } lbConfigCase_ = 34; return this; } /** *
     * Optional configuration for the Original Destination load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.OriginalDstLbConfig original_dst_lb_config = 34; */ public Builder setOriginalDstLbConfig( io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.Builder builderForValue) { if (originalDstLbConfigBuilder_ == null) { lbConfig_ = builderForValue.build(); onChanged(); } else { originalDstLbConfigBuilder_.setMessage(builderForValue.build()); } lbConfigCase_ = 34; return this; } /** *
     * Optional configuration for the Original Destination load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.OriginalDstLbConfig original_dst_lb_config = 34; */ public Builder mergeOriginalDstLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig value) { if (originalDstLbConfigBuilder_ == null) { if (lbConfigCase_ == 34 && lbConfig_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.getDefaultInstance()) { lbConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.newBuilder((io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) lbConfig_) .mergeFrom(value).buildPartial(); } else { lbConfig_ = value; } onChanged(); } else { if (lbConfigCase_ == 34) { originalDstLbConfigBuilder_.mergeFrom(value); } else { originalDstLbConfigBuilder_.setMessage(value); } } lbConfigCase_ = 34; return this; } /** *
     * Optional configuration for the Original Destination load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.OriginalDstLbConfig original_dst_lb_config = 34; */ public Builder clearOriginalDstLbConfig() { if (originalDstLbConfigBuilder_ == null) { if (lbConfigCase_ == 34) { lbConfigCase_ = 0; lbConfig_ = null; onChanged(); } } else { if (lbConfigCase_ == 34) { lbConfigCase_ = 0; lbConfig_ = null; } originalDstLbConfigBuilder_.clear(); } return this; } /** *
     * Optional configuration for the Original Destination load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.OriginalDstLbConfig original_dst_lb_config = 34; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.Builder getOriginalDstLbConfigBuilder() { return getOriginalDstLbConfigFieldBuilder().getBuilder(); } /** *
     * Optional configuration for the Original Destination load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.OriginalDstLbConfig original_dst_lb_config = 34; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfigOrBuilder getOriginalDstLbConfigOrBuilder() { if ((lbConfigCase_ == 34) && (originalDstLbConfigBuilder_ != null)) { return originalDstLbConfigBuilder_.getMessageOrBuilder(); } else { if (lbConfigCase_ == 34) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.getDefaultInstance(); } } /** *
     * Optional configuration for the Original Destination load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.OriginalDstLbConfig original_dst_lb_config = 34; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfigOrBuilder> getOriginalDstLbConfigFieldBuilder() { if (originalDstLbConfigBuilder_ == null) { if (!(lbConfigCase_ == 34)) { lbConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.getDefaultInstance(); } originalDstLbConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfigOrBuilder>( (io.envoyproxy.envoy.config.cluster.v3.Cluster.OriginalDstLbConfig) lbConfig_, getParentForChildren(), isClean()); lbConfig_ = null; } lbConfigCase_ = 34; onChanged();; return originalDstLbConfigBuilder_; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfigOrBuilder> leastRequestLbConfigBuilder_; /** *
     * Optional configuration for the LeastRequest load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.LeastRequestLbConfig least_request_lb_config = 37; * @return Whether the leastRequestLbConfig field is set. */ @java.lang.Override public boolean hasLeastRequestLbConfig() { return lbConfigCase_ == 37; } /** *
     * Optional configuration for the LeastRequest load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.LeastRequestLbConfig least_request_lb_config = 37; * @return The leastRequestLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig getLeastRequestLbConfig() { if (leastRequestLbConfigBuilder_ == null) { if (lbConfigCase_ == 37) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.getDefaultInstance(); } else { if (lbConfigCase_ == 37) { return leastRequestLbConfigBuilder_.getMessage(); } return io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.getDefaultInstance(); } } /** *
     * Optional configuration for the LeastRequest load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.LeastRequestLbConfig least_request_lb_config = 37; */ public Builder setLeastRequestLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig value) { if (leastRequestLbConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } lbConfig_ = value; onChanged(); } else { leastRequestLbConfigBuilder_.setMessage(value); } lbConfigCase_ = 37; return this; } /** *
     * Optional configuration for the LeastRequest load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.LeastRequestLbConfig least_request_lb_config = 37; */ public Builder setLeastRequestLbConfig( io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.Builder builderForValue) { if (leastRequestLbConfigBuilder_ == null) { lbConfig_ = builderForValue.build(); onChanged(); } else { leastRequestLbConfigBuilder_.setMessage(builderForValue.build()); } lbConfigCase_ = 37; return this; } /** *
     * Optional configuration for the LeastRequest load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.LeastRequestLbConfig least_request_lb_config = 37; */ public Builder mergeLeastRequestLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig value) { if (leastRequestLbConfigBuilder_ == null) { if (lbConfigCase_ == 37 && lbConfig_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.getDefaultInstance()) { lbConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.newBuilder((io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) lbConfig_) .mergeFrom(value).buildPartial(); } else { lbConfig_ = value; } onChanged(); } else { if (lbConfigCase_ == 37) { leastRequestLbConfigBuilder_.mergeFrom(value); } else { leastRequestLbConfigBuilder_.setMessage(value); } } lbConfigCase_ = 37; return this; } /** *
     * Optional configuration for the LeastRequest load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.LeastRequestLbConfig least_request_lb_config = 37; */ public Builder clearLeastRequestLbConfig() { if (leastRequestLbConfigBuilder_ == null) { if (lbConfigCase_ == 37) { lbConfigCase_ = 0; lbConfig_ = null; onChanged(); } } else { if (lbConfigCase_ == 37) { lbConfigCase_ = 0; lbConfig_ = null; } leastRequestLbConfigBuilder_.clear(); } return this; } /** *
     * Optional configuration for the LeastRequest load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.LeastRequestLbConfig least_request_lb_config = 37; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.Builder getLeastRequestLbConfigBuilder() { return getLeastRequestLbConfigFieldBuilder().getBuilder(); } /** *
     * Optional configuration for the LeastRequest load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.LeastRequestLbConfig least_request_lb_config = 37; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfigOrBuilder getLeastRequestLbConfigOrBuilder() { if ((lbConfigCase_ == 37) && (leastRequestLbConfigBuilder_ != null)) { return leastRequestLbConfigBuilder_.getMessageOrBuilder(); } else { if (lbConfigCase_ == 37) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.getDefaultInstance(); } } /** *
     * Optional configuration for the LeastRequest load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.LeastRequestLbConfig least_request_lb_config = 37; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfigOrBuilder> getLeastRequestLbConfigFieldBuilder() { if (leastRequestLbConfigBuilder_ == null) { if (!(lbConfigCase_ == 37)) { lbConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.getDefaultInstance(); } leastRequestLbConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfigOrBuilder>( (io.envoyproxy.envoy.config.cluster.v3.Cluster.LeastRequestLbConfig) lbConfig_, getParentForChildren(), isClean()); lbConfig_ = null; } lbConfigCase_ = 37; onChanged();; return leastRequestLbConfigBuilder_; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfigOrBuilder> roundRobinLbConfigBuilder_; /** *
     * Optional configuration for the RoundRobin load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RoundRobinLbConfig round_robin_lb_config = 56; * @return Whether the roundRobinLbConfig field is set. */ @java.lang.Override public boolean hasRoundRobinLbConfig() { return lbConfigCase_ == 56; } /** *
     * Optional configuration for the RoundRobin load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RoundRobinLbConfig round_robin_lb_config = 56; * @return The roundRobinLbConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig getRoundRobinLbConfig() { if (roundRobinLbConfigBuilder_ == null) { if (lbConfigCase_ == 56) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.getDefaultInstance(); } else { if (lbConfigCase_ == 56) { return roundRobinLbConfigBuilder_.getMessage(); } return io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.getDefaultInstance(); } } /** *
     * Optional configuration for the RoundRobin load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RoundRobinLbConfig round_robin_lb_config = 56; */ public Builder setRoundRobinLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig value) { if (roundRobinLbConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } lbConfig_ = value; onChanged(); } else { roundRobinLbConfigBuilder_.setMessage(value); } lbConfigCase_ = 56; return this; } /** *
     * Optional configuration for the RoundRobin load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RoundRobinLbConfig round_robin_lb_config = 56; */ public Builder setRoundRobinLbConfig( io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.Builder builderForValue) { if (roundRobinLbConfigBuilder_ == null) { lbConfig_ = builderForValue.build(); onChanged(); } else { roundRobinLbConfigBuilder_.setMessage(builderForValue.build()); } lbConfigCase_ = 56; return this; } /** *
     * Optional configuration for the RoundRobin load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RoundRobinLbConfig round_robin_lb_config = 56; */ public Builder mergeRoundRobinLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig value) { if (roundRobinLbConfigBuilder_ == null) { if (lbConfigCase_ == 56 && lbConfig_ != io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.getDefaultInstance()) { lbConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.newBuilder((io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) lbConfig_) .mergeFrom(value).buildPartial(); } else { lbConfig_ = value; } onChanged(); } else { if (lbConfigCase_ == 56) { roundRobinLbConfigBuilder_.mergeFrom(value); } else { roundRobinLbConfigBuilder_.setMessage(value); } } lbConfigCase_ = 56; return this; } /** *
     * Optional configuration for the RoundRobin load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RoundRobinLbConfig round_robin_lb_config = 56; */ public Builder clearRoundRobinLbConfig() { if (roundRobinLbConfigBuilder_ == null) { if (lbConfigCase_ == 56) { lbConfigCase_ = 0; lbConfig_ = null; onChanged(); } } else { if (lbConfigCase_ == 56) { lbConfigCase_ = 0; lbConfig_ = null; } roundRobinLbConfigBuilder_.clear(); } return this; } /** *
     * Optional configuration for the RoundRobin load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RoundRobinLbConfig round_robin_lb_config = 56; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.Builder getRoundRobinLbConfigBuilder() { return getRoundRobinLbConfigFieldBuilder().getBuilder(); } /** *
     * Optional configuration for the RoundRobin load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RoundRobinLbConfig round_robin_lb_config = 56; */ @java.lang.Override public io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfigOrBuilder getRoundRobinLbConfigOrBuilder() { if ((lbConfigCase_ == 56) && (roundRobinLbConfigBuilder_ != null)) { return roundRobinLbConfigBuilder_.getMessageOrBuilder(); } else { if (lbConfigCase_ == 56) { return (io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) lbConfig_; } return io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.getDefaultInstance(); } } /** *
     * Optional configuration for the RoundRobin load balancing policy.
     * 
* * .envoy.config.cluster.v3.Cluster.RoundRobinLbConfig round_robin_lb_config = 56; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfigOrBuilder> getRoundRobinLbConfigFieldBuilder() { if (roundRobinLbConfigBuilder_ == null) { if (!(lbConfigCase_ == 56)) { lbConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.getDefaultInstance(); } roundRobinLbConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfigOrBuilder>( (io.envoyproxy.envoy.config.cluster.v3.Cluster.RoundRobinLbConfig) lbConfig_, getParentForChildren(), isClean()); lbConfig_ = null; } lbConfigCase_ = 56; onChanged();; return roundRobinLbConfigBuilder_; } private io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig commonLbConfig_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfigOrBuilder> commonLbConfigBuilder_; /** *
     * Common configuration for all load balancer implementations.
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig common_lb_config = 27; * @return Whether the commonLbConfig field is set. */ public boolean hasCommonLbConfig() { return commonLbConfigBuilder_ != null || commonLbConfig_ != null; } /** *
     * Common configuration for all load balancer implementations.
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig common_lb_config = 27; * @return The commonLbConfig. */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig getCommonLbConfig() { if (commonLbConfigBuilder_ == null) { return commonLbConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.getDefaultInstance() : commonLbConfig_; } else { return commonLbConfigBuilder_.getMessage(); } } /** *
     * Common configuration for all load balancer implementations.
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig common_lb_config = 27; */ public Builder setCommonLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig value) { if (commonLbConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } commonLbConfig_ = value; onChanged(); } else { commonLbConfigBuilder_.setMessage(value); } return this; } /** *
     * Common configuration for all load balancer implementations.
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig common_lb_config = 27; */ public Builder setCommonLbConfig( io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.Builder builderForValue) { if (commonLbConfigBuilder_ == null) { commonLbConfig_ = builderForValue.build(); onChanged(); } else { commonLbConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Common configuration for all load balancer implementations.
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig common_lb_config = 27; */ public Builder mergeCommonLbConfig(io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig value) { if (commonLbConfigBuilder_ == null) { if (commonLbConfig_ != null) { commonLbConfig_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.newBuilder(commonLbConfig_).mergeFrom(value).buildPartial(); } else { commonLbConfig_ = value; } onChanged(); } else { commonLbConfigBuilder_.mergeFrom(value); } return this; } /** *
     * Common configuration for all load balancer implementations.
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig common_lb_config = 27; */ public Builder clearCommonLbConfig() { if (commonLbConfigBuilder_ == null) { commonLbConfig_ = null; onChanged(); } else { commonLbConfig_ = null; commonLbConfigBuilder_ = null; } return this; } /** *
     * Common configuration for all load balancer implementations.
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig common_lb_config = 27; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.Builder getCommonLbConfigBuilder() { onChanged(); return getCommonLbConfigFieldBuilder().getBuilder(); } /** *
     * Common configuration for all load balancer implementations.
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig common_lb_config = 27; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfigOrBuilder getCommonLbConfigOrBuilder() { if (commonLbConfigBuilder_ != null) { return commonLbConfigBuilder_.getMessageOrBuilder(); } else { return commonLbConfig_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.getDefaultInstance() : commonLbConfig_; } } /** *
     * Common configuration for all load balancer implementations.
     * 
* * .envoy.config.cluster.v3.Cluster.CommonLbConfig common_lb_config = 27; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfigOrBuilder> getCommonLbConfigFieldBuilder() { if (commonLbConfigBuilder_ == null) { commonLbConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfig.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.CommonLbConfigOrBuilder>( getCommonLbConfig(), getParentForChildren(), isClean()); commonLbConfig_ = null; } return commonLbConfigBuilder_; } private io.envoyproxy.envoy.config.core.v3.TransportSocket transportSocket_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.TransportSocket, io.envoyproxy.envoy.config.core.v3.TransportSocket.Builder, io.envoyproxy.envoy.config.core.v3.TransportSocketOrBuilder> transportSocketBuilder_; /** *
     * Optional custom transport socket implementation to use for upstream connections.
     * To setup TLS, set a transport socket with name ``envoy.transport_sockets.tls`` and
     * :ref:`UpstreamTlsContexts <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the ``typed_config``.
     * If no transport socket configuration is specified, new connections
     * will be set up with plaintext.
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 24; * @return Whether the transportSocket field is set. */ public boolean hasTransportSocket() { return transportSocketBuilder_ != null || transportSocket_ != null; } /** *
     * Optional custom transport socket implementation to use for upstream connections.
     * To setup TLS, set a transport socket with name ``envoy.transport_sockets.tls`` and
     * :ref:`UpstreamTlsContexts <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the ``typed_config``.
     * If no transport socket configuration is specified, new connections
     * will be set up with plaintext.
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 24; * @return The transportSocket. */ public io.envoyproxy.envoy.config.core.v3.TransportSocket getTransportSocket() { if (transportSocketBuilder_ == null) { return transportSocket_ == null ? io.envoyproxy.envoy.config.core.v3.TransportSocket.getDefaultInstance() : transportSocket_; } else { return transportSocketBuilder_.getMessage(); } } /** *
     * Optional custom transport socket implementation to use for upstream connections.
     * To setup TLS, set a transport socket with name ``envoy.transport_sockets.tls`` and
     * :ref:`UpstreamTlsContexts <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the ``typed_config``.
     * If no transport socket configuration is specified, new connections
     * will be set up with plaintext.
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 24; */ public Builder setTransportSocket(io.envoyproxy.envoy.config.core.v3.TransportSocket value) { if (transportSocketBuilder_ == null) { if (value == null) { throw new NullPointerException(); } transportSocket_ = value; onChanged(); } else { transportSocketBuilder_.setMessage(value); } return this; } /** *
     * Optional custom transport socket implementation to use for upstream connections.
     * To setup TLS, set a transport socket with name ``envoy.transport_sockets.tls`` and
     * :ref:`UpstreamTlsContexts <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the ``typed_config``.
     * If no transport socket configuration is specified, new connections
     * will be set up with plaintext.
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 24; */ public Builder setTransportSocket( io.envoyproxy.envoy.config.core.v3.TransportSocket.Builder builderForValue) { if (transportSocketBuilder_ == null) { transportSocket_ = builderForValue.build(); onChanged(); } else { transportSocketBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Optional custom transport socket implementation to use for upstream connections.
     * To setup TLS, set a transport socket with name ``envoy.transport_sockets.tls`` and
     * :ref:`UpstreamTlsContexts <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the ``typed_config``.
     * If no transport socket configuration is specified, new connections
     * will be set up with plaintext.
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 24; */ public Builder mergeTransportSocket(io.envoyproxy.envoy.config.core.v3.TransportSocket value) { if (transportSocketBuilder_ == null) { if (transportSocket_ != null) { transportSocket_ = io.envoyproxy.envoy.config.core.v3.TransportSocket.newBuilder(transportSocket_).mergeFrom(value).buildPartial(); } else { transportSocket_ = value; } onChanged(); } else { transportSocketBuilder_.mergeFrom(value); } return this; } /** *
     * Optional custom transport socket implementation to use for upstream connections.
     * To setup TLS, set a transport socket with name ``envoy.transport_sockets.tls`` and
     * :ref:`UpstreamTlsContexts <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the ``typed_config``.
     * If no transport socket configuration is specified, new connections
     * will be set up with plaintext.
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 24; */ public Builder clearTransportSocket() { if (transportSocketBuilder_ == null) { transportSocket_ = null; onChanged(); } else { transportSocket_ = null; transportSocketBuilder_ = null; } return this; } /** *
     * Optional custom transport socket implementation to use for upstream connections.
     * To setup TLS, set a transport socket with name ``envoy.transport_sockets.tls`` and
     * :ref:`UpstreamTlsContexts <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the ``typed_config``.
     * If no transport socket configuration is specified, new connections
     * will be set up with plaintext.
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 24; */ public io.envoyproxy.envoy.config.core.v3.TransportSocket.Builder getTransportSocketBuilder() { onChanged(); return getTransportSocketFieldBuilder().getBuilder(); } /** *
     * Optional custom transport socket implementation to use for upstream connections.
     * To setup TLS, set a transport socket with name ``envoy.transport_sockets.tls`` and
     * :ref:`UpstreamTlsContexts <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the ``typed_config``.
     * If no transport socket configuration is specified, new connections
     * will be set up with plaintext.
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 24; */ public io.envoyproxy.envoy.config.core.v3.TransportSocketOrBuilder getTransportSocketOrBuilder() { if (transportSocketBuilder_ != null) { return transportSocketBuilder_.getMessageOrBuilder(); } else { return transportSocket_ == null ? io.envoyproxy.envoy.config.core.v3.TransportSocket.getDefaultInstance() : transportSocket_; } } /** *
     * Optional custom transport socket implementation to use for upstream connections.
     * To setup TLS, set a transport socket with name ``envoy.transport_sockets.tls`` and
     * :ref:`UpstreamTlsContexts <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the ``typed_config``.
     * If no transport socket configuration is specified, new connections
     * will be set up with plaintext.
     * 
* * .envoy.config.core.v3.TransportSocket transport_socket = 24; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.TransportSocket, io.envoyproxy.envoy.config.core.v3.TransportSocket.Builder, io.envoyproxy.envoy.config.core.v3.TransportSocketOrBuilder> getTransportSocketFieldBuilder() { if (transportSocketBuilder_ == null) { transportSocketBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.TransportSocket, io.envoyproxy.envoy.config.core.v3.TransportSocket.Builder, io.envoyproxy.envoy.config.core.v3.TransportSocketOrBuilder>( getTransportSocket(), getParentForChildren(), isClean()); transportSocket_ = null; } return transportSocketBuilder_; } private io.envoyproxy.envoy.config.core.v3.Metadata metadata_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.Metadata, io.envoyproxy.envoy.config.core.v3.Metadata.Builder, io.envoyproxy.envoy.config.core.v3.MetadataOrBuilder> metadataBuilder_; /** *
     * The Metadata field can be used to provide additional information about the
     * cluster. It can be used for stats, logging, and varying filter behavior.
     * Fields should use reverse DNS notation to denote which entity within Envoy
     * will need the information. For instance, if the metadata is intended for
     * the Router filter, the filter name should be specified as ``envoy.filters.http.router``.
     * 
* * .envoy.config.core.v3.Metadata metadata = 25; * @return Whether the metadata field is set. */ public boolean hasMetadata() { return metadataBuilder_ != null || metadata_ != null; } /** *
     * The Metadata field can be used to provide additional information about the
     * cluster. It can be used for stats, logging, and varying filter behavior.
     * Fields should use reverse DNS notation to denote which entity within Envoy
     * will need the information. For instance, if the metadata is intended for
     * the Router filter, the filter name should be specified as ``envoy.filters.http.router``.
     * 
* * .envoy.config.core.v3.Metadata metadata = 25; * @return The metadata. */ public io.envoyproxy.envoy.config.core.v3.Metadata getMetadata() { if (metadataBuilder_ == null) { return metadata_ == null ? io.envoyproxy.envoy.config.core.v3.Metadata.getDefaultInstance() : metadata_; } else { return metadataBuilder_.getMessage(); } } /** *
     * The Metadata field can be used to provide additional information about the
     * cluster. It can be used for stats, logging, and varying filter behavior.
     * Fields should use reverse DNS notation to denote which entity within Envoy
     * will need the information. For instance, if the metadata is intended for
     * the Router filter, the filter name should be specified as ``envoy.filters.http.router``.
     * 
* * .envoy.config.core.v3.Metadata metadata = 25; */ public Builder setMetadata(io.envoyproxy.envoy.config.core.v3.Metadata value) { if (metadataBuilder_ == null) { if (value == null) { throw new NullPointerException(); } metadata_ = value; onChanged(); } else { metadataBuilder_.setMessage(value); } return this; } /** *
     * The Metadata field can be used to provide additional information about the
     * cluster. It can be used for stats, logging, and varying filter behavior.
     * Fields should use reverse DNS notation to denote which entity within Envoy
     * will need the information. For instance, if the metadata is intended for
     * the Router filter, the filter name should be specified as ``envoy.filters.http.router``.
     * 
* * .envoy.config.core.v3.Metadata metadata = 25; */ public Builder setMetadata( io.envoyproxy.envoy.config.core.v3.Metadata.Builder builderForValue) { if (metadataBuilder_ == null) { metadata_ = builderForValue.build(); onChanged(); } else { metadataBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * The Metadata field can be used to provide additional information about the
     * cluster. It can be used for stats, logging, and varying filter behavior.
     * Fields should use reverse DNS notation to denote which entity within Envoy
     * will need the information. For instance, if the metadata is intended for
     * the Router filter, the filter name should be specified as ``envoy.filters.http.router``.
     * 
* * .envoy.config.core.v3.Metadata metadata = 25; */ public Builder mergeMetadata(io.envoyproxy.envoy.config.core.v3.Metadata value) { if (metadataBuilder_ == null) { if (metadata_ != null) { metadata_ = io.envoyproxy.envoy.config.core.v3.Metadata.newBuilder(metadata_).mergeFrom(value).buildPartial(); } else { metadata_ = value; } onChanged(); } else { metadataBuilder_.mergeFrom(value); } return this; } /** *
     * The Metadata field can be used to provide additional information about the
     * cluster. It can be used for stats, logging, and varying filter behavior.
     * Fields should use reverse DNS notation to denote which entity within Envoy
     * will need the information. For instance, if the metadata is intended for
     * the Router filter, the filter name should be specified as ``envoy.filters.http.router``.
     * 
* * .envoy.config.core.v3.Metadata metadata = 25; */ public Builder clearMetadata() { if (metadataBuilder_ == null) { metadata_ = null; onChanged(); } else { metadata_ = null; metadataBuilder_ = null; } return this; } /** *
     * The Metadata field can be used to provide additional information about the
     * cluster. It can be used for stats, logging, and varying filter behavior.
     * Fields should use reverse DNS notation to denote which entity within Envoy
     * will need the information. For instance, if the metadata is intended for
     * the Router filter, the filter name should be specified as ``envoy.filters.http.router``.
     * 
* * .envoy.config.core.v3.Metadata metadata = 25; */ public io.envoyproxy.envoy.config.core.v3.Metadata.Builder getMetadataBuilder() { onChanged(); return getMetadataFieldBuilder().getBuilder(); } /** *
     * The Metadata field can be used to provide additional information about the
     * cluster. It can be used for stats, logging, and varying filter behavior.
     * Fields should use reverse DNS notation to denote which entity within Envoy
     * will need the information. For instance, if the metadata is intended for
     * the Router filter, the filter name should be specified as ``envoy.filters.http.router``.
     * 
* * .envoy.config.core.v3.Metadata metadata = 25; */ public io.envoyproxy.envoy.config.core.v3.MetadataOrBuilder getMetadataOrBuilder() { if (metadataBuilder_ != null) { return metadataBuilder_.getMessageOrBuilder(); } else { return metadata_ == null ? io.envoyproxy.envoy.config.core.v3.Metadata.getDefaultInstance() : metadata_; } } /** *
     * The Metadata field can be used to provide additional information about the
     * cluster. It can be used for stats, logging, and varying filter behavior.
     * Fields should use reverse DNS notation to denote which entity within Envoy
     * will need the information. For instance, if the metadata is intended for
     * the Router filter, the filter name should be specified as ``envoy.filters.http.router``.
     * 
* * .envoy.config.core.v3.Metadata metadata = 25; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.Metadata, io.envoyproxy.envoy.config.core.v3.Metadata.Builder, io.envoyproxy.envoy.config.core.v3.MetadataOrBuilder> getMetadataFieldBuilder() { if (metadataBuilder_ == null) { metadataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.Metadata, io.envoyproxy.envoy.config.core.v3.Metadata.Builder, io.envoyproxy.envoy.config.core.v3.MetadataOrBuilder>( getMetadata(), getParentForChildren(), isClean()); metadata_ = null; } return metadataBuilder_; } private int protocolSelection_ = 0; /** *
     * Determines how Envoy selects the protocol used to speak to upstream hosts.
     * This has been deprecated in favor of setting explicit protocol selection
     * in the :ref:`http_protocol_options
     * <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * 
* * .envoy.config.cluster.v3.Cluster.ClusterProtocolSelection protocol_selection = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.protocol_selection is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=1092 * @return The enum numeric value on the wire for protocolSelection. */ @java.lang.Override @java.lang.Deprecated public int getProtocolSelectionValue() { return protocolSelection_; } /** *
     * Determines how Envoy selects the protocol used to speak to upstream hosts.
     * This has been deprecated in favor of setting explicit protocol selection
     * in the :ref:`http_protocol_options
     * <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * 
* * .envoy.config.cluster.v3.Cluster.ClusterProtocolSelection protocol_selection = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.protocol_selection is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=1092 * @param value The enum numeric value on the wire for protocolSelection to set. * @return This builder for chaining. */ @java.lang.Deprecated public Builder setProtocolSelectionValue(int value) { protocolSelection_ = value; onChanged(); return this; } /** *
     * Determines how Envoy selects the protocol used to speak to upstream hosts.
     * This has been deprecated in favor of setting explicit protocol selection
     * in the :ref:`http_protocol_options
     * <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * 
* * .envoy.config.cluster.v3.Cluster.ClusterProtocolSelection protocol_selection = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.protocol_selection is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=1092 * @return The protocolSelection. */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.cluster.v3.Cluster.ClusterProtocolSelection getProtocolSelection() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.cluster.v3.Cluster.ClusterProtocolSelection result = io.envoyproxy.envoy.config.cluster.v3.Cluster.ClusterProtocolSelection.valueOf(protocolSelection_); return result == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.ClusterProtocolSelection.UNRECOGNIZED : result; } /** *
     * Determines how Envoy selects the protocol used to speak to upstream hosts.
     * This has been deprecated in favor of setting explicit protocol selection
     * in the :ref:`http_protocol_options
     * <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * 
* * .envoy.config.cluster.v3.Cluster.ClusterProtocolSelection protocol_selection = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.protocol_selection is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=1092 * @param value The protocolSelection to set. * @return This builder for chaining. */ @java.lang.Deprecated public Builder setProtocolSelection(io.envoyproxy.envoy.config.cluster.v3.Cluster.ClusterProtocolSelection value) { if (value == null) { throw new NullPointerException(); } protocolSelection_ = value.getNumber(); onChanged(); return this; } /** *
     * Determines how Envoy selects the protocol used to speak to upstream hosts.
     * This has been deprecated in favor of setting explicit protocol selection
     * in the :ref:`http_protocol_options
     * <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
     * http_protocol_options can be set via the cluster's
     * :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
     * 
* * .envoy.config.cluster.v3.Cluster.ClusterProtocolSelection protocol_selection = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.protocol_selection is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=1092 * @return This builder for chaining. */ @java.lang.Deprecated public Builder clearProtocolSelection() { protocolSelection_ = 0; onChanged(); return this; } private io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions upstreamConnectionOptions_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions, io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions.Builder, io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptionsOrBuilder> upstreamConnectionOptionsBuilder_; /** *
     * Optional options for upstream connections.
     * 
* * .envoy.config.cluster.v3.UpstreamConnectionOptions upstream_connection_options = 30; * @return Whether the upstreamConnectionOptions field is set. */ public boolean hasUpstreamConnectionOptions() { return upstreamConnectionOptionsBuilder_ != null || upstreamConnectionOptions_ != null; } /** *
     * Optional options for upstream connections.
     * 
* * .envoy.config.cluster.v3.UpstreamConnectionOptions upstream_connection_options = 30; * @return The upstreamConnectionOptions. */ public io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions getUpstreamConnectionOptions() { if (upstreamConnectionOptionsBuilder_ == null) { return upstreamConnectionOptions_ == null ? io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions.getDefaultInstance() : upstreamConnectionOptions_; } else { return upstreamConnectionOptionsBuilder_.getMessage(); } } /** *
     * Optional options for upstream connections.
     * 
* * .envoy.config.cluster.v3.UpstreamConnectionOptions upstream_connection_options = 30; */ public Builder setUpstreamConnectionOptions(io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions value) { if (upstreamConnectionOptionsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } upstreamConnectionOptions_ = value; onChanged(); } else { upstreamConnectionOptionsBuilder_.setMessage(value); } return this; } /** *
     * Optional options for upstream connections.
     * 
* * .envoy.config.cluster.v3.UpstreamConnectionOptions upstream_connection_options = 30; */ public Builder setUpstreamConnectionOptions( io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions.Builder builderForValue) { if (upstreamConnectionOptionsBuilder_ == null) { upstreamConnectionOptions_ = builderForValue.build(); onChanged(); } else { upstreamConnectionOptionsBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Optional options for upstream connections.
     * 
* * .envoy.config.cluster.v3.UpstreamConnectionOptions upstream_connection_options = 30; */ public Builder mergeUpstreamConnectionOptions(io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions value) { if (upstreamConnectionOptionsBuilder_ == null) { if (upstreamConnectionOptions_ != null) { upstreamConnectionOptions_ = io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions.newBuilder(upstreamConnectionOptions_).mergeFrom(value).buildPartial(); } else { upstreamConnectionOptions_ = value; } onChanged(); } else { upstreamConnectionOptionsBuilder_.mergeFrom(value); } return this; } /** *
     * Optional options for upstream connections.
     * 
* * .envoy.config.cluster.v3.UpstreamConnectionOptions upstream_connection_options = 30; */ public Builder clearUpstreamConnectionOptions() { if (upstreamConnectionOptionsBuilder_ == null) { upstreamConnectionOptions_ = null; onChanged(); } else { upstreamConnectionOptions_ = null; upstreamConnectionOptionsBuilder_ = null; } return this; } /** *
     * Optional options for upstream connections.
     * 
* * .envoy.config.cluster.v3.UpstreamConnectionOptions upstream_connection_options = 30; */ public io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions.Builder getUpstreamConnectionOptionsBuilder() { onChanged(); return getUpstreamConnectionOptionsFieldBuilder().getBuilder(); } /** *
     * Optional options for upstream connections.
     * 
* * .envoy.config.cluster.v3.UpstreamConnectionOptions upstream_connection_options = 30; */ public io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptionsOrBuilder getUpstreamConnectionOptionsOrBuilder() { if (upstreamConnectionOptionsBuilder_ != null) { return upstreamConnectionOptionsBuilder_.getMessageOrBuilder(); } else { return upstreamConnectionOptions_ == null ? io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions.getDefaultInstance() : upstreamConnectionOptions_; } } /** *
     * Optional options for upstream connections.
     * 
* * .envoy.config.cluster.v3.UpstreamConnectionOptions upstream_connection_options = 30; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions, io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions.Builder, io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptionsOrBuilder> getUpstreamConnectionOptionsFieldBuilder() { if (upstreamConnectionOptionsBuilder_ == null) { upstreamConnectionOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions, io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptions.Builder, io.envoyproxy.envoy.config.cluster.v3.UpstreamConnectionOptionsOrBuilder>( getUpstreamConnectionOptions(), getParentForChildren(), isClean()); upstreamConnectionOptions_ = null; } return upstreamConnectionOptionsBuilder_; } private boolean closeConnectionsOnHostHealthFailure_ ; /** *
     * If an upstream host becomes unhealthy (as determined by the configured health checks
     * or outlier detection), immediately close all connections to the failed host.
     * .. note::
     *   This is currently only supported for connections created by tcp_proxy.
     * .. note::
     *   The current implementation of this feature closes all connections immediately when
     *   the unhealthy status is detected. If there are a large number of connections open
     *   to an upstream host that becomes unhealthy, Envoy may spend a substantial amount of
     *   time exclusively closing these connections, and not processing any other traffic.
     * 
* * bool close_connections_on_host_health_failure = 31; * @return The closeConnectionsOnHostHealthFailure. */ @java.lang.Override public boolean getCloseConnectionsOnHostHealthFailure() { return closeConnectionsOnHostHealthFailure_; } /** *
     * If an upstream host becomes unhealthy (as determined by the configured health checks
     * or outlier detection), immediately close all connections to the failed host.
     * .. note::
     *   This is currently only supported for connections created by tcp_proxy.
     * .. note::
     *   The current implementation of this feature closes all connections immediately when
     *   the unhealthy status is detected. If there are a large number of connections open
     *   to an upstream host that becomes unhealthy, Envoy may spend a substantial amount of
     *   time exclusively closing these connections, and not processing any other traffic.
     * 
* * bool close_connections_on_host_health_failure = 31; * @param value The closeConnectionsOnHostHealthFailure to set. * @return This builder for chaining. */ public Builder setCloseConnectionsOnHostHealthFailure(boolean value) { closeConnectionsOnHostHealthFailure_ = value; onChanged(); return this; } /** *
     * If an upstream host becomes unhealthy (as determined by the configured health checks
     * or outlier detection), immediately close all connections to the failed host.
     * .. note::
     *   This is currently only supported for connections created by tcp_proxy.
     * .. note::
     *   The current implementation of this feature closes all connections immediately when
     *   the unhealthy status is detected. If there are a large number of connections open
     *   to an upstream host that becomes unhealthy, Envoy may spend a substantial amount of
     *   time exclusively closing these connections, and not processing any other traffic.
     * 
* * bool close_connections_on_host_health_failure = 31; * @return This builder for chaining. */ public Builder clearCloseConnectionsOnHostHealthFailure() { closeConnectionsOnHostHealthFailure_ = false; onChanged(); return this; } private boolean ignoreHealthOnHostRemoval_ ; /** *
     * If set to true, Envoy will ignore the health value of a host when processing its removal
     * from service discovery. This means that if active health checking is used, Envoy will *not*
     * wait for the endpoint to go unhealthy before removing it.
     * 
* * bool ignore_health_on_host_removal = 32; * @return The ignoreHealthOnHostRemoval. */ @java.lang.Override public boolean getIgnoreHealthOnHostRemoval() { return ignoreHealthOnHostRemoval_; } /** *
     * If set to true, Envoy will ignore the health value of a host when processing its removal
     * from service discovery. This means that if active health checking is used, Envoy will *not*
     * wait for the endpoint to go unhealthy before removing it.
     * 
* * bool ignore_health_on_host_removal = 32; * @param value The ignoreHealthOnHostRemoval to set. * @return This builder for chaining. */ public Builder setIgnoreHealthOnHostRemoval(boolean value) { ignoreHealthOnHostRemoval_ = value; onChanged(); return this; } /** *
     * If set to true, Envoy will ignore the health value of a host when processing its removal
     * from service discovery. This means that if active health checking is used, Envoy will *not*
     * wait for the endpoint to go unhealthy before removing it.
     * 
* * bool ignore_health_on_host_removal = 32; * @return This builder for chaining. */ public Builder clearIgnoreHealthOnHostRemoval() { ignoreHealthOnHostRemoval_ = false; onChanged(); return this; } private java.util.List filters_ = java.util.Collections.emptyList(); private void ensureFiltersIsMutable() { if (!((bitField0_ & 0x00000010) != 0)) { filters_ = new java.util.ArrayList(filters_); bitField0_ |= 0x00000010; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Filter, io.envoyproxy.envoy.config.cluster.v3.Filter.Builder, io.envoyproxy.envoy.config.cluster.v3.FilterOrBuilder> filtersBuilder_; /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public java.util.List getFiltersList() { if (filtersBuilder_ == null) { return java.util.Collections.unmodifiableList(filters_); } else { return filtersBuilder_.getMessageList(); } } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public int getFiltersCount() { if (filtersBuilder_ == null) { return filters_.size(); } else { return filtersBuilder_.getCount(); } } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public io.envoyproxy.envoy.config.cluster.v3.Filter getFilters(int index) { if (filtersBuilder_ == null) { return filters_.get(index); } else { return filtersBuilder_.getMessage(index); } } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public Builder setFilters( int index, io.envoyproxy.envoy.config.cluster.v3.Filter value) { if (filtersBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureFiltersIsMutable(); filters_.set(index, value); onChanged(); } else { filtersBuilder_.setMessage(index, value); } return this; } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public Builder setFilters( int index, io.envoyproxy.envoy.config.cluster.v3.Filter.Builder builderForValue) { if (filtersBuilder_ == null) { ensureFiltersIsMutable(); filters_.set(index, builderForValue.build()); onChanged(); } else { filtersBuilder_.setMessage(index, builderForValue.build()); } return this; } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public Builder addFilters(io.envoyproxy.envoy.config.cluster.v3.Filter value) { if (filtersBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureFiltersIsMutable(); filters_.add(value); onChanged(); } else { filtersBuilder_.addMessage(value); } return this; } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public Builder addFilters( int index, io.envoyproxy.envoy.config.cluster.v3.Filter value) { if (filtersBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureFiltersIsMutable(); filters_.add(index, value); onChanged(); } else { filtersBuilder_.addMessage(index, value); } return this; } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public Builder addFilters( io.envoyproxy.envoy.config.cluster.v3.Filter.Builder builderForValue) { if (filtersBuilder_ == null) { ensureFiltersIsMutable(); filters_.add(builderForValue.build()); onChanged(); } else { filtersBuilder_.addMessage(builderForValue.build()); } return this; } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public Builder addFilters( int index, io.envoyproxy.envoy.config.cluster.v3.Filter.Builder builderForValue) { if (filtersBuilder_ == null) { ensureFiltersIsMutable(); filters_.add(index, builderForValue.build()); onChanged(); } else { filtersBuilder_.addMessage(index, builderForValue.build()); } return this; } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public Builder addAllFilters( java.lang.Iterable values) { if (filtersBuilder_ == null) { ensureFiltersIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, filters_); onChanged(); } else { filtersBuilder_.addAllMessages(values); } return this; } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public Builder clearFilters() { if (filtersBuilder_ == null) { filters_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000010); onChanged(); } else { filtersBuilder_.clear(); } return this; } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public Builder removeFilters(int index) { if (filtersBuilder_ == null) { ensureFiltersIsMutable(); filters_.remove(index); onChanged(); } else { filtersBuilder_.remove(index); } return this; } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public io.envoyproxy.envoy.config.cluster.v3.Filter.Builder getFiltersBuilder( int index) { return getFiltersFieldBuilder().getBuilder(index); } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public io.envoyproxy.envoy.config.cluster.v3.FilterOrBuilder getFiltersOrBuilder( int index) { if (filtersBuilder_ == null) { return filters_.get(index); } else { return filtersBuilder_.getMessageOrBuilder(index); } } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public java.util.List getFiltersOrBuilderList() { if (filtersBuilder_ != null) { return filtersBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(filters_); } } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public io.envoyproxy.envoy.config.cluster.v3.Filter.Builder addFiltersBuilder() { return getFiltersFieldBuilder().addBuilder( io.envoyproxy.envoy.config.cluster.v3.Filter.getDefaultInstance()); } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public io.envoyproxy.envoy.config.cluster.v3.Filter.Builder addFiltersBuilder( int index) { return getFiltersFieldBuilder().addBuilder( index, io.envoyproxy.envoy.config.cluster.v3.Filter.getDefaultInstance()); } /** *
     * An (optional) network filter chain, listed in the order the filters should be applied.
     * The chain will be applied to all outgoing connections that Envoy makes to the upstream
     * servers of this cluster.
     * 
* * repeated .envoy.config.cluster.v3.Filter filters = 40; */ public java.util.List getFiltersBuilderList() { return getFiltersFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Filter, io.envoyproxy.envoy.config.cluster.v3.Filter.Builder, io.envoyproxy.envoy.config.cluster.v3.FilterOrBuilder> getFiltersFieldBuilder() { if (filtersBuilder_ == null) { filtersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Filter, io.envoyproxy.envoy.config.cluster.v3.Filter.Builder, io.envoyproxy.envoy.config.cluster.v3.FilterOrBuilder>( filters_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); filters_ = null; } return filtersBuilder_; } private io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy loadBalancingPolicy_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy, io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy.Builder, io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicyOrBuilder> loadBalancingPolicyBuilder_; /** *
     * If this field is set and is supported by the client, it will supersede the value of
     * :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
     * 
* * .envoy.config.cluster.v3.LoadBalancingPolicy load_balancing_policy = 41; * @return Whether the loadBalancingPolicy field is set. */ public boolean hasLoadBalancingPolicy() { return loadBalancingPolicyBuilder_ != null || loadBalancingPolicy_ != null; } /** *
     * If this field is set and is supported by the client, it will supersede the value of
     * :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
     * 
* * .envoy.config.cluster.v3.LoadBalancingPolicy load_balancing_policy = 41; * @return The loadBalancingPolicy. */ public io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy getLoadBalancingPolicy() { if (loadBalancingPolicyBuilder_ == null) { return loadBalancingPolicy_ == null ? io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy.getDefaultInstance() : loadBalancingPolicy_; } else { return loadBalancingPolicyBuilder_.getMessage(); } } /** *
     * If this field is set and is supported by the client, it will supersede the value of
     * :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
     * 
* * .envoy.config.cluster.v3.LoadBalancingPolicy load_balancing_policy = 41; */ public Builder setLoadBalancingPolicy(io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy value) { if (loadBalancingPolicyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } loadBalancingPolicy_ = value; onChanged(); } else { loadBalancingPolicyBuilder_.setMessage(value); } return this; } /** *
     * If this field is set and is supported by the client, it will supersede the value of
     * :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
     * 
* * .envoy.config.cluster.v3.LoadBalancingPolicy load_balancing_policy = 41; */ public Builder setLoadBalancingPolicy( io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy.Builder builderForValue) { if (loadBalancingPolicyBuilder_ == null) { loadBalancingPolicy_ = builderForValue.build(); onChanged(); } else { loadBalancingPolicyBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * If this field is set and is supported by the client, it will supersede the value of
     * :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
     * 
* * .envoy.config.cluster.v3.LoadBalancingPolicy load_balancing_policy = 41; */ public Builder mergeLoadBalancingPolicy(io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy value) { if (loadBalancingPolicyBuilder_ == null) { if (loadBalancingPolicy_ != null) { loadBalancingPolicy_ = io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy.newBuilder(loadBalancingPolicy_).mergeFrom(value).buildPartial(); } else { loadBalancingPolicy_ = value; } onChanged(); } else { loadBalancingPolicyBuilder_.mergeFrom(value); } return this; } /** *
     * If this field is set and is supported by the client, it will supersede the value of
     * :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
     * 
* * .envoy.config.cluster.v3.LoadBalancingPolicy load_balancing_policy = 41; */ public Builder clearLoadBalancingPolicy() { if (loadBalancingPolicyBuilder_ == null) { loadBalancingPolicy_ = null; onChanged(); } else { loadBalancingPolicy_ = null; loadBalancingPolicyBuilder_ = null; } return this; } /** *
     * If this field is set and is supported by the client, it will supersede the value of
     * :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
     * 
* * .envoy.config.cluster.v3.LoadBalancingPolicy load_balancing_policy = 41; */ public io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy.Builder getLoadBalancingPolicyBuilder() { onChanged(); return getLoadBalancingPolicyFieldBuilder().getBuilder(); } /** *
     * If this field is set and is supported by the client, it will supersede the value of
     * :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
     * 
* * .envoy.config.cluster.v3.LoadBalancingPolicy load_balancing_policy = 41; */ public io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicyOrBuilder getLoadBalancingPolicyOrBuilder() { if (loadBalancingPolicyBuilder_ != null) { return loadBalancingPolicyBuilder_.getMessageOrBuilder(); } else { return loadBalancingPolicy_ == null ? io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy.getDefaultInstance() : loadBalancingPolicy_; } } /** *
     * If this field is set and is supported by the client, it will supersede the value of
     * :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
     * 
* * .envoy.config.cluster.v3.LoadBalancingPolicy load_balancing_policy = 41; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy, io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy.Builder, io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicyOrBuilder> getLoadBalancingPolicyFieldBuilder() { if (loadBalancingPolicyBuilder_ == null) { loadBalancingPolicyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy, io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy.Builder, io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicyOrBuilder>( getLoadBalancingPolicy(), getParentForChildren(), isClean()); loadBalancingPolicy_ = null; } return loadBalancingPolicyBuilder_; } private io.envoyproxy.envoy.config.core.v3.ConfigSource lrsServer_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.ConfigSource, io.envoyproxy.envoy.config.core.v3.ConfigSource.Builder, io.envoyproxy.envoy.config.core.v3.ConfigSourceOrBuilder> lrsServerBuilder_; /** *
     * [#not-implemented-hide:]
     * If present, tells the client where to send load reports via LRS. If not present, the
     * client will fall back to a client-side default, which may be either (a) don't send any
     * load reports or (b) send load reports for all clusters to a single default server
     * (which may be configured in the bootstrap file).
     * Note that if multiple clusters point to the same LRS server, the client may choose to
     * create a separate stream for each cluster or it may choose to coalesce the data for
     * multiple clusters onto a single stream. Either way, the client must make sure to send
     * the data for any given cluster on no more than one stream.
     * [#next-major-version: In the v3 API, we should consider restructuring this somehow,
     * maybe by allowing LRS to go on the ADS stream, or maybe by moving some of the negotiation
     * from the LRS stream here.]
     * 
* * .envoy.config.core.v3.ConfigSource lrs_server = 42; * @return Whether the lrsServer field is set. */ public boolean hasLrsServer() { return lrsServerBuilder_ != null || lrsServer_ != null; } /** *
     * [#not-implemented-hide:]
     * If present, tells the client where to send load reports via LRS. If not present, the
     * client will fall back to a client-side default, which may be either (a) don't send any
     * load reports or (b) send load reports for all clusters to a single default server
     * (which may be configured in the bootstrap file).
     * Note that if multiple clusters point to the same LRS server, the client may choose to
     * create a separate stream for each cluster or it may choose to coalesce the data for
     * multiple clusters onto a single stream. Either way, the client must make sure to send
     * the data for any given cluster on no more than one stream.
     * [#next-major-version: In the v3 API, we should consider restructuring this somehow,
     * maybe by allowing LRS to go on the ADS stream, or maybe by moving some of the negotiation
     * from the LRS stream here.]
     * 
* * .envoy.config.core.v3.ConfigSource lrs_server = 42; * @return The lrsServer. */ public io.envoyproxy.envoy.config.core.v3.ConfigSource getLrsServer() { if (lrsServerBuilder_ == null) { return lrsServer_ == null ? io.envoyproxy.envoy.config.core.v3.ConfigSource.getDefaultInstance() : lrsServer_; } else { return lrsServerBuilder_.getMessage(); } } /** *
     * [#not-implemented-hide:]
     * If present, tells the client where to send load reports via LRS. If not present, the
     * client will fall back to a client-side default, which may be either (a) don't send any
     * load reports or (b) send load reports for all clusters to a single default server
     * (which may be configured in the bootstrap file).
     * Note that if multiple clusters point to the same LRS server, the client may choose to
     * create a separate stream for each cluster or it may choose to coalesce the data for
     * multiple clusters onto a single stream. Either way, the client must make sure to send
     * the data for any given cluster on no more than one stream.
     * [#next-major-version: In the v3 API, we should consider restructuring this somehow,
     * maybe by allowing LRS to go on the ADS stream, or maybe by moving some of the negotiation
     * from the LRS stream here.]
     * 
* * .envoy.config.core.v3.ConfigSource lrs_server = 42; */ public Builder setLrsServer(io.envoyproxy.envoy.config.core.v3.ConfigSource value) { if (lrsServerBuilder_ == null) { if (value == null) { throw new NullPointerException(); } lrsServer_ = value; onChanged(); } else { lrsServerBuilder_.setMessage(value); } return this; } /** *
     * [#not-implemented-hide:]
     * If present, tells the client where to send load reports via LRS. If not present, the
     * client will fall back to a client-side default, which may be either (a) don't send any
     * load reports or (b) send load reports for all clusters to a single default server
     * (which may be configured in the bootstrap file).
     * Note that if multiple clusters point to the same LRS server, the client may choose to
     * create a separate stream for each cluster or it may choose to coalesce the data for
     * multiple clusters onto a single stream. Either way, the client must make sure to send
     * the data for any given cluster on no more than one stream.
     * [#next-major-version: In the v3 API, we should consider restructuring this somehow,
     * maybe by allowing LRS to go on the ADS stream, or maybe by moving some of the negotiation
     * from the LRS stream here.]
     * 
* * .envoy.config.core.v3.ConfigSource lrs_server = 42; */ public Builder setLrsServer( io.envoyproxy.envoy.config.core.v3.ConfigSource.Builder builderForValue) { if (lrsServerBuilder_ == null) { lrsServer_ = builderForValue.build(); onChanged(); } else { lrsServerBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * [#not-implemented-hide:]
     * If present, tells the client where to send load reports via LRS. If not present, the
     * client will fall back to a client-side default, which may be either (a) don't send any
     * load reports or (b) send load reports for all clusters to a single default server
     * (which may be configured in the bootstrap file).
     * Note that if multiple clusters point to the same LRS server, the client may choose to
     * create a separate stream for each cluster or it may choose to coalesce the data for
     * multiple clusters onto a single stream. Either way, the client must make sure to send
     * the data for any given cluster on no more than one stream.
     * [#next-major-version: In the v3 API, we should consider restructuring this somehow,
     * maybe by allowing LRS to go on the ADS stream, or maybe by moving some of the negotiation
     * from the LRS stream here.]
     * 
* * .envoy.config.core.v3.ConfigSource lrs_server = 42; */ public Builder mergeLrsServer(io.envoyproxy.envoy.config.core.v3.ConfigSource value) { if (lrsServerBuilder_ == null) { if (lrsServer_ != null) { lrsServer_ = io.envoyproxy.envoy.config.core.v3.ConfigSource.newBuilder(lrsServer_).mergeFrom(value).buildPartial(); } else { lrsServer_ = value; } onChanged(); } else { lrsServerBuilder_.mergeFrom(value); } return this; } /** *
     * [#not-implemented-hide:]
     * If present, tells the client where to send load reports via LRS. If not present, the
     * client will fall back to a client-side default, which may be either (a) don't send any
     * load reports or (b) send load reports for all clusters to a single default server
     * (which may be configured in the bootstrap file).
     * Note that if multiple clusters point to the same LRS server, the client may choose to
     * create a separate stream for each cluster or it may choose to coalesce the data for
     * multiple clusters onto a single stream. Either way, the client must make sure to send
     * the data for any given cluster on no more than one stream.
     * [#next-major-version: In the v3 API, we should consider restructuring this somehow,
     * maybe by allowing LRS to go on the ADS stream, or maybe by moving some of the negotiation
     * from the LRS stream here.]
     * 
* * .envoy.config.core.v3.ConfigSource lrs_server = 42; */ public Builder clearLrsServer() { if (lrsServerBuilder_ == null) { lrsServer_ = null; onChanged(); } else { lrsServer_ = null; lrsServerBuilder_ = null; } return this; } /** *
     * [#not-implemented-hide:]
     * If present, tells the client where to send load reports via LRS. If not present, the
     * client will fall back to a client-side default, which may be either (a) don't send any
     * load reports or (b) send load reports for all clusters to a single default server
     * (which may be configured in the bootstrap file).
     * Note that if multiple clusters point to the same LRS server, the client may choose to
     * create a separate stream for each cluster or it may choose to coalesce the data for
     * multiple clusters onto a single stream. Either way, the client must make sure to send
     * the data for any given cluster on no more than one stream.
     * [#next-major-version: In the v3 API, we should consider restructuring this somehow,
     * maybe by allowing LRS to go on the ADS stream, or maybe by moving some of the negotiation
     * from the LRS stream here.]
     * 
* * .envoy.config.core.v3.ConfigSource lrs_server = 42; */ public io.envoyproxy.envoy.config.core.v3.ConfigSource.Builder getLrsServerBuilder() { onChanged(); return getLrsServerFieldBuilder().getBuilder(); } /** *
     * [#not-implemented-hide:]
     * If present, tells the client where to send load reports via LRS. If not present, the
     * client will fall back to a client-side default, which may be either (a) don't send any
     * load reports or (b) send load reports for all clusters to a single default server
     * (which may be configured in the bootstrap file).
     * Note that if multiple clusters point to the same LRS server, the client may choose to
     * create a separate stream for each cluster or it may choose to coalesce the data for
     * multiple clusters onto a single stream. Either way, the client must make sure to send
     * the data for any given cluster on no more than one stream.
     * [#next-major-version: In the v3 API, we should consider restructuring this somehow,
     * maybe by allowing LRS to go on the ADS stream, or maybe by moving some of the negotiation
     * from the LRS stream here.]
     * 
* * .envoy.config.core.v3.ConfigSource lrs_server = 42; */ public io.envoyproxy.envoy.config.core.v3.ConfigSourceOrBuilder getLrsServerOrBuilder() { if (lrsServerBuilder_ != null) { return lrsServerBuilder_.getMessageOrBuilder(); } else { return lrsServer_ == null ? io.envoyproxy.envoy.config.core.v3.ConfigSource.getDefaultInstance() : lrsServer_; } } /** *
     * [#not-implemented-hide:]
     * If present, tells the client where to send load reports via LRS. If not present, the
     * client will fall back to a client-side default, which may be either (a) don't send any
     * load reports or (b) send load reports for all clusters to a single default server
     * (which may be configured in the bootstrap file).
     * Note that if multiple clusters point to the same LRS server, the client may choose to
     * create a separate stream for each cluster or it may choose to coalesce the data for
     * multiple clusters onto a single stream. Either way, the client must make sure to send
     * the data for any given cluster on no more than one stream.
     * [#next-major-version: In the v3 API, we should consider restructuring this somehow,
     * maybe by allowing LRS to go on the ADS stream, or maybe by moving some of the negotiation
     * from the LRS stream here.]
     * 
* * .envoy.config.core.v3.ConfigSource lrs_server = 42; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.ConfigSource, io.envoyproxy.envoy.config.core.v3.ConfigSource.Builder, io.envoyproxy.envoy.config.core.v3.ConfigSourceOrBuilder> getLrsServerFieldBuilder() { if (lrsServerBuilder_ == null) { lrsServerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.ConfigSource, io.envoyproxy.envoy.config.core.v3.ConfigSource.Builder, io.envoyproxy.envoy.config.core.v3.ConfigSourceOrBuilder>( getLrsServer(), getParentForChildren(), isClean()); lrsServer_ = null; } return lrsServerBuilder_; } private boolean trackTimeoutBudgets_ ; /** *
     * If track_timeout_budgets is true, the :ref:`timeout budget histograms
     * <config_cluster_manager_cluster_stats_timeout_budgets>` will be published for each
     * request. These show what percentage of a request's per try and global timeout was used. A value
     * of 0 would indicate that none of the timeout was used or that the timeout was infinite. A value
     * of 100 would indicate that the request took the entirety of the timeout given to it.
     * .. attention::
     *   This field has been deprecated in favor of ``timeout_budgets``, part of
     *   :ref:`track_cluster_stats <envoy_v3_api_field_config.cluster.v3.Cluster.track_cluster_stats>`.
     * 
* * bool track_timeout_budgets = 47 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.track_timeout_budgets is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=1153 * @return The trackTimeoutBudgets. */ @java.lang.Override @java.lang.Deprecated public boolean getTrackTimeoutBudgets() { return trackTimeoutBudgets_; } /** *
     * If track_timeout_budgets is true, the :ref:`timeout budget histograms
     * <config_cluster_manager_cluster_stats_timeout_budgets>` will be published for each
     * request. These show what percentage of a request's per try and global timeout was used. A value
     * of 0 would indicate that none of the timeout was used or that the timeout was infinite. A value
     * of 100 would indicate that the request took the entirety of the timeout given to it.
     * .. attention::
     *   This field has been deprecated in favor of ``timeout_budgets``, part of
     *   :ref:`track_cluster_stats <envoy_v3_api_field_config.cluster.v3.Cluster.track_cluster_stats>`.
     * 
* * bool track_timeout_budgets = 47 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.track_timeout_budgets is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=1153 * @param value The trackTimeoutBudgets to set. * @return This builder for chaining. */ @java.lang.Deprecated public Builder setTrackTimeoutBudgets(boolean value) { trackTimeoutBudgets_ = value; onChanged(); return this; } /** *
     * If track_timeout_budgets is true, the :ref:`timeout budget histograms
     * <config_cluster_manager_cluster_stats_timeout_budgets>` will be published for each
     * request. These show what percentage of a request's per try and global timeout was used. A value
     * of 0 would indicate that none of the timeout was used or that the timeout was infinite. A value
     * of 100 would indicate that the request took the entirety of the timeout given to it.
     * .. attention::
     *   This field has been deprecated in favor of ``timeout_budgets``, part of
     *   :ref:`track_cluster_stats <envoy_v3_api_field_config.cluster.v3.Cluster.track_cluster_stats>`.
     * 
* * bool track_timeout_budgets = 47 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.cluster.v3.Cluster.track_timeout_budgets is deprecated. * See envoy/config/cluster/v3/cluster.proto;l=1153 * @return This builder for chaining. */ @java.lang.Deprecated public Builder clearTrackTimeoutBudgets() { trackTimeoutBudgets_ = false; onChanged(); return this; } private io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig upstreamConfig_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder> upstreamConfigBuilder_; /** *
     * Optional customization and configuration of upstream connection pool, and upstream type.
     * Currently this field only applies for HTTP traffic but is designed for eventual use for custom
     * TCP upstreams.
     * For HTTP traffic, Envoy will generally take downstream HTTP and send it upstream as upstream
     * HTTP, using the http connection pool and the codec from ``http2_protocol_options``
     * For routes where CONNECT termination is configured, Envoy will take downstream CONNECT
     * requests and forward the CONNECT payload upstream over raw TCP using the tcp connection pool.
     * The default pool used is the generic connection pool which creates the HTTP upstream for most
     * HTTP requests, and the TCP upstream if CONNECT termination is configured.
     * If users desire custom connection pool or upstream behavior, for example terminating
     * CONNECT only if a custom filter indicates it is appropriate, the custom factories
     * can be registered and configured here.
     * [#extension-category: envoy.upstreams]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig upstream_config = 48; * @return Whether the upstreamConfig field is set. */ public boolean hasUpstreamConfig() { return upstreamConfigBuilder_ != null || upstreamConfig_ != null; } /** *
     * Optional customization and configuration of upstream connection pool, and upstream type.
     * Currently this field only applies for HTTP traffic but is designed for eventual use for custom
     * TCP upstreams.
     * For HTTP traffic, Envoy will generally take downstream HTTP and send it upstream as upstream
     * HTTP, using the http connection pool and the codec from ``http2_protocol_options``
     * For routes where CONNECT termination is configured, Envoy will take downstream CONNECT
     * requests and forward the CONNECT payload upstream over raw TCP using the tcp connection pool.
     * The default pool used is the generic connection pool which creates the HTTP upstream for most
     * HTTP requests, and the TCP upstream if CONNECT termination is configured.
     * If users desire custom connection pool or upstream behavior, for example terminating
     * CONNECT only if a custom filter indicates it is appropriate, the custom factories
     * can be registered and configured here.
     * [#extension-category: envoy.upstreams]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig upstream_config = 48; * @return The upstreamConfig. */ public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig getUpstreamConfig() { if (upstreamConfigBuilder_ == null) { return upstreamConfig_ == null ? io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance() : upstreamConfig_; } else { return upstreamConfigBuilder_.getMessage(); } } /** *
     * Optional customization and configuration of upstream connection pool, and upstream type.
     * Currently this field only applies for HTTP traffic but is designed for eventual use for custom
     * TCP upstreams.
     * For HTTP traffic, Envoy will generally take downstream HTTP and send it upstream as upstream
     * HTTP, using the http connection pool and the codec from ``http2_protocol_options``
     * For routes where CONNECT termination is configured, Envoy will take downstream CONNECT
     * requests and forward the CONNECT payload upstream over raw TCP using the tcp connection pool.
     * The default pool used is the generic connection pool which creates the HTTP upstream for most
     * HTTP requests, and the TCP upstream if CONNECT termination is configured.
     * If users desire custom connection pool or upstream behavior, for example terminating
     * CONNECT only if a custom filter indicates it is appropriate, the custom factories
     * can be registered and configured here.
     * [#extension-category: envoy.upstreams]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig upstream_config = 48; */ public Builder setUpstreamConfig(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig value) { if (upstreamConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } upstreamConfig_ = value; onChanged(); } else { upstreamConfigBuilder_.setMessage(value); } return this; } /** *
     * Optional customization and configuration of upstream connection pool, and upstream type.
     * Currently this field only applies for HTTP traffic but is designed for eventual use for custom
     * TCP upstreams.
     * For HTTP traffic, Envoy will generally take downstream HTTP and send it upstream as upstream
     * HTTP, using the http connection pool and the codec from ``http2_protocol_options``
     * For routes where CONNECT termination is configured, Envoy will take downstream CONNECT
     * requests and forward the CONNECT payload upstream over raw TCP using the tcp connection pool.
     * The default pool used is the generic connection pool which creates the HTTP upstream for most
     * HTTP requests, and the TCP upstream if CONNECT termination is configured.
     * If users desire custom connection pool or upstream behavior, for example terminating
     * CONNECT only if a custom filter indicates it is appropriate, the custom factories
     * can be registered and configured here.
     * [#extension-category: envoy.upstreams]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig upstream_config = 48; */ public Builder setUpstreamConfig( io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder builderForValue) { if (upstreamConfigBuilder_ == null) { upstreamConfig_ = builderForValue.build(); onChanged(); } else { upstreamConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Optional customization and configuration of upstream connection pool, and upstream type.
     * Currently this field only applies for HTTP traffic but is designed for eventual use for custom
     * TCP upstreams.
     * For HTTP traffic, Envoy will generally take downstream HTTP and send it upstream as upstream
     * HTTP, using the http connection pool and the codec from ``http2_protocol_options``
     * For routes where CONNECT termination is configured, Envoy will take downstream CONNECT
     * requests and forward the CONNECT payload upstream over raw TCP using the tcp connection pool.
     * The default pool used is the generic connection pool which creates the HTTP upstream for most
     * HTTP requests, and the TCP upstream if CONNECT termination is configured.
     * If users desire custom connection pool or upstream behavior, for example terminating
     * CONNECT only if a custom filter indicates it is appropriate, the custom factories
     * can be registered and configured here.
     * [#extension-category: envoy.upstreams]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig upstream_config = 48; */ public Builder mergeUpstreamConfig(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig value) { if (upstreamConfigBuilder_ == null) { if (upstreamConfig_ != null) { upstreamConfig_ = io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.newBuilder(upstreamConfig_).mergeFrom(value).buildPartial(); } else { upstreamConfig_ = value; } onChanged(); } else { upstreamConfigBuilder_.mergeFrom(value); } return this; } /** *
     * Optional customization and configuration of upstream connection pool, and upstream type.
     * Currently this field only applies for HTTP traffic but is designed for eventual use for custom
     * TCP upstreams.
     * For HTTP traffic, Envoy will generally take downstream HTTP and send it upstream as upstream
     * HTTP, using the http connection pool and the codec from ``http2_protocol_options``
     * For routes where CONNECT termination is configured, Envoy will take downstream CONNECT
     * requests and forward the CONNECT payload upstream over raw TCP using the tcp connection pool.
     * The default pool used is the generic connection pool which creates the HTTP upstream for most
     * HTTP requests, and the TCP upstream if CONNECT termination is configured.
     * If users desire custom connection pool or upstream behavior, for example terminating
     * CONNECT only if a custom filter indicates it is appropriate, the custom factories
     * can be registered and configured here.
     * [#extension-category: envoy.upstreams]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig upstream_config = 48; */ public Builder clearUpstreamConfig() { if (upstreamConfigBuilder_ == null) { upstreamConfig_ = null; onChanged(); } else { upstreamConfig_ = null; upstreamConfigBuilder_ = null; } return this; } /** *
     * Optional customization and configuration of upstream connection pool, and upstream type.
     * Currently this field only applies for HTTP traffic but is designed for eventual use for custom
     * TCP upstreams.
     * For HTTP traffic, Envoy will generally take downstream HTTP and send it upstream as upstream
     * HTTP, using the http connection pool and the codec from ``http2_protocol_options``
     * For routes where CONNECT termination is configured, Envoy will take downstream CONNECT
     * requests and forward the CONNECT payload upstream over raw TCP using the tcp connection pool.
     * The default pool used is the generic connection pool which creates the HTTP upstream for most
     * HTTP requests, and the TCP upstream if CONNECT termination is configured.
     * If users desire custom connection pool or upstream behavior, for example terminating
     * CONNECT only if a custom filter indicates it is appropriate, the custom factories
     * can be registered and configured here.
     * [#extension-category: envoy.upstreams]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig upstream_config = 48; */ public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder getUpstreamConfigBuilder() { onChanged(); return getUpstreamConfigFieldBuilder().getBuilder(); } /** *
     * Optional customization and configuration of upstream connection pool, and upstream type.
     * Currently this field only applies for HTTP traffic but is designed for eventual use for custom
     * TCP upstreams.
     * For HTTP traffic, Envoy will generally take downstream HTTP and send it upstream as upstream
     * HTTP, using the http connection pool and the codec from ``http2_protocol_options``
     * For routes where CONNECT termination is configured, Envoy will take downstream CONNECT
     * requests and forward the CONNECT payload upstream over raw TCP using the tcp connection pool.
     * The default pool used is the generic connection pool which creates the HTTP upstream for most
     * HTTP requests, and the TCP upstream if CONNECT termination is configured.
     * If users desire custom connection pool or upstream behavior, for example terminating
     * CONNECT only if a custom filter indicates it is appropriate, the custom factories
     * can be registered and configured here.
     * [#extension-category: envoy.upstreams]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig upstream_config = 48; */ public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder getUpstreamConfigOrBuilder() { if (upstreamConfigBuilder_ != null) { return upstreamConfigBuilder_.getMessageOrBuilder(); } else { return upstreamConfig_ == null ? io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance() : upstreamConfig_; } } /** *
     * Optional customization and configuration of upstream connection pool, and upstream type.
     * Currently this field only applies for HTTP traffic but is designed for eventual use for custom
     * TCP upstreams.
     * For HTTP traffic, Envoy will generally take downstream HTTP and send it upstream as upstream
     * HTTP, using the http connection pool and the codec from ``http2_protocol_options``
     * For routes where CONNECT termination is configured, Envoy will take downstream CONNECT
     * requests and forward the CONNECT payload upstream over raw TCP using the tcp connection pool.
     * The default pool used is the generic connection pool which creates the HTTP upstream for most
     * HTTP requests, and the TCP upstream if CONNECT termination is configured.
     * If users desire custom connection pool or upstream behavior, for example terminating
     * CONNECT only if a custom filter indicates it is appropriate, the custom factories
     * can be registered and configured here.
     * [#extension-category: envoy.upstreams]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig upstream_config = 48; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder> getUpstreamConfigFieldBuilder() { if (upstreamConfigBuilder_ == null) { upstreamConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder>( getUpstreamConfig(), getParentForChildren(), isClean()); upstreamConfig_ = null; } return upstreamConfigBuilder_; } private io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats trackClusterStats_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats, io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats.Builder, io.envoyproxy.envoy.config.cluster.v3.TrackClusterStatsOrBuilder> trackClusterStatsBuilder_; /** *
     * Configuration to track optional cluster stats.
     * 
* * .envoy.config.cluster.v3.TrackClusterStats track_cluster_stats = 49; * @return Whether the trackClusterStats field is set. */ public boolean hasTrackClusterStats() { return trackClusterStatsBuilder_ != null || trackClusterStats_ != null; } /** *
     * Configuration to track optional cluster stats.
     * 
* * .envoy.config.cluster.v3.TrackClusterStats track_cluster_stats = 49; * @return The trackClusterStats. */ public io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats getTrackClusterStats() { if (trackClusterStatsBuilder_ == null) { return trackClusterStats_ == null ? io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats.getDefaultInstance() : trackClusterStats_; } else { return trackClusterStatsBuilder_.getMessage(); } } /** *
     * Configuration to track optional cluster stats.
     * 
* * .envoy.config.cluster.v3.TrackClusterStats track_cluster_stats = 49; */ public Builder setTrackClusterStats(io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats value) { if (trackClusterStatsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } trackClusterStats_ = value; onChanged(); } else { trackClusterStatsBuilder_.setMessage(value); } return this; } /** *
     * Configuration to track optional cluster stats.
     * 
* * .envoy.config.cluster.v3.TrackClusterStats track_cluster_stats = 49; */ public Builder setTrackClusterStats( io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats.Builder builderForValue) { if (trackClusterStatsBuilder_ == null) { trackClusterStats_ = builderForValue.build(); onChanged(); } else { trackClusterStatsBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Configuration to track optional cluster stats.
     * 
* * .envoy.config.cluster.v3.TrackClusterStats track_cluster_stats = 49; */ public Builder mergeTrackClusterStats(io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats value) { if (trackClusterStatsBuilder_ == null) { if (trackClusterStats_ != null) { trackClusterStats_ = io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats.newBuilder(trackClusterStats_).mergeFrom(value).buildPartial(); } else { trackClusterStats_ = value; } onChanged(); } else { trackClusterStatsBuilder_.mergeFrom(value); } return this; } /** *
     * Configuration to track optional cluster stats.
     * 
* * .envoy.config.cluster.v3.TrackClusterStats track_cluster_stats = 49; */ public Builder clearTrackClusterStats() { if (trackClusterStatsBuilder_ == null) { trackClusterStats_ = null; onChanged(); } else { trackClusterStats_ = null; trackClusterStatsBuilder_ = null; } return this; } /** *
     * Configuration to track optional cluster stats.
     * 
* * .envoy.config.cluster.v3.TrackClusterStats track_cluster_stats = 49; */ public io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats.Builder getTrackClusterStatsBuilder() { onChanged(); return getTrackClusterStatsFieldBuilder().getBuilder(); } /** *
     * Configuration to track optional cluster stats.
     * 
* * .envoy.config.cluster.v3.TrackClusterStats track_cluster_stats = 49; */ public io.envoyproxy.envoy.config.cluster.v3.TrackClusterStatsOrBuilder getTrackClusterStatsOrBuilder() { if (trackClusterStatsBuilder_ != null) { return trackClusterStatsBuilder_.getMessageOrBuilder(); } else { return trackClusterStats_ == null ? io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats.getDefaultInstance() : trackClusterStats_; } } /** *
     * Configuration to track optional cluster stats.
     * 
* * .envoy.config.cluster.v3.TrackClusterStats track_cluster_stats = 49; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats, io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats.Builder, io.envoyproxy.envoy.config.cluster.v3.TrackClusterStatsOrBuilder> getTrackClusterStatsFieldBuilder() { if (trackClusterStatsBuilder_ == null) { trackClusterStatsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats, io.envoyproxy.envoy.config.cluster.v3.TrackClusterStats.Builder, io.envoyproxy.envoy.config.cluster.v3.TrackClusterStatsOrBuilder>( getTrackClusterStats(), getParentForChildren(), isClean()); trackClusterStats_ = null; } return trackClusterStatsBuilder_; } private io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy preconnectPolicy_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy, io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicyOrBuilder> preconnectPolicyBuilder_; /** *
     * Preconnect configuration for this cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.PreconnectPolicy preconnect_policy = 50; * @return Whether the preconnectPolicy field is set. */ public boolean hasPreconnectPolicy() { return preconnectPolicyBuilder_ != null || preconnectPolicy_ != null; } /** *
     * Preconnect configuration for this cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.PreconnectPolicy preconnect_policy = 50; * @return The preconnectPolicy. */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy getPreconnectPolicy() { if (preconnectPolicyBuilder_ == null) { return preconnectPolicy_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.getDefaultInstance() : preconnectPolicy_; } else { return preconnectPolicyBuilder_.getMessage(); } } /** *
     * Preconnect configuration for this cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.PreconnectPolicy preconnect_policy = 50; */ public Builder setPreconnectPolicy(io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy value) { if (preconnectPolicyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } preconnectPolicy_ = value; onChanged(); } else { preconnectPolicyBuilder_.setMessage(value); } return this; } /** *
     * Preconnect configuration for this cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.PreconnectPolicy preconnect_policy = 50; */ public Builder setPreconnectPolicy( io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.Builder builderForValue) { if (preconnectPolicyBuilder_ == null) { preconnectPolicy_ = builderForValue.build(); onChanged(); } else { preconnectPolicyBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Preconnect configuration for this cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.PreconnectPolicy preconnect_policy = 50; */ public Builder mergePreconnectPolicy(io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy value) { if (preconnectPolicyBuilder_ == null) { if (preconnectPolicy_ != null) { preconnectPolicy_ = io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.newBuilder(preconnectPolicy_).mergeFrom(value).buildPartial(); } else { preconnectPolicy_ = value; } onChanged(); } else { preconnectPolicyBuilder_.mergeFrom(value); } return this; } /** *
     * Preconnect configuration for this cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.PreconnectPolicy preconnect_policy = 50; */ public Builder clearPreconnectPolicy() { if (preconnectPolicyBuilder_ == null) { preconnectPolicy_ = null; onChanged(); } else { preconnectPolicy_ = null; preconnectPolicyBuilder_ = null; } return this; } /** *
     * Preconnect configuration for this cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.PreconnectPolicy preconnect_policy = 50; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.Builder getPreconnectPolicyBuilder() { onChanged(); return getPreconnectPolicyFieldBuilder().getBuilder(); } /** *
     * Preconnect configuration for this cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.PreconnectPolicy preconnect_policy = 50; */ public io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicyOrBuilder getPreconnectPolicyOrBuilder() { if (preconnectPolicyBuilder_ != null) { return preconnectPolicyBuilder_.getMessageOrBuilder(); } else { return preconnectPolicy_ == null ? io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.getDefaultInstance() : preconnectPolicy_; } } /** *
     * Preconnect configuration for this cluster.
     * 
* * .envoy.config.cluster.v3.Cluster.PreconnectPolicy preconnect_policy = 50; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy, io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicyOrBuilder> getPreconnectPolicyFieldBuilder() { if (preconnectPolicyBuilder_ == null) { preconnectPolicyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy, io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicy.Builder, io.envoyproxy.envoy.config.cluster.v3.Cluster.PreconnectPolicyOrBuilder>( getPreconnectPolicy(), getParentForChildren(), isClean()); preconnectPolicy_ = null; } return preconnectPolicyBuilder_; } private boolean connectionPoolPerDownstreamConnection_ ; /** *
     * If ``connection_pool_per_downstream_connection`` is true, the cluster will use a separate
     * connection pool for every downstream connection
     * 
* * bool connection_pool_per_downstream_connection = 51; * @return The connectionPoolPerDownstreamConnection. */ @java.lang.Override public boolean getConnectionPoolPerDownstreamConnection() { return connectionPoolPerDownstreamConnection_; } /** *
     * If ``connection_pool_per_downstream_connection`` is true, the cluster will use a separate
     * connection pool for every downstream connection
     * 
* * bool connection_pool_per_downstream_connection = 51; * @param value The connectionPoolPerDownstreamConnection to set. * @return This builder for chaining. */ public Builder setConnectionPoolPerDownstreamConnection(boolean value) { connectionPoolPerDownstreamConnection_ = value; onChanged(); return this; } /** *
     * If ``connection_pool_per_downstream_connection`` is true, the cluster will use a separate
     * connection pool for every downstream connection
     * 
* * bool connection_pool_per_downstream_connection = 51; * @return This builder for chaining. */ public Builder clearConnectionPoolPerDownstreamConnection() { connectionPoolPerDownstreamConnection_ = 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:envoy.config.cluster.v3.Cluster) } // @@protoc_insertion_point(class_scope:envoy.config.cluster.v3.Cluster) private static final io.envoyproxy.envoy.config.cluster.v3.Cluster DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.cluster.v3.Cluster(); } public static io.envoyproxy.envoy.config.cluster.v3.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 io.envoyproxy.envoy.config.cluster.v3.Cluster getDefaultInstanceForType() { return DEFAULT_INSTANCE; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy