Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
io.envoyproxy.envoy.config.cluster.v3.Cluster Maven / Gradle / Ivy
// 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 extends io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelectorOrBuilder>
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 extends io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelectorOrBuilder>
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 extends io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector> 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 extends io.envoyproxy.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelectorOrBuilder>
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();
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
* @return Whether the metadataKey field is set.
*/
boolean hasMetadataKey();
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
* @return The metadataKey.
*/
io.envoyproxy.envoy.type.metadata.v3.MetadataKey getMetadataKey();
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
*/
io.envoyproxy.envoy.type.metadata.v3.MetadataKeyOrBuilder getMetadataKeyOrBuilder();
}
/**
*
* Specific configuration for the
* :ref:`Original Destination <arch_overview_load_balancing_types_original_destination>`
* load balancing policy.
* [#extension: envoy.clusters.original_dst]
*
*
* 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;
}
case 34: {
io.envoyproxy.envoy.type.metadata.v3.MetadataKey.Builder subBuilder = null;
if (metadataKey_ != null) {
subBuilder = metadataKey_.toBuilder();
}
metadataKey_ = input.readMessage(io.envoyproxy.envoy.type.metadata.v3.MetadataKey.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(metadataKey_);
metadataKey_ = 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();
}
public static final int METADATA_KEY_FIELD_NUMBER = 4;
private io.envoyproxy.envoy.type.metadata.v3.MetadataKey metadataKey_;
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
* @return Whether the metadataKey field is set.
*/
@java.lang.Override
public boolean hasMetadataKey() {
return metadataKey_ != null;
}
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
* @return The metadataKey.
*/
@java.lang.Override
public io.envoyproxy.envoy.type.metadata.v3.MetadataKey getMetadataKey() {
return metadataKey_ == null ? io.envoyproxy.envoy.type.metadata.v3.MetadataKey.getDefaultInstance() : metadataKey_;
}
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
*/
@java.lang.Override
public io.envoyproxy.envoy.type.metadata.v3.MetadataKeyOrBuilder getMetadataKeyOrBuilder() {
return getMetadataKey();
}
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());
}
if (metadataKey_ != null) {
output.writeMessage(4, getMetadataKey());
}
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());
}
if (metadataKey_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(4, getMetadataKey());
}
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 (hasMetadataKey() != other.hasMetadataKey()) return false;
if (hasMetadataKey()) {
if (!getMetadataKey()
.equals(other.getMetadataKey())) 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();
}
if (hasMetadataKey()) {
hash = (37 * hash) + METADATA_KEY_FIELD_NUMBER;
hash = (53 * hash) + getMetadataKey().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.
* [#extension: envoy.clusters.original_dst]
*
*
* 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;
}
if (metadataKeyBuilder_ == null) {
metadataKey_ = null;
} else {
metadataKey_ = null;
metadataKeyBuilder_ = 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();
}
if (metadataKeyBuilder_ == null) {
result.metadataKey_ = metadataKey_;
} else {
result.metadataKey_ = metadataKeyBuilder_.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());
}
if (other.hasMetadataKey()) {
mergeMetadataKey(other.getMetadataKey());
}
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_;
}
private io.envoyproxy.envoy.type.metadata.v3.MetadataKey metadataKey_;
private com.google.protobuf.SingleFieldBuilderV3<
io.envoyproxy.envoy.type.metadata.v3.MetadataKey, io.envoyproxy.envoy.type.metadata.v3.MetadataKey.Builder, io.envoyproxy.envoy.type.metadata.v3.MetadataKeyOrBuilder> metadataKeyBuilder_;
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
* @return Whether the metadataKey field is set.
*/
public boolean hasMetadataKey() {
return metadataKeyBuilder_ != null || metadataKey_ != null;
}
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
* @return The metadataKey.
*/
public io.envoyproxy.envoy.type.metadata.v3.MetadataKey getMetadataKey() {
if (metadataKeyBuilder_ == null) {
return metadataKey_ == null ? io.envoyproxy.envoy.type.metadata.v3.MetadataKey.getDefaultInstance() : metadataKey_;
} else {
return metadataKeyBuilder_.getMessage();
}
}
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
*/
public Builder setMetadataKey(io.envoyproxy.envoy.type.metadata.v3.MetadataKey value) {
if (metadataKeyBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
metadataKey_ = value;
onChanged();
} else {
metadataKeyBuilder_.setMessage(value);
}
return this;
}
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
*/
public Builder setMetadataKey(
io.envoyproxy.envoy.type.metadata.v3.MetadataKey.Builder builderForValue) {
if (metadataKeyBuilder_ == null) {
metadataKey_ = builderForValue.build();
onChanged();
} else {
metadataKeyBuilder_.setMessage(builderForValue.build());
}
return this;
}
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
*/
public Builder mergeMetadataKey(io.envoyproxy.envoy.type.metadata.v3.MetadataKey value) {
if (metadataKeyBuilder_ == null) {
if (metadataKey_ != null) {
metadataKey_ =
io.envoyproxy.envoy.type.metadata.v3.MetadataKey.newBuilder(metadataKey_).mergeFrom(value).buildPartial();
} else {
metadataKey_ = value;
}
onChanged();
} else {
metadataKeyBuilder_.mergeFrom(value);
}
return this;
}
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
*/
public Builder clearMetadataKey() {
if (metadataKeyBuilder_ == null) {
metadataKey_ = null;
onChanged();
} else {
metadataKey_ = null;
metadataKeyBuilder_ = null;
}
return this;
}
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
*/
public io.envoyproxy.envoy.type.metadata.v3.MetadataKey.Builder getMetadataKeyBuilder() {
onChanged();
return getMetadataKeyFieldBuilder().getBuilder();
}
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
*/
public io.envoyproxy.envoy.type.metadata.v3.MetadataKeyOrBuilder getMetadataKeyOrBuilder() {
if (metadataKeyBuilder_ != null) {
return metadataKeyBuilder_.getMessageOrBuilder();
} else {
return metadataKey_ == null ?
io.envoyproxy.envoy.type.metadata.v3.MetadataKey.getDefaultInstance() : metadataKey_;
}
}
/**
*
* The dynamic metadata key to override destination address.
* First the request metadata is considered, then the connection one.
*
*
* .envoy.type.metadata.v3.MetadataKey metadata_key = 4;
*/
private com.google.protobuf.SingleFieldBuilderV3<
io.envoyproxy.envoy.type.metadata.v3.MetadataKey, io.envoyproxy.envoy.type.metadata.v3.MetadataKey.Builder, io.envoyproxy.envoy.type.metadata.v3.MetadataKeyOrBuilder>
getMetadataKeyFieldBuilder() {
if (metadataKeyBuilder_ == null) {
metadataKeyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
io.envoyproxy.envoy.type.metadata.v3.MetadataKey, io.envoyproxy.envoy.type.metadata.v3.MetadataKey.Builder, io.envoyproxy.envoy.type.metadata.v3.MetadataKeyOrBuilder>(
getMetadataKey(),
getParentForChildren(),
isClean());
metadataKey_ = null;
}
return metadataKeyBuilder_;
}
@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 extends io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatchOrBuilder>
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 extends io.envoyproxy.envoy.config.core.v3.HealthCheckOrBuilder>
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=874
* @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=874
* @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=890
* @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=890
* @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=903
* @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=903
* @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=914
* @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=914
* @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=930
* @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=930
* @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 extends io.envoyproxy.envoy.config.core.v3.AddressOrBuilder>
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=993
* @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=999
* @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=999
* @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>`,
* or :ref:`Redis Cluster<arch_overview_redis>`.
* 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>`,
* or :ref:`Redis Cluster<arch_overview_redis>`.
* 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>`,
* or :ref:`Redis Cluster<arch_overview_redis>`.
* 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=1099
* @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=1099
* @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 extends io.envoyproxy.envoy.config.cluster.v3.FilterOrBuilder>
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=1160
* @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 extends io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatch> 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 extends io.envoyproxy.envoy.config.cluster.v3.Cluster.TransportSocketMatchOrBuilder>
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 extends io.envoyproxy.envoy.config.core.v3.HealthCheck> 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 extends io.envoyproxy.envoy.config.core.v3.HealthCheckOrBuilder>
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=874
* @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=874
* @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=890
* @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=890
* @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=903
* @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=903
* @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=914
* @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=914
* @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=930
* @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=930
* @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 extends io.envoyproxy.envoy.config.core.v3.Address> 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 extends io.envoyproxy.envoy.config.core.v3.AddressOrBuilder>
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=993
* @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=993
* @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=993
* @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=999
* @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=999
* @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>`,
* or :ref:`Redis Cluster<arch_overview_redis>`.
* 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>`,
* or :ref:`Redis Cluster<arch_overview_redis>`.
* 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>`,
* or :ref:`Redis Cluster<arch_overview_redis>`.
* 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>`,
* or :ref:`Redis Cluster<arch_overview_redis>`.
* 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>`,
* or :ref:`Redis Cluster<arch_overview_redis>`.
* 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>`,
* or :ref:`Redis Cluster<arch_overview_redis>`.
* 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>`,
* or :ref:`Redis Cluster<arch_overview_redis>`.
* 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>`,
* or :ref:`Redis Cluster<arch_overview_redis>`.
* 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>`,
* or :ref:`Redis Cluster<arch_overview_redis>`.
* 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=1099
* @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=1099
* @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=1099
* @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=1099
* @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=1099
* @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 extends io.envoyproxy.envoy.config.cluster.v3.Filter> 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 extends io.envoyproxy.envoy.config.cluster.v3.FilterOrBuilder>
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=1160
* @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=1160
* @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=1160
* @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;
}
}