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

io.envoyproxy.envoy.config.route.v3.RouteAction Maven / Gradle / Ivy

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

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

/**
 * 
 * [#next-free-field: 42]
 * 
* * Protobuf type {@code envoy.config.route.v3.RouteAction} */ public final class RouteAction extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteAction) RouteActionOrBuilder { private static final long serialVersionUID = 0L; // Use RouteAction.newBuilder() to construct. private RouteAction(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private RouteAction() { clusterNotFoundResponseCode_ = 0; prefixRewrite_ = ""; requestMirrorPolicies_ = java.util.Collections.emptyList(); priority_ = 0; rateLimits_ = java.util.Collections.emptyList(); hashPolicy_ = java.util.Collections.emptyList(); upgradeConfigs_ = java.util.Collections.emptyList(); internalRedirectAction_ = 0; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new RouteAction(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private RouteAction( 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(); clusterSpecifierCase_ = 1; clusterSpecifier_ = s; break; } case 18: { java.lang.String s = input.readStringRequireUtf8(); clusterSpecifierCase_ = 2; clusterSpecifier_ = s; break; } case 26: { io.envoyproxy.envoy.config.route.v3.WeightedCluster.Builder subBuilder = null; if (clusterSpecifierCase_ == 3) { subBuilder = ((io.envoyproxy.envoy.config.route.v3.WeightedCluster) clusterSpecifier_).toBuilder(); } clusterSpecifier_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.WeightedCluster.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.route.v3.WeightedCluster) clusterSpecifier_); clusterSpecifier_ = subBuilder.buildPartial(); } clusterSpecifierCase_ = 3; break; } case 34: { io.envoyproxy.envoy.config.core.v3.Metadata.Builder subBuilder = null; if (metadataMatch_ != null) { subBuilder = metadataMatch_.toBuilder(); } metadataMatch_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.Metadata.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(metadataMatch_); metadataMatch_ = subBuilder.buildPartial(); } break; } case 42: { java.lang.String s = input.readStringRequireUtf8(); prefixRewrite_ = s; break; } case 50: { java.lang.String s = input.readStringRequireUtf8(); hostRewriteSpecifierCase_ = 6; hostRewriteSpecifier_ = s; break; } case 58: { com.google.protobuf.BoolValue.Builder subBuilder = null; if (hostRewriteSpecifierCase_ == 7) { subBuilder = ((com.google.protobuf.BoolValue) hostRewriteSpecifier_).toBuilder(); } hostRewriteSpecifier_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((com.google.protobuf.BoolValue) hostRewriteSpecifier_); hostRewriteSpecifier_ = subBuilder.buildPartial(); } hostRewriteSpecifierCase_ = 7; break; } case 66: { com.google.protobuf.Duration.Builder subBuilder = null; if (timeout_ != null) { subBuilder = timeout_.toBuilder(); } timeout_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(timeout_); timeout_ = subBuilder.buildPartial(); } break; } case 74: { io.envoyproxy.envoy.config.route.v3.RetryPolicy.Builder subBuilder = null; if (retryPolicy_ != null) { subBuilder = retryPolicy_.toBuilder(); } retryPolicy_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.RetryPolicy.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(retryPolicy_); retryPolicy_ = subBuilder.buildPartial(); } break; } case 88: { int rawValue = input.readEnum(); priority_ = rawValue; break; } case 106: { if (!((mutable_bitField0_ & 0x00000002) != 0)) { rateLimits_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000002; } rateLimits_.add( input.readMessage(io.envoyproxy.envoy.config.route.v3.RateLimit.parser(), extensionRegistry)); break; } case 114: { com.google.protobuf.BoolValue.Builder subBuilder = null; if (includeVhRateLimits_ != null) { subBuilder = includeVhRateLimits_.toBuilder(); } includeVhRateLimits_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(includeVhRateLimits_); includeVhRateLimits_ = subBuilder.buildPartial(); } break; } case 122: { if (!((mutable_bitField0_ & 0x00000004) != 0)) { hashPolicy_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000004; } hashPolicy_.add( input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.parser(), extensionRegistry)); break; } case 138: { io.envoyproxy.envoy.config.route.v3.CorsPolicy.Builder subBuilder = null; if (cors_ != null) { subBuilder = cors_.toBuilder(); } cors_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.CorsPolicy.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(cors_); cors_ = subBuilder.buildPartial(); } break; } case 160: { int rawValue = input.readEnum(); clusterNotFoundResponseCode_ = rawValue; break; } case 186: { com.google.protobuf.Duration.Builder subBuilder = null; if (maxGrpcTimeout_ != null) { subBuilder = maxGrpcTimeout_.toBuilder(); } maxGrpcTimeout_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(maxGrpcTimeout_); maxGrpcTimeout_ = subBuilder.buildPartial(); } break; } case 194: { com.google.protobuf.Duration.Builder subBuilder = null; if (idleTimeout_ != null) { subBuilder = idleTimeout_.toBuilder(); } idleTimeout_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(idleTimeout_); idleTimeout_ = subBuilder.buildPartial(); } break; } case 202: { if (!((mutable_bitField0_ & 0x00000008) != 0)) { upgradeConfigs_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000008; } upgradeConfigs_.add( input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.parser(), extensionRegistry)); break; } case 208: { int rawValue = input.readEnum(); internalRedirectAction_ = rawValue; break; } case 218: { io.envoyproxy.envoy.config.route.v3.HedgePolicy.Builder subBuilder = null; if (hedgePolicy_ != null) { subBuilder = hedgePolicy_.toBuilder(); } hedgePolicy_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.HedgePolicy.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(hedgePolicy_); hedgePolicy_ = subBuilder.buildPartial(); } break; } case 226: { com.google.protobuf.Duration.Builder subBuilder = null; if (grpcTimeoutOffset_ != null) { subBuilder = grpcTimeoutOffset_.toBuilder(); } grpcTimeoutOffset_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(grpcTimeoutOffset_); grpcTimeoutOffset_ = subBuilder.buildPartial(); } break; } case 234: { java.lang.String s = input.readStringRequireUtf8(); hostRewriteSpecifierCase_ = 29; hostRewriteSpecifier_ = s; break; } case 242: { if (!((mutable_bitField0_ & 0x00000001) != 0)) { requestMirrorPolicies_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000001; } requestMirrorPolicies_.add( input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.parser(), extensionRegistry)); break; } case 250: { com.google.protobuf.UInt32Value.Builder subBuilder = null; if (maxInternalRedirects_ != null) { subBuilder = maxInternalRedirects_.toBuilder(); } maxInternalRedirects_ = input.readMessage(com.google.protobuf.UInt32Value.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(maxInternalRedirects_); maxInternalRedirects_ = subBuilder.buildPartial(); } break; } case 258: { io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder subBuilder = null; if (regexRewrite_ != null) { subBuilder = regexRewrite_.toBuilder(); } regexRewrite_ = input.readMessage(io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(regexRewrite_); regexRewrite_ = subBuilder.buildPartial(); } break; } case 266: { com.google.protobuf.Any.Builder subBuilder = null; if (retryPolicyTypedConfig_ != null) { subBuilder = retryPolicyTypedConfig_.toBuilder(); } retryPolicyTypedConfig_ = input.readMessage(com.google.protobuf.Any.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(retryPolicyTypedConfig_); retryPolicyTypedConfig_ = subBuilder.buildPartial(); } break; } case 274: { io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy.Builder subBuilder = null; if (internalRedirectPolicy_ != null) { subBuilder = internalRedirectPolicy_.toBuilder(); } internalRedirectPolicy_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(internalRedirectPolicy_); internalRedirectPolicy_ = subBuilder.buildPartial(); } break; } case 282: { io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder subBuilder = null; if (hostRewriteSpecifierCase_ == 35) { subBuilder = ((io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute) hostRewriteSpecifier_).toBuilder(); } hostRewriteSpecifier_ = input.readMessage(io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute) hostRewriteSpecifier_); hostRewriteSpecifier_ = subBuilder.buildPartial(); } hostRewriteSpecifierCase_ = 35; break; } case 290: { io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.Builder subBuilder = null; if (maxStreamDuration_ != null) { subBuilder = maxStreamDuration_.toBuilder(); } maxStreamDuration_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(maxStreamDuration_); maxStreamDuration_ = subBuilder.buildPartial(); } break; } case 298: { java.lang.String s = input.readStringRequireUtf8(); clusterSpecifierCase_ = 37; clusterSpecifier_ = s; break; } case 304: { appendXForwardedHost_ = input.readBool(); break; } case 314: { io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.Builder subBuilder = null; if (clusterSpecifierCase_ == 39) { subBuilder = ((io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin) clusterSpecifier_).toBuilder(); } clusterSpecifier_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin) clusterSpecifier_); clusterSpecifier_ = subBuilder.buildPartial(); } clusterSpecifierCase_ = 39; break; } case 322: { io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder subBuilder = null; if (earlyDataPolicy_ != null) { subBuilder = earlyDataPolicy_.toBuilder(); } earlyDataPolicy_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(earlyDataPolicy_); earlyDataPolicy_ = subBuilder.buildPartial(); } break; } case 330: { io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder subBuilder = null; if (pathRewritePolicy_ != null) { subBuilder = pathRewritePolicy_.toBuilder(); } pathRewritePolicy_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(pathRewritePolicy_); pathRewritePolicy_ = 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 { if (((mutable_bitField0_ & 0x00000002) != 0)) { rateLimits_ = java.util.Collections.unmodifiableList(rateLimits_); } if (((mutable_bitField0_ & 0x00000004) != 0)) { hashPolicy_ = java.util.Collections.unmodifiableList(hashPolicy_); } if (((mutable_bitField0_ & 0x00000008) != 0)) { upgradeConfigs_ = java.util.Collections.unmodifiableList(upgradeConfigs_); } if (((mutable_bitField0_ & 0x00000001) != 0)) { requestMirrorPolicies_ = java.util.Collections.unmodifiableList(requestMirrorPolicies_); } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.class, io.envoyproxy.envoy.config.route.v3.RouteAction.Builder.class); } /** * Protobuf enum {@code envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode} */ public enum ClusterNotFoundResponseCode implements com.google.protobuf.ProtocolMessageEnum { /** *
     * HTTP status code - 503 Service Unavailable.
     * 
* * SERVICE_UNAVAILABLE = 0; */ SERVICE_UNAVAILABLE(0), /** *
     * HTTP status code - 404 Not Found.
     * 
* * NOT_FOUND = 1; */ NOT_FOUND(1), /** *
     * HTTP status code - 500 Internal Server Error.
     * 
* * INTERNAL_SERVER_ERROR = 2; */ INTERNAL_SERVER_ERROR(2), UNRECOGNIZED(-1), ; /** *
     * HTTP status code - 503 Service Unavailable.
     * 
* * SERVICE_UNAVAILABLE = 0; */ public static final int SERVICE_UNAVAILABLE_VALUE = 0; /** *
     * HTTP status code - 404 Not Found.
     * 
* * NOT_FOUND = 1; */ public static final int NOT_FOUND_VALUE = 1; /** *
     * HTTP status code - 500 Internal Server Error.
     * 
* * INTERNAL_SERVER_ERROR = 2; */ public static final int INTERNAL_SERVER_ERROR_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 ClusterNotFoundResponseCode 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 ClusterNotFoundResponseCode forNumber(int value) { switch (value) { case 0: return SERVICE_UNAVAILABLE; case 1: return NOT_FOUND; case 2: return INTERNAL_SERVER_ERROR; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< ClusterNotFoundResponseCode> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { public ClusterNotFoundResponseCode findValueByNumber(int number) { return ClusterNotFoundResponseCode.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.route.v3.RouteAction.getDescriptor().getEnumTypes().get(0); } private static final ClusterNotFoundResponseCode[] VALUES = values(); public static ClusterNotFoundResponseCode 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 ClusterNotFoundResponseCode(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode) } /** *
   * Configures :ref:`internal redirect <arch_overview_internal_redirects>` behavior.
   * [#next-major-version: remove this definition - it's defined in the InternalRedirectPolicy message.]
   * 
* * Protobuf enum {@code envoy.config.route.v3.RouteAction.InternalRedirectAction} */ @java.lang.Deprecated public enum InternalRedirectAction implements com.google.protobuf.ProtocolMessageEnum { /** * PASS_THROUGH_INTERNAL_REDIRECT = 0; */ PASS_THROUGH_INTERNAL_REDIRECT(0), /** * HANDLE_INTERNAL_REDIRECT = 1; */ HANDLE_INTERNAL_REDIRECT(1), UNRECOGNIZED(-1), ; /** * PASS_THROUGH_INTERNAL_REDIRECT = 0; */ public static final int PASS_THROUGH_INTERNAL_REDIRECT_VALUE = 0; /** * HANDLE_INTERNAL_REDIRECT = 1; */ public static final int HANDLE_INTERNAL_REDIRECT_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 InternalRedirectAction 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 InternalRedirectAction forNumber(int value) { switch (value) { case 0: return PASS_THROUGH_INTERNAL_REDIRECT; case 1: return HANDLE_INTERNAL_REDIRECT; default: return null; } } public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { return internalValueMap; } private static final com.google.protobuf.Internal.EnumLiteMap< InternalRedirectAction> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { public InternalRedirectAction findValueByNumber(int number) { return InternalRedirectAction.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.route.v3.RouteAction.getDescriptor().getEnumTypes().get(1); } private static final InternalRedirectAction[] VALUES = values(); public static InternalRedirectAction 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 InternalRedirectAction(int value) { this.value = value; } // @@protoc_insertion_point(enum_scope:envoy.config.route.v3.RouteAction.InternalRedirectAction) } public interface RequestMirrorPolicyOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteAction.RequestMirrorPolicy) com.google.protobuf.MessageOrBuilder { /** *
     * Only one of ``cluster`` and ``cluster_header`` can be specified.
     * [#next-major-version: Need to add back the validation rule: (validate.rules).string = {min_len: 1}]
     * Specifies the cluster that requests will be mirrored to. The cluster must
     * exist in the cluster manager configuration.
     * 
* * string cluster = 1 [(.udpa.annotations.field_migrate) = { ... } * @return The cluster. */ java.lang.String getCluster(); /** *
     * Only one of ``cluster`` and ``cluster_header`` can be specified.
     * [#next-major-version: Need to add back the validation rule: (validate.rules).string = {min_len: 1}]
     * Specifies the cluster that requests will be mirrored to. The cluster must
     * exist in the cluster manager configuration.
     * 
* * string cluster = 1 [(.udpa.annotations.field_migrate) = { ... } * @return The bytes for cluster. */ com.google.protobuf.ByteString getClusterBytes(); /** *
     * Only one of ``cluster`` and ``cluster_header`` can be specified.
     * Envoy will determine the cluster to route to by reading the value of the
     * HTTP header named by cluster_header from the request headers. Only the first value in header is used,
     * and no shadow request will happen if the value is not found in headers. Envoy will not wait for
     * the shadow cluster to respond before returning the response from the primary cluster.
     * .. attention::
     *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
     *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string cluster_header = 5 [(.validate.rules) = { ... } * @return The clusterHeader. */ java.lang.String getClusterHeader(); /** *
     * Only one of ``cluster`` and ``cluster_header`` can be specified.
     * Envoy will determine the cluster to route to by reading the value of the
     * HTTP header named by cluster_header from the request headers. Only the first value in header is used,
     * and no shadow request will happen if the value is not found in headers. Envoy will not wait for
     * the shadow cluster to respond before returning the response from the primary cluster.
     * .. attention::
     *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
     *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string cluster_header = 5 [(.validate.rules) = { ... } * @return The bytes for clusterHeader. */ com.google.protobuf.ByteString getClusterHeaderBytes(); /** *
     * If not specified, all requests to the target cluster will be mirrored.
     * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
     * fall under the percentage of matches indicated by this field.
     * For some fraction N/D, a random number in the range [0,D) is selected. If the
     * number is <= the value of the numerator N, or if the key is not present, the default
     * value, the request will be mirrored.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; * @return Whether the runtimeFraction field is set. */ boolean hasRuntimeFraction(); /** *
     * If not specified, all requests to the target cluster will be mirrored.
     * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
     * fall under the percentage of matches indicated by this field.
     * For some fraction N/D, a random number in the range [0,D) is selected. If the
     * number is <= the value of the numerator N, or if the key is not present, the default
     * value, the request will be mirrored.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; * @return The runtimeFraction. */ io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent getRuntimeFraction(); /** *
     * If not specified, all requests to the target cluster will be mirrored.
     * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
     * fall under the percentage of matches indicated by this field.
     * For some fraction N/D, a random number in the range [0,D) is selected. If the
     * number is <= the value of the numerator N, or if the key is not present, the default
     * value, the request will be mirrored.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; */ io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercentOrBuilder getRuntimeFractionOrBuilder(); /** *
     * Determines if the trace span should be sampled. Defaults to true.
     * 
* * .google.protobuf.BoolValue trace_sampled = 4; * @return Whether the traceSampled field is set. */ boolean hasTraceSampled(); /** *
     * Determines if the trace span should be sampled. Defaults to true.
     * 
* * .google.protobuf.BoolValue trace_sampled = 4; * @return The traceSampled. */ com.google.protobuf.BoolValue getTraceSampled(); /** *
     * Determines if the trace span should be sampled. Defaults to true.
     * 
* * .google.protobuf.BoolValue trace_sampled = 4; */ com.google.protobuf.BoolValueOrBuilder getTraceSampledOrBuilder(); } /** *
   * The router is capable of shadowing traffic from one cluster to another. The current
   * implementation is "fire and forget," meaning Envoy will not wait for the shadow cluster to
   * respond before returning the response from the primary cluster. All normal statistics are
   * collected for the shadow cluster making this feature useful for testing.
   * During shadowing, the host/authority header is altered such that ``-shadow`` is appended. This is
   * useful for logging. For example, ``cluster1`` becomes ``cluster1-shadow``.
   * .. note::
   *   Shadowing will not be triggered if the primary cluster does not exist.
   * .. note::
   *   Shadowing doesn't support Http CONNECT and upgrades.
   * [#next-free-field: 6]
   * 
* * Protobuf type {@code envoy.config.route.v3.RouteAction.RequestMirrorPolicy} */ public static final class RequestMirrorPolicy extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteAction.RequestMirrorPolicy) RequestMirrorPolicyOrBuilder { private static final long serialVersionUID = 0L; // Use RequestMirrorPolicy.newBuilder() to construct. private RequestMirrorPolicy(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private RequestMirrorPolicy() { cluster_ = ""; clusterHeader_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new RequestMirrorPolicy(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private RequestMirrorPolicy( 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(); cluster_ = s; break; } case 26: { io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.Builder subBuilder = null; if (runtimeFraction_ != null) { subBuilder = runtimeFraction_.toBuilder(); } runtimeFraction_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(runtimeFraction_); runtimeFraction_ = subBuilder.buildPartial(); } break; } case 34: { com.google.protobuf.BoolValue.Builder subBuilder = null; if (traceSampled_ != null) { subBuilder = traceSampled_.toBuilder(); } traceSampled_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(traceSampled_); traceSampled_ = subBuilder.buildPartial(); } break; } case 42: { java.lang.String s = input.readStringRequireUtf8(); clusterHeader_ = 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.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_RequestMirrorPolicy_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_RequestMirrorPolicy_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.class, io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.Builder.class); } public static final int CLUSTER_FIELD_NUMBER = 1; private volatile java.lang.Object cluster_; /** *
     * Only one of ``cluster`` and ``cluster_header`` can be specified.
     * [#next-major-version: Need to add back the validation rule: (validate.rules).string = {min_len: 1}]
     * Specifies the cluster that requests will be mirrored to. The cluster must
     * exist in the cluster manager configuration.
     * 
* * string cluster = 1 [(.udpa.annotations.field_migrate) = { ... } * @return The cluster. */ @java.lang.Override public java.lang.String getCluster() { java.lang.Object ref = cluster_; 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(); cluster_ = s; return s; } } /** *
     * Only one of ``cluster`` and ``cluster_header`` can be specified.
     * [#next-major-version: Need to add back the validation rule: (validate.rules).string = {min_len: 1}]
     * Specifies the cluster that requests will be mirrored to. The cluster must
     * exist in the cluster manager configuration.
     * 
* * string cluster = 1 [(.udpa.annotations.field_migrate) = { ... } * @return The bytes for cluster. */ @java.lang.Override public com.google.protobuf.ByteString getClusterBytes() { java.lang.Object ref = cluster_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); cluster_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int CLUSTER_HEADER_FIELD_NUMBER = 5; private volatile java.lang.Object clusterHeader_; /** *
     * Only one of ``cluster`` and ``cluster_header`` can be specified.
     * Envoy will determine the cluster to route to by reading the value of the
     * HTTP header named by cluster_header from the request headers. Only the first value in header is used,
     * and no shadow request will happen if the value is not found in headers. Envoy will not wait for
     * the shadow cluster to respond before returning the response from the primary cluster.
     * .. attention::
     *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
     *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string cluster_header = 5 [(.validate.rules) = { ... } * @return The clusterHeader. */ @java.lang.Override public java.lang.String getClusterHeader() { java.lang.Object ref = clusterHeader_; 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(); clusterHeader_ = s; return s; } } /** *
     * Only one of ``cluster`` and ``cluster_header`` can be specified.
     * Envoy will determine the cluster to route to by reading the value of the
     * HTTP header named by cluster_header from the request headers. Only the first value in header is used,
     * and no shadow request will happen if the value is not found in headers. Envoy will not wait for
     * the shadow cluster to respond before returning the response from the primary cluster.
     * .. attention::
     *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
     *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string cluster_header = 5 [(.validate.rules) = { ... } * @return The bytes for clusterHeader. */ @java.lang.Override public com.google.protobuf.ByteString getClusterHeaderBytes() { java.lang.Object ref = clusterHeader_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); clusterHeader_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int RUNTIME_FRACTION_FIELD_NUMBER = 3; private io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent runtimeFraction_; /** *
     * If not specified, all requests to the target cluster will be mirrored.
     * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
     * fall under the percentage of matches indicated by this field.
     * For some fraction N/D, a random number in the range [0,D) is selected. If the
     * number is <= the value of the numerator N, or if the key is not present, the default
     * value, the request will be mirrored.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; * @return Whether the runtimeFraction field is set. */ @java.lang.Override public boolean hasRuntimeFraction() { return runtimeFraction_ != null; } /** *
     * If not specified, all requests to the target cluster will be mirrored.
     * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
     * fall under the percentage of matches indicated by this field.
     * For some fraction N/D, a random number in the range [0,D) is selected. If the
     * number is <= the value of the numerator N, or if the key is not present, the default
     * value, the request will be mirrored.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; * @return The runtimeFraction. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent getRuntimeFraction() { return runtimeFraction_ == null ? io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.getDefaultInstance() : runtimeFraction_; } /** *
     * If not specified, all requests to the target cluster will be mirrored.
     * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
     * fall under the percentage of matches indicated by this field.
     * For some fraction N/D, a random number in the range [0,D) is selected. If the
     * number is <= the value of the numerator N, or if the key is not present, the default
     * value, the request will be mirrored.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercentOrBuilder getRuntimeFractionOrBuilder() { return getRuntimeFraction(); } public static final int TRACE_SAMPLED_FIELD_NUMBER = 4; private com.google.protobuf.BoolValue traceSampled_; /** *
     * Determines if the trace span should be sampled. Defaults to true.
     * 
* * .google.protobuf.BoolValue trace_sampled = 4; * @return Whether the traceSampled field is set. */ @java.lang.Override public boolean hasTraceSampled() { return traceSampled_ != null; } /** *
     * Determines if the trace span should be sampled. Defaults to true.
     * 
* * .google.protobuf.BoolValue trace_sampled = 4; * @return The traceSampled. */ @java.lang.Override public com.google.protobuf.BoolValue getTraceSampled() { return traceSampled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : traceSampled_; } /** *
     * Determines if the trace span should be sampled. Defaults to true.
     * 
* * .google.protobuf.BoolValue trace_sampled = 4; */ @java.lang.Override public com.google.protobuf.BoolValueOrBuilder getTraceSampledOrBuilder() { return getTraceSampled(); } 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(cluster_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, cluster_); } if (runtimeFraction_ != null) { output.writeMessage(3, getRuntimeFraction()); } if (traceSampled_ != null) { output.writeMessage(4, getTraceSampled()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterHeader_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 5, clusterHeader_); } 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(cluster_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, cluster_); } if (runtimeFraction_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, getRuntimeFraction()); } if (traceSampled_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getTraceSampled()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterHeader_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, clusterHeader_); } 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.route.v3.RouteAction.RequestMirrorPolicy)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy other = (io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy) obj; if (!getCluster() .equals(other.getCluster())) return false; if (!getClusterHeader() .equals(other.getClusterHeader())) return false; if (hasRuntimeFraction() != other.hasRuntimeFraction()) return false; if (hasRuntimeFraction()) { if (!getRuntimeFraction() .equals(other.getRuntimeFraction())) return false; } if (hasTraceSampled() != other.hasTraceSampled()) return false; if (hasTraceSampled()) { if (!getTraceSampled() .equals(other.getTraceSampled())) return false; } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + CLUSTER_FIELD_NUMBER; hash = (53 * hash) + getCluster().hashCode(); hash = (37 * hash) + CLUSTER_HEADER_FIELD_NUMBER; hash = (53 * hash) + getClusterHeader().hashCode(); if (hasRuntimeFraction()) { hash = (37 * hash) + RUNTIME_FRACTION_FIELD_NUMBER; hash = (53 * hash) + getRuntimeFraction().hashCode(); } if (hasTraceSampled()) { hash = (37 * hash) + TRACE_SAMPLED_FIELD_NUMBER; hash = (53 * hash) + getTraceSampled().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy 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.route.v3.RouteAction.RequestMirrorPolicy parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy 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.route.v3.RouteAction.RequestMirrorPolicy parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy 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.route.v3.RouteAction.RequestMirrorPolicy parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy 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.route.v3.RouteAction.RequestMirrorPolicy parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy 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.route.v3.RouteAction.RequestMirrorPolicy 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; } /** *
     * The router is capable of shadowing traffic from one cluster to another. The current
     * implementation is "fire and forget," meaning Envoy will not wait for the shadow cluster to
     * respond before returning the response from the primary cluster. All normal statistics are
     * collected for the shadow cluster making this feature useful for testing.
     * During shadowing, the host/authority header is altered such that ``-shadow`` is appended. This is
     * useful for logging. For example, ``cluster1`` becomes ``cluster1-shadow``.
     * .. note::
     *   Shadowing will not be triggered if the primary cluster does not exist.
     * .. note::
     *   Shadowing doesn't support Http CONNECT and upgrades.
     * [#next-free-field: 6]
     * 
* * Protobuf type {@code envoy.config.route.v3.RouteAction.RequestMirrorPolicy} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteAction.RequestMirrorPolicy) io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicyOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_RequestMirrorPolicy_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_RequestMirrorPolicy_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.class, io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.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(); cluster_ = ""; clusterHeader_ = ""; if (runtimeFractionBuilder_ == null) { runtimeFraction_ = null; } else { runtimeFraction_ = null; runtimeFractionBuilder_ = null; } if (traceSampledBuilder_ == null) { traceSampled_ = null; } else { traceSampled_ = null; traceSampledBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_RequestMirrorPolicy_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy build() { io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy result = new io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy(this); result.cluster_ = cluster_; result.clusterHeader_ = clusterHeader_; if (runtimeFractionBuilder_ == null) { result.runtimeFraction_ = runtimeFraction_; } else { result.runtimeFraction_ = runtimeFractionBuilder_.build(); } if (traceSampledBuilder_ == null) { result.traceSampled_ = traceSampled_; } else { result.traceSampled_ = traceSampledBuilder_.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.route.v3.RouteAction.RequestMirrorPolicy) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.getDefaultInstance()) return this; if (!other.getCluster().isEmpty()) { cluster_ = other.cluster_; onChanged(); } if (!other.getClusterHeader().isEmpty()) { clusterHeader_ = other.clusterHeader_; onChanged(); } if (other.hasRuntimeFraction()) { mergeRuntimeFraction(other.getRuntimeFraction()); } if (other.hasTraceSampled()) { mergeTraceSampled(other.getTraceSampled()); } 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.route.v3.RouteAction.RequestMirrorPolicy parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private java.lang.Object cluster_ = ""; /** *
       * Only one of ``cluster`` and ``cluster_header`` can be specified.
       * [#next-major-version: Need to add back the validation rule: (validate.rules).string = {min_len: 1}]
       * Specifies the cluster that requests will be mirrored to. The cluster must
       * exist in the cluster manager configuration.
       * 
* * string cluster = 1 [(.udpa.annotations.field_migrate) = { ... } * @return The cluster. */ public java.lang.String getCluster() { java.lang.Object ref = cluster_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); cluster_ = s; return s; } else { return (java.lang.String) ref; } } /** *
       * Only one of ``cluster`` and ``cluster_header`` can be specified.
       * [#next-major-version: Need to add back the validation rule: (validate.rules).string = {min_len: 1}]
       * Specifies the cluster that requests will be mirrored to. The cluster must
       * exist in the cluster manager configuration.
       * 
* * string cluster = 1 [(.udpa.annotations.field_migrate) = { ... } * @return The bytes for cluster. */ public com.google.protobuf.ByteString getClusterBytes() { java.lang.Object ref = cluster_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); cluster_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
       * Only one of ``cluster`` and ``cluster_header`` can be specified.
       * [#next-major-version: Need to add back the validation rule: (validate.rules).string = {min_len: 1}]
       * Specifies the cluster that requests will be mirrored to. The cluster must
       * exist in the cluster manager configuration.
       * 
* * string cluster = 1 [(.udpa.annotations.field_migrate) = { ... } * @param value The cluster to set. * @return This builder for chaining. */ public Builder setCluster( java.lang.String value) { if (value == null) { throw new NullPointerException(); } cluster_ = value; onChanged(); return this; } /** *
       * Only one of ``cluster`` and ``cluster_header`` can be specified.
       * [#next-major-version: Need to add back the validation rule: (validate.rules).string = {min_len: 1}]
       * Specifies the cluster that requests will be mirrored to. The cluster must
       * exist in the cluster manager configuration.
       * 
* * string cluster = 1 [(.udpa.annotations.field_migrate) = { ... } * @return This builder for chaining. */ public Builder clearCluster() { cluster_ = getDefaultInstance().getCluster(); onChanged(); return this; } /** *
       * Only one of ``cluster`` and ``cluster_header`` can be specified.
       * [#next-major-version: Need to add back the validation rule: (validate.rules).string = {min_len: 1}]
       * Specifies the cluster that requests will be mirrored to. The cluster must
       * exist in the cluster manager configuration.
       * 
* * string cluster = 1 [(.udpa.annotations.field_migrate) = { ... } * @param value The bytes for cluster to set. * @return This builder for chaining. */ public Builder setClusterBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); cluster_ = value; onChanged(); return this; } private java.lang.Object clusterHeader_ = ""; /** *
       * Only one of ``cluster`` and ``cluster_header`` can be specified.
       * Envoy will determine the cluster to route to by reading the value of the
       * HTTP header named by cluster_header from the request headers. Only the first value in header is used,
       * and no shadow request will happen if the value is not found in headers. Envoy will not wait for
       * the shadow cluster to respond before returning the response from the primary cluster.
       * .. attention::
       *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
       *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
       * .. note::
       *   If the header appears multiple times only the first value is used.
       * 
* * string cluster_header = 5 [(.validate.rules) = { ... } * @return The clusterHeader. */ public java.lang.String getClusterHeader() { java.lang.Object ref = clusterHeader_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); clusterHeader_ = s; return s; } else { return (java.lang.String) ref; } } /** *
       * Only one of ``cluster`` and ``cluster_header`` can be specified.
       * Envoy will determine the cluster to route to by reading the value of the
       * HTTP header named by cluster_header from the request headers. Only the first value in header is used,
       * and no shadow request will happen if the value is not found in headers. Envoy will not wait for
       * the shadow cluster to respond before returning the response from the primary cluster.
       * .. attention::
       *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
       *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
       * .. note::
       *   If the header appears multiple times only the first value is used.
       * 
* * string cluster_header = 5 [(.validate.rules) = { ... } * @return The bytes for clusterHeader. */ public com.google.protobuf.ByteString getClusterHeaderBytes() { java.lang.Object ref = clusterHeader_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); clusterHeader_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
       * Only one of ``cluster`` and ``cluster_header`` can be specified.
       * Envoy will determine the cluster to route to by reading the value of the
       * HTTP header named by cluster_header from the request headers. Only the first value in header is used,
       * and no shadow request will happen if the value is not found in headers. Envoy will not wait for
       * the shadow cluster to respond before returning the response from the primary cluster.
       * .. attention::
       *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
       *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
       * .. note::
       *   If the header appears multiple times only the first value is used.
       * 
* * string cluster_header = 5 [(.validate.rules) = { ... } * @param value The clusterHeader to set. * @return This builder for chaining. */ public Builder setClusterHeader( java.lang.String value) { if (value == null) { throw new NullPointerException(); } clusterHeader_ = value; onChanged(); return this; } /** *
       * Only one of ``cluster`` and ``cluster_header`` can be specified.
       * Envoy will determine the cluster to route to by reading the value of the
       * HTTP header named by cluster_header from the request headers. Only the first value in header is used,
       * and no shadow request will happen if the value is not found in headers. Envoy will not wait for
       * the shadow cluster to respond before returning the response from the primary cluster.
       * .. attention::
       *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
       *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
       * .. note::
       *   If the header appears multiple times only the first value is used.
       * 
* * string cluster_header = 5 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearClusterHeader() { clusterHeader_ = getDefaultInstance().getClusterHeader(); onChanged(); return this; } /** *
       * Only one of ``cluster`` and ``cluster_header`` can be specified.
       * Envoy will determine the cluster to route to by reading the value of the
       * HTTP header named by cluster_header from the request headers. Only the first value in header is used,
       * and no shadow request will happen if the value is not found in headers. Envoy will not wait for
       * the shadow cluster to respond before returning the response from the primary cluster.
       * .. attention::
       *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
       *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
       * .. note::
       *   If the header appears multiple times only the first value is used.
       * 
* * string cluster_header = 5 [(.validate.rules) = { ... } * @param value The bytes for clusterHeader to set. * @return This builder for chaining. */ public Builder setClusterHeaderBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); clusterHeader_ = value; onChanged(); return this; } private io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent runtimeFraction_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent, io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.Builder, io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercentOrBuilder> runtimeFractionBuilder_; /** *
       * If not specified, all requests to the target cluster will be mirrored.
       * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
       * fall under the percentage of matches indicated by this field.
       * For some fraction N/D, a random number in the range [0,D) is selected. If the
       * number is <= the value of the numerator N, or if the key is not present, the default
       * value, the request will be mirrored.
       * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; * @return Whether the runtimeFraction field is set. */ public boolean hasRuntimeFraction() { return runtimeFractionBuilder_ != null || runtimeFraction_ != null; } /** *
       * If not specified, all requests to the target cluster will be mirrored.
       * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
       * fall under the percentage of matches indicated by this field.
       * For some fraction N/D, a random number in the range [0,D) is selected. If the
       * number is <= the value of the numerator N, or if the key is not present, the default
       * value, the request will be mirrored.
       * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; * @return The runtimeFraction. */ public io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent getRuntimeFraction() { if (runtimeFractionBuilder_ == null) { return runtimeFraction_ == null ? io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.getDefaultInstance() : runtimeFraction_; } else { return runtimeFractionBuilder_.getMessage(); } } /** *
       * If not specified, all requests to the target cluster will be mirrored.
       * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
       * fall under the percentage of matches indicated by this field.
       * For some fraction N/D, a random number in the range [0,D) is selected. If the
       * number is <= the value of the numerator N, or if the key is not present, the default
       * value, the request will be mirrored.
       * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; */ public Builder setRuntimeFraction(io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent value) { if (runtimeFractionBuilder_ == null) { if (value == null) { throw new NullPointerException(); } runtimeFraction_ = value; onChanged(); } else { runtimeFractionBuilder_.setMessage(value); } return this; } /** *
       * If not specified, all requests to the target cluster will be mirrored.
       * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
       * fall under the percentage of matches indicated by this field.
       * For some fraction N/D, a random number in the range [0,D) is selected. If the
       * number is <= the value of the numerator N, or if the key is not present, the default
       * value, the request will be mirrored.
       * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; */ public Builder setRuntimeFraction( io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.Builder builderForValue) { if (runtimeFractionBuilder_ == null) { runtimeFraction_ = builderForValue.build(); onChanged(); } else { runtimeFractionBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * If not specified, all requests to the target cluster will be mirrored.
       * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
       * fall under the percentage of matches indicated by this field.
       * For some fraction N/D, a random number in the range [0,D) is selected. If the
       * number is <= the value of the numerator N, or if the key is not present, the default
       * value, the request will be mirrored.
       * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; */ public Builder mergeRuntimeFraction(io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent value) { if (runtimeFractionBuilder_ == null) { if (runtimeFraction_ != null) { runtimeFraction_ = io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.newBuilder(runtimeFraction_).mergeFrom(value).buildPartial(); } else { runtimeFraction_ = value; } onChanged(); } else { runtimeFractionBuilder_.mergeFrom(value); } return this; } /** *
       * If not specified, all requests to the target cluster will be mirrored.
       * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
       * fall under the percentage of matches indicated by this field.
       * For some fraction N/D, a random number in the range [0,D) is selected. If the
       * number is <= the value of the numerator N, or if the key is not present, the default
       * value, the request will be mirrored.
       * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; */ public Builder clearRuntimeFraction() { if (runtimeFractionBuilder_ == null) { runtimeFraction_ = null; onChanged(); } else { runtimeFraction_ = null; runtimeFractionBuilder_ = null; } return this; } /** *
       * If not specified, all requests to the target cluster will be mirrored.
       * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
       * fall under the percentage of matches indicated by this field.
       * For some fraction N/D, a random number in the range [0,D) is selected. If the
       * number is <= the value of the numerator N, or if the key is not present, the default
       * value, the request will be mirrored.
       * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; */ public io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.Builder getRuntimeFractionBuilder() { onChanged(); return getRuntimeFractionFieldBuilder().getBuilder(); } /** *
       * If not specified, all requests to the target cluster will be mirrored.
       * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
       * fall under the percentage of matches indicated by this field.
       * For some fraction N/D, a random number in the range [0,D) is selected. If the
       * number is <= the value of the numerator N, or if the key is not present, the default
       * value, the request will be mirrored.
       * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; */ public io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercentOrBuilder getRuntimeFractionOrBuilder() { if (runtimeFractionBuilder_ != null) { return runtimeFractionBuilder_.getMessageOrBuilder(); } else { return runtimeFraction_ == null ? io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.getDefaultInstance() : runtimeFraction_; } } /** *
       * If not specified, all requests to the target cluster will be mirrored.
       * If specified, this field takes precedence over the ``runtime_key`` field and requests must also
       * fall under the percentage of matches indicated by this field.
       * For some fraction N/D, a random number in the range [0,D) is selected. If the
       * number is <= the value of the numerator N, or if the key is not present, the default
       * value, the request will be mirrored.
       * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 3; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent, io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.Builder, io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercentOrBuilder> getRuntimeFractionFieldBuilder() { if (runtimeFractionBuilder_ == null) { runtimeFractionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent, io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.Builder, io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercentOrBuilder>( getRuntimeFraction(), getParentForChildren(), isClean()); runtimeFraction_ = null; } return runtimeFractionBuilder_; } private com.google.protobuf.BoolValue traceSampled_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> traceSampledBuilder_; /** *
       * Determines if the trace span should be sampled. Defaults to true.
       * 
* * .google.protobuf.BoolValue trace_sampled = 4; * @return Whether the traceSampled field is set. */ public boolean hasTraceSampled() { return traceSampledBuilder_ != null || traceSampled_ != null; } /** *
       * Determines if the trace span should be sampled. Defaults to true.
       * 
* * .google.protobuf.BoolValue trace_sampled = 4; * @return The traceSampled. */ public com.google.protobuf.BoolValue getTraceSampled() { if (traceSampledBuilder_ == null) { return traceSampled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : traceSampled_; } else { return traceSampledBuilder_.getMessage(); } } /** *
       * Determines if the trace span should be sampled. Defaults to true.
       * 
* * .google.protobuf.BoolValue trace_sampled = 4; */ public Builder setTraceSampled(com.google.protobuf.BoolValue value) { if (traceSampledBuilder_ == null) { if (value == null) { throw new NullPointerException(); } traceSampled_ = value; onChanged(); } else { traceSampledBuilder_.setMessage(value); } return this; } /** *
       * Determines if the trace span should be sampled. Defaults to true.
       * 
* * .google.protobuf.BoolValue trace_sampled = 4; */ public Builder setTraceSampled( com.google.protobuf.BoolValue.Builder builderForValue) { if (traceSampledBuilder_ == null) { traceSampled_ = builderForValue.build(); onChanged(); } else { traceSampledBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Determines if the trace span should be sampled. Defaults to true.
       * 
* * .google.protobuf.BoolValue trace_sampled = 4; */ public Builder mergeTraceSampled(com.google.protobuf.BoolValue value) { if (traceSampledBuilder_ == null) { if (traceSampled_ != null) { traceSampled_ = com.google.protobuf.BoolValue.newBuilder(traceSampled_).mergeFrom(value).buildPartial(); } else { traceSampled_ = value; } onChanged(); } else { traceSampledBuilder_.mergeFrom(value); } return this; } /** *
       * Determines if the trace span should be sampled. Defaults to true.
       * 
* * .google.protobuf.BoolValue trace_sampled = 4; */ public Builder clearTraceSampled() { if (traceSampledBuilder_ == null) { traceSampled_ = null; onChanged(); } else { traceSampled_ = null; traceSampledBuilder_ = null; } return this; } /** *
       * Determines if the trace span should be sampled. Defaults to true.
       * 
* * .google.protobuf.BoolValue trace_sampled = 4; */ public com.google.protobuf.BoolValue.Builder getTraceSampledBuilder() { onChanged(); return getTraceSampledFieldBuilder().getBuilder(); } /** *
       * Determines if the trace span should be sampled. Defaults to true.
       * 
* * .google.protobuf.BoolValue trace_sampled = 4; */ public com.google.protobuf.BoolValueOrBuilder getTraceSampledOrBuilder() { if (traceSampledBuilder_ != null) { return traceSampledBuilder_.getMessageOrBuilder(); } else { return traceSampled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : traceSampled_; } } /** *
       * Determines if the trace span should be sampled. Defaults to true.
       * 
* * .google.protobuf.BoolValue trace_sampled = 4; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> getTraceSampledFieldBuilder() { if (traceSampledBuilder_ == null) { traceSampledBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>( getTraceSampled(), getParentForChildren(), isClean()); traceSampled_ = null; } return traceSampledBuilder_; } @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.route.v3.RouteAction.RequestMirrorPolicy) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteAction.RequestMirrorPolicy) private static final io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy(); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public RequestMirrorPolicy parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new RequestMirrorPolicy(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.route.v3.RouteAction.RequestMirrorPolicy getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface HashPolicyOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteAction.HashPolicy) com.google.protobuf.MessageOrBuilder { /** *
     * Header hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; * @return Whether the header field is set. */ boolean hasHeader(); /** *
     * Header hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; * @return The header. */ io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header getHeader(); /** *
     * Header hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; */ io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.HeaderOrBuilder getHeaderOrBuilder(); /** *
     * Cookie hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; * @return Whether the cookie field is set. */ boolean hasCookie(); /** *
     * Cookie hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; * @return The cookie. */ io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie getCookie(); /** *
     * Cookie hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; */ io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieOrBuilder getCookieOrBuilder(); /** *
     * Connection properties hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; * @return Whether the connectionProperties field is set. */ boolean hasConnectionProperties(); /** *
     * Connection properties hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; * @return The connectionProperties. */ io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties getConnectionProperties(); /** *
     * Connection properties hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; */ io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionPropertiesOrBuilder getConnectionPropertiesOrBuilder(); /** *
     * Query parameter hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; * @return Whether the queryParameter field is set. */ boolean hasQueryParameter(); /** *
     * Query parameter hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; * @return The queryParameter. */ io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter getQueryParameter(); /** *
     * Query parameter hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; */ io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameterOrBuilder getQueryParameterOrBuilder(); /** *
     * Filter state hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; * @return Whether the filterState field is set. */ boolean hasFilterState(); /** *
     * Filter state hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; * @return The filterState. */ io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState getFilterState(); /** *
     * Filter state hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; */ io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterStateOrBuilder getFilterStateOrBuilder(); /** *
     * The flag that short-circuits the hash computing. This field provides a
     * 'fallback' style of configuration: "if a terminal policy doesn't work,
     * fallback to rest of the policy list", it saves time when the terminal
     * policy works.
     * If true, and there is already a hash computed, ignore rest of the
     * list of hash polices.
     * For example, if the following hash methods are configured:
     *  ========= ========
     *  specifier terminal
     *  ========= ========
     *  Header A  true
     *  Header B  false
     *  Header C  false
     *  ========= ========
     * The generateHash process ends if policy "header A" generates a hash, as
     * it's a terminal policy.
     * 
* * bool terminal = 4; * @return The terminal. */ boolean getTerminal(); public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.PolicySpecifierCase getPolicySpecifierCase(); } /** *
   * Specifies the route's hashing policy if the upstream cluster uses a hashing :ref:`load balancer
   * <arch_overview_load_balancing_types>`.
   * [#next-free-field: 7]
   * 
* * Protobuf type {@code envoy.config.route.v3.RouteAction.HashPolicy} */ public static final class HashPolicy extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteAction.HashPolicy) HashPolicyOrBuilder { private static final long serialVersionUID = 0L; // Use HashPolicy.newBuilder() to construct. private HashPolicy(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private HashPolicy() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new HashPolicy(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private HashPolicy( 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.route.v3.RouteAction.HashPolicy.Header.Builder subBuilder = null; if (policySpecifierCase_ == 1) { subBuilder = ((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header) policySpecifier_).toBuilder(); } policySpecifier_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header) policySpecifier_); policySpecifier_ = subBuilder.buildPartial(); } policySpecifierCase_ = 1; break; } case 18: { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.Builder subBuilder = null; if (policySpecifierCase_ == 2) { subBuilder = ((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie) policySpecifier_).toBuilder(); } policySpecifier_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie) policySpecifier_); policySpecifier_ = subBuilder.buildPartial(); } policySpecifierCase_ = 2; break; } case 26: { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.Builder subBuilder = null; if (policySpecifierCase_ == 3) { subBuilder = ((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) policySpecifier_).toBuilder(); } policySpecifier_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) policySpecifier_); policySpecifier_ = subBuilder.buildPartial(); } policySpecifierCase_ = 3; break; } case 32: { terminal_ = input.readBool(); break; } case 42: { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.Builder subBuilder = null; if (policySpecifierCase_ == 5) { subBuilder = ((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) policySpecifier_).toBuilder(); } policySpecifier_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) policySpecifier_); policySpecifier_ = subBuilder.buildPartial(); } policySpecifierCase_ = 5; break; } case 50: { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.Builder subBuilder = null; if (policySpecifierCase_ == 6) { subBuilder = ((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState) policySpecifier_).toBuilder(); } policySpecifier_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState) policySpecifier_); policySpecifier_ = subBuilder.buildPartial(); } policySpecifierCase_ = 6; 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.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.class, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Builder.class); } public interface HeaderOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteAction.HashPolicy.Header) com.google.protobuf.MessageOrBuilder { /** *
       * The name of the request header that will be used to obtain the hash
       * key. If the request header is not present, no hash will be produced.
       * 
* * string header_name = 1 [(.validate.rules) = { ... } * @return The headerName. */ java.lang.String getHeaderName(); /** *
       * The name of the request header that will be used to obtain the hash
       * key. If the request header is not present, no hash will be produced.
       * 
* * string header_name = 1 [(.validate.rules) = { ... } * @return The bytes for headerName. */ com.google.protobuf.ByteString getHeaderNameBytes(); /** *
       * If specified, the request header value will be rewritten and used
       * to produce the hash key.
       * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; * @return Whether the regexRewrite field is set. */ boolean hasRegexRewrite(); /** *
       * If specified, the request header value will be rewritten and used
       * to produce the hash key.
       * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; * @return The regexRewrite. */ io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute getRegexRewrite(); /** *
       * If specified, the request header value will be rewritten and used
       * to produce the hash key.
       * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; */ io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder getRegexRewriteOrBuilder(); } /** * Protobuf type {@code envoy.config.route.v3.RouteAction.HashPolicy.Header} */ public static final class Header extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteAction.HashPolicy.Header) HeaderOrBuilder { private static final long serialVersionUID = 0L; // Use Header.newBuilder() to construct. private Header(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Header() { headerName_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new Header(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private Header( 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(); headerName_ = s; break; } case 18: { io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder subBuilder = null; if (regexRewrite_ != null) { subBuilder = regexRewrite_.toBuilder(); } regexRewrite_ = input.readMessage(io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(regexRewrite_); regexRewrite_ = 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.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_Header_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_Header_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.class, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.Builder.class); } public static final int HEADER_NAME_FIELD_NUMBER = 1; private volatile java.lang.Object headerName_; /** *
       * The name of the request header that will be used to obtain the hash
       * key. If the request header is not present, no hash will be produced.
       * 
* * string header_name = 1 [(.validate.rules) = { ... } * @return The headerName. */ @java.lang.Override public java.lang.String getHeaderName() { java.lang.Object ref = headerName_; 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(); headerName_ = s; return s; } } /** *
       * The name of the request header that will be used to obtain the hash
       * key. If the request header is not present, no hash will be produced.
       * 
* * string header_name = 1 [(.validate.rules) = { ... } * @return The bytes for headerName. */ @java.lang.Override public com.google.protobuf.ByteString getHeaderNameBytes() { java.lang.Object ref = headerName_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); headerName_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int REGEX_REWRITE_FIELD_NUMBER = 2; private io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute regexRewrite_; /** *
       * If specified, the request header value will be rewritten and used
       * to produce the hash key.
       * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; * @return Whether the regexRewrite field is set. */ @java.lang.Override public boolean hasRegexRewrite() { return regexRewrite_ != null; } /** *
       * If specified, the request header value will be rewritten and used
       * to produce the hash key.
       * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; * @return The regexRewrite. */ @java.lang.Override public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute getRegexRewrite() { return regexRewrite_ == null ? io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.getDefaultInstance() : regexRewrite_; } /** *
       * If specified, the request header value will be rewritten and used
       * to produce the hash key.
       * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; */ @java.lang.Override public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder getRegexRewriteOrBuilder() { return getRegexRewrite(); } 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(headerName_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, headerName_); } if (regexRewrite_ != null) { output.writeMessage(2, getRegexRewrite()); } 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(headerName_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, headerName_); } if (regexRewrite_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getRegexRewrite()); } 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.route.v3.RouteAction.HashPolicy.Header)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header other = (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header) obj; if (!getHeaderName() .equals(other.getHeaderName())) return false; if (hasRegexRewrite() != other.hasRegexRewrite()) return false; if (hasRegexRewrite()) { if (!getRegexRewrite() .equals(other.getRegexRewrite())) 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) + HEADER_NAME_FIELD_NUMBER; hash = (53 * hash) + getHeaderName().hashCode(); if (hasRegexRewrite()) { hash = (37 * hash) + REGEX_REWRITE_FIELD_NUMBER; hash = (53 * hash) + getRegexRewrite().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header 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.route.v3.RouteAction.HashPolicy.Header parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header 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.route.v3.RouteAction.HashPolicy.Header parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header 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.route.v3.RouteAction.HashPolicy.Header parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header 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.route.v3.RouteAction.HashPolicy.Header parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header 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.route.v3.RouteAction.HashPolicy.Header 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.route.v3.RouteAction.HashPolicy.Header} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteAction.HashPolicy.Header) io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.HeaderOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_Header_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_Header_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.class, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.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(); headerName_ = ""; if (regexRewriteBuilder_ == null) { regexRewrite_ = null; } else { regexRewrite_ = null; regexRewriteBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_Header_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header build() { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header result = new io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header(this); result.headerName_ = headerName_; if (regexRewriteBuilder_ == null) { result.regexRewrite_ = regexRewrite_; } else { result.regexRewrite_ = regexRewriteBuilder_.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.route.v3.RouteAction.HashPolicy.Header) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.getDefaultInstance()) return this; if (!other.getHeaderName().isEmpty()) { headerName_ = other.headerName_; onChanged(); } if (other.hasRegexRewrite()) { mergeRegexRewrite(other.getRegexRewrite()); } 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.route.v3.RouteAction.HashPolicy.Header parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private java.lang.Object headerName_ = ""; /** *
         * The name of the request header that will be used to obtain the hash
         * key. If the request header is not present, no hash will be produced.
         * 
* * string header_name = 1 [(.validate.rules) = { ... } * @return The headerName. */ public java.lang.String getHeaderName() { java.lang.Object ref = headerName_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); headerName_ = s; return s; } else { return (java.lang.String) ref; } } /** *
         * The name of the request header that will be used to obtain the hash
         * key. If the request header is not present, no hash will be produced.
         * 
* * string header_name = 1 [(.validate.rules) = { ... } * @return The bytes for headerName. */ public com.google.protobuf.ByteString getHeaderNameBytes() { java.lang.Object ref = headerName_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); headerName_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
         * The name of the request header that will be used to obtain the hash
         * key. If the request header is not present, no hash will be produced.
         * 
* * string header_name = 1 [(.validate.rules) = { ... } * @param value The headerName to set. * @return This builder for chaining. */ public Builder setHeaderName( java.lang.String value) { if (value == null) { throw new NullPointerException(); } headerName_ = value; onChanged(); return this; } /** *
         * The name of the request header that will be used to obtain the hash
         * key. If the request header is not present, no hash will be produced.
         * 
* * string header_name = 1 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearHeaderName() { headerName_ = getDefaultInstance().getHeaderName(); onChanged(); return this; } /** *
         * The name of the request header that will be used to obtain the hash
         * key. If the request header is not present, no hash will be produced.
         * 
* * string header_name = 1 [(.validate.rules) = { ... } * @param value The bytes for headerName to set. * @return This builder for chaining. */ public Builder setHeaderNameBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); headerName_ = value; onChanged(); return this; } private io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute regexRewrite_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder> regexRewriteBuilder_; /** *
         * If specified, the request header value will be rewritten and used
         * to produce the hash key.
         * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; * @return Whether the regexRewrite field is set. */ public boolean hasRegexRewrite() { return regexRewriteBuilder_ != null || regexRewrite_ != null; } /** *
         * If specified, the request header value will be rewritten and used
         * to produce the hash key.
         * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; * @return The regexRewrite. */ public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute getRegexRewrite() { if (regexRewriteBuilder_ == null) { return regexRewrite_ == null ? io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.getDefaultInstance() : regexRewrite_; } else { return regexRewriteBuilder_.getMessage(); } } /** *
         * If specified, the request header value will be rewritten and used
         * to produce the hash key.
         * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; */ public Builder setRegexRewrite(io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute value) { if (regexRewriteBuilder_ == null) { if (value == null) { throw new NullPointerException(); } regexRewrite_ = value; onChanged(); } else { regexRewriteBuilder_.setMessage(value); } return this; } /** *
         * If specified, the request header value will be rewritten and used
         * to produce the hash key.
         * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; */ public Builder setRegexRewrite( io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder builderForValue) { if (regexRewriteBuilder_ == null) { regexRewrite_ = builderForValue.build(); onChanged(); } else { regexRewriteBuilder_.setMessage(builderForValue.build()); } return this; } /** *
         * If specified, the request header value will be rewritten and used
         * to produce the hash key.
         * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; */ public Builder mergeRegexRewrite(io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute value) { if (regexRewriteBuilder_ == null) { if (regexRewrite_ != null) { regexRewrite_ = io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.newBuilder(regexRewrite_).mergeFrom(value).buildPartial(); } else { regexRewrite_ = value; } onChanged(); } else { regexRewriteBuilder_.mergeFrom(value); } return this; } /** *
         * If specified, the request header value will be rewritten and used
         * to produce the hash key.
         * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; */ public Builder clearRegexRewrite() { if (regexRewriteBuilder_ == null) { regexRewrite_ = null; onChanged(); } else { regexRewrite_ = null; regexRewriteBuilder_ = null; } return this; } /** *
         * If specified, the request header value will be rewritten and used
         * to produce the hash key.
         * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; */ public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder getRegexRewriteBuilder() { onChanged(); return getRegexRewriteFieldBuilder().getBuilder(); } /** *
         * If specified, the request header value will be rewritten and used
         * to produce the hash key.
         * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; */ public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder getRegexRewriteOrBuilder() { if (regexRewriteBuilder_ != null) { return regexRewriteBuilder_.getMessageOrBuilder(); } else { return regexRewrite_ == null ? io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.getDefaultInstance() : regexRewrite_; } } /** *
         * If specified, the request header value will be rewritten and used
         * to produce the hash key.
         * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 2; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder> getRegexRewriteFieldBuilder() { if (regexRewriteBuilder_ == null) { regexRewriteBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder>( getRegexRewrite(), getParentForChildren(), isClean()); regexRewrite_ = null; } return regexRewriteBuilder_; } @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.route.v3.RouteAction.HashPolicy.Header) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteAction.HashPolicy.Header) private static final io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header(); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser
() { @java.lang.Override public Header parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new Header(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.route.v3.RouteAction.HashPolicy.Header getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface CookieAttributeOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute) com.google.protobuf.MessageOrBuilder { /** *
       * The name of the cookie attribute.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @return The name. */ java.lang.String getName(); /** *
       * The name of the cookie attribute.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @return The bytes for name. */ com.google.protobuf.ByteString getNameBytes(); /** *
       * The optional value of the cookie attribute.
       * 
* * string value = 2 [(.validate.rules) = { ... } * @return The value. */ java.lang.String getValue(); /** *
       * The optional value of the cookie attribute.
       * 
* * string value = 2 [(.validate.rules) = { ... } * @return The bytes for value. */ com.google.protobuf.ByteString getValueBytes(); } /** *
     * CookieAttribute defines an API for adding additional attributes for a HTTP cookie.
     * 
* * Protobuf type {@code envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute} */ public static final class CookieAttribute extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute) CookieAttributeOrBuilder { private static final long serialVersionUID = 0L; // Use CookieAttribute.newBuilder() to construct. private CookieAttribute(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private CookieAttribute() { name_ = ""; value_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new CookieAttribute(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private CookieAttribute( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { java.lang.String s = input.readStringRequireUtf8(); name_ = s; break; } case 18: { java.lang.String s = input.readStringRequireUtf8(); value_ = 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.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_CookieAttribute_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_CookieAttribute_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.class, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.Builder.class); } public static final int NAME_FIELD_NUMBER = 1; private volatile java.lang.Object name_; /** *
       * The name of the cookie attribute.
       * 
* * 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 cookie attribute.
       * 
* * 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 VALUE_FIELD_NUMBER = 2; private volatile java.lang.Object value_; /** *
       * The optional value of the cookie attribute.
       * 
* * string value = 2 [(.validate.rules) = { ... } * @return The value. */ @java.lang.Override public java.lang.String getValue() { java.lang.Object ref = value_; 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(); value_ = s; return s; } } /** *
       * The optional value of the cookie attribute.
       * 
* * string value = 2 [(.validate.rules) = { ... } * @return The bytes for value. */ @java.lang.Override public com.google.protobuf.ByteString getValueBytes() { java.lang.Object ref = value_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); value_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(value_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(value_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_); } 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.route.v3.RouteAction.HashPolicy.CookieAttribute)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute other = (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute) obj; if (!getName() .equals(other.getName())) return false; if (!getValue() .equals(other.getValue())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + NAME_FIELD_NUMBER; hash = (53 * hash) + getName().hashCode(); hash = (37 * hash) + VALUE_FIELD_NUMBER; hash = (53 * hash) + getValue().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute 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.route.v3.RouteAction.HashPolicy.CookieAttribute parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute 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.route.v3.RouteAction.HashPolicy.CookieAttribute parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute 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.route.v3.RouteAction.HashPolicy.CookieAttribute parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute 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.route.v3.RouteAction.HashPolicy.CookieAttribute parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute 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.route.v3.RouteAction.HashPolicy.CookieAttribute 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; } /** *
       * CookieAttribute defines an API for adding additional attributes for a HTTP cookie.
       * 
* * Protobuf type {@code envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute) io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttributeOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_CookieAttribute_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_CookieAttribute_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.class, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.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_ = ""; value_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_CookieAttribute_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute build() { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute result = new io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute(this); result.name_ = name_; result.value_ = value_; 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.route.v3.RouteAction.HashPolicy.CookieAttribute) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; onChanged(); } if (!other.getValue().isEmpty()) { value_ = other.value_; 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.route.v3.RouteAction.HashPolicy.CookieAttribute parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private java.lang.Object name_ = ""; /** *
         * The name of the cookie attribute.
         * 
* * 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 cookie attribute.
         * 
* * 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 cookie attribute.
         * 
* * 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 cookie attribute.
         * 
* * string name = 1 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearName() { name_ = getDefaultInstance().getName(); onChanged(); return this; } /** *
         * The name of the cookie attribute.
         * 
* * 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 value_ = ""; /** *
         * The optional value of the cookie attribute.
         * 
* * string value = 2 [(.validate.rules) = { ... } * @return The value. */ public java.lang.String getValue() { java.lang.Object ref = value_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); value_ = s; return s; } else { return (java.lang.String) ref; } } /** *
         * The optional value of the cookie attribute.
         * 
* * string value = 2 [(.validate.rules) = { ... } * @return The bytes for value. */ public com.google.protobuf.ByteString getValueBytes() { java.lang.Object ref = value_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); value_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
         * The optional value of the cookie attribute.
         * 
* * string value = 2 [(.validate.rules) = { ... } * @param value The value to set. * @return This builder for chaining. */ public Builder setValue( java.lang.String value) { if (value == null) { throw new NullPointerException(); } value_ = value; onChanged(); return this; } /** *
         * The optional value of the cookie attribute.
         * 
* * string value = 2 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearValue() { value_ = getDefaultInstance().getValue(); onChanged(); return this; } /** *
         * The optional value of the cookie attribute.
         * 
* * string value = 2 [(.validate.rules) = { ... } * @param value The bytes for value to set. * @return This builder for chaining. */ public Builder setValueBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); value_ = 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.route.v3.RouteAction.HashPolicy.CookieAttribute) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute) private static final io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute(); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public CookieAttribute parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new CookieAttribute(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.route.v3.RouteAction.HashPolicy.CookieAttribute getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface CookieOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteAction.HashPolicy.Cookie) com.google.protobuf.MessageOrBuilder { /** *
       * The name of the cookie that will be used to obtain the hash key. If the
       * cookie is not present and ttl below is not set, no hash will be
       * produced.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @return The name. */ java.lang.String getName(); /** *
       * The name of the cookie that will be used to obtain the hash key. If the
       * cookie is not present and ttl below is not set, no hash will be
       * produced.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @return The bytes for name. */ com.google.protobuf.ByteString getNameBytes(); /** *
       * If specified, a cookie with the TTL will be generated if the cookie is
       * not present. If the TTL is present and zero, the generated cookie will
       * be a session cookie.
       * 
* * .google.protobuf.Duration ttl = 2; * @return Whether the ttl field is set. */ boolean hasTtl(); /** *
       * If specified, a cookie with the TTL will be generated if the cookie is
       * not present. If the TTL is present and zero, the generated cookie will
       * be a session cookie.
       * 
* * .google.protobuf.Duration ttl = 2; * @return The ttl. */ com.google.protobuf.Duration getTtl(); /** *
       * If specified, a cookie with the TTL will be generated if the cookie is
       * not present. If the TTL is present and zero, the generated cookie will
       * be a session cookie.
       * 
* * .google.protobuf.Duration ttl = 2; */ com.google.protobuf.DurationOrBuilder getTtlOrBuilder(); /** *
       * The name of the path for the cookie. If no path is specified here, no path
       * will be set for the cookie.
       * 
* * string path = 3; * @return The path. */ java.lang.String getPath(); /** *
       * The name of the path for the cookie. If no path is specified here, no path
       * will be set for the cookie.
       * 
* * string path = 3; * @return The bytes for path. */ com.google.protobuf.ByteString getPathBytes(); /** *
       * Additional attributes for the cookie. They will be used when generating a new cookie.
       * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ java.util.List getAttributesList(); /** *
       * Additional attributes for the cookie. They will be used when generating a new cookie.
       * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute getAttributes(int index); /** *
       * Additional attributes for the cookie. They will be used when generating a new cookie.
       * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ int getAttributesCount(); /** *
       * Additional attributes for the cookie. They will be used when generating a new cookie.
       * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ java.util.List getAttributesOrBuilderList(); /** *
       * Additional attributes for the cookie. They will be used when generating a new cookie.
       * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttributeOrBuilder getAttributesOrBuilder( int index); } /** *
     * Envoy supports two types of cookie affinity:
     * 1. Passive. Envoy takes a cookie that's present in the cookies header and
     *    hashes on its value.
     * 2. Generated. Envoy generates and sets a cookie with an expiration (TTL)
     *    on the first request from the client in its response to the client,
     *    based on the endpoint the request gets sent to. The client then
     *    presents this on the next and all subsequent requests. The hash of
     *    this is sufficient to ensure these requests get sent to the same
     *    endpoint. The cookie is generated by hashing the source and
     *    destination ports and addresses so that multiple independent HTTP2
     *    streams on the same connection will independently receive the same
     *    cookie, even if they arrive at the Envoy simultaneously.
     * 
* * Protobuf type {@code envoy.config.route.v3.RouteAction.HashPolicy.Cookie} */ public static final class Cookie extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteAction.HashPolicy.Cookie) CookieOrBuilder { private static final long serialVersionUID = 0L; // Use Cookie.newBuilder() to construct. private Cookie(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Cookie() { name_ = ""; path_ = ""; attributes_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new Cookie(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private Cookie( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { java.lang.String s = input.readStringRequireUtf8(); name_ = s; break; } case 18: { com.google.protobuf.Duration.Builder subBuilder = null; if (ttl_ != null) { subBuilder = ttl_.toBuilder(); } ttl_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(ttl_); ttl_ = subBuilder.buildPartial(); } break; } case 26: { java.lang.String s = input.readStringRequireUtf8(); path_ = s; break; } case 34: { if (!((mutable_bitField0_ & 0x00000001) != 0)) { attributes_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000001; } attributes_.add( input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.parser(), extensionRegistry)); 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)) { attributes_ = java.util.Collections.unmodifiableList(attributes_); } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_Cookie_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_Cookie_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.class, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.Builder.class); } public static final int NAME_FIELD_NUMBER = 1; private volatile java.lang.Object name_; /** *
       * The name of the cookie that will be used to obtain the hash key. If the
       * cookie is not present and ttl below is not set, no hash will be
       * produced.
       * 
* * 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 cookie that will be used to obtain the hash key. If the
       * cookie is not present and ttl below is not set, no hash will be
       * produced.
       * 
* * 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 TTL_FIELD_NUMBER = 2; private com.google.protobuf.Duration ttl_; /** *
       * If specified, a cookie with the TTL will be generated if the cookie is
       * not present. If the TTL is present and zero, the generated cookie will
       * be a session cookie.
       * 
* * .google.protobuf.Duration ttl = 2; * @return Whether the ttl field is set. */ @java.lang.Override public boolean hasTtl() { return ttl_ != null; } /** *
       * If specified, a cookie with the TTL will be generated if the cookie is
       * not present. If the TTL is present and zero, the generated cookie will
       * be a session cookie.
       * 
* * .google.protobuf.Duration ttl = 2; * @return The ttl. */ @java.lang.Override public com.google.protobuf.Duration getTtl() { return ttl_ == null ? com.google.protobuf.Duration.getDefaultInstance() : ttl_; } /** *
       * If specified, a cookie with the TTL will be generated if the cookie is
       * not present. If the TTL is present and zero, the generated cookie will
       * be a session cookie.
       * 
* * .google.protobuf.Duration ttl = 2; */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getTtlOrBuilder() { return getTtl(); } public static final int PATH_FIELD_NUMBER = 3; private volatile java.lang.Object path_; /** *
       * The name of the path for the cookie. If no path is specified here, no path
       * will be set for the cookie.
       * 
* * string path = 3; * @return The path. */ @java.lang.Override public java.lang.String getPath() { java.lang.Object ref = path_; 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(); path_ = s; return s; } } /** *
       * The name of the path for the cookie. If no path is specified here, no path
       * will be set for the cookie.
       * 
* * string path = 3; * @return The bytes for path. */ @java.lang.Override public com.google.protobuf.ByteString getPathBytes() { java.lang.Object ref = path_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); path_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int ATTRIBUTES_FIELD_NUMBER = 4; private java.util.List attributes_; /** *
       * Additional attributes for the cookie. They will be used when generating a new cookie.
       * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ @java.lang.Override public java.util.List getAttributesList() { return attributes_; } /** *
       * Additional attributes for the cookie. They will be used when generating a new cookie.
       * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ @java.lang.Override public java.util.List getAttributesOrBuilderList() { return attributes_; } /** *
       * Additional attributes for the cookie. They will be used when generating a new cookie.
       * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ @java.lang.Override public int getAttributesCount() { return attributes_.size(); } /** *
       * Additional attributes for the cookie. They will be used when generating a new cookie.
       * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute getAttributes(int index) { return attributes_.get(index); } /** *
       * Additional attributes for the cookie. They will be used when generating a new cookie.
       * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttributeOrBuilder getAttributesOrBuilder( int index) { return attributes_.get(index); } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); } if (ttl_ != null) { output.writeMessage(2, getTtl()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(path_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, path_); } for (int i = 0; i < attributes_.size(); i++) { output.writeMessage(4, attributes_.get(i)); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); } if (ttl_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getTtl()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(path_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, path_); } for (int i = 0; i < attributes_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, attributes_.get(i)); } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie other = (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie) obj; if (!getName() .equals(other.getName())) return false; if (hasTtl() != other.hasTtl()) return false; if (hasTtl()) { if (!getTtl() .equals(other.getTtl())) return false; } if (!getPath() .equals(other.getPath())) return false; if (!getAttributesList() .equals(other.getAttributesList())) 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 (hasTtl()) { hash = (37 * hash) + TTL_FIELD_NUMBER; hash = (53 * hash) + getTtl().hashCode(); } hash = (37 * hash) + PATH_FIELD_NUMBER; hash = (53 * hash) + getPath().hashCode(); if (getAttributesCount() > 0) { hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER; hash = (53 * hash) + getAttributesList().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie 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.route.v3.RouteAction.HashPolicy.Cookie parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie 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.route.v3.RouteAction.HashPolicy.Cookie parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie 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.route.v3.RouteAction.HashPolicy.Cookie parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie 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.route.v3.RouteAction.HashPolicy.Cookie parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie 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.route.v3.RouteAction.HashPolicy.Cookie 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; } /** *
       * Envoy supports two types of cookie affinity:
       * 1. Passive. Envoy takes a cookie that's present in the cookies header and
       *    hashes on its value.
       * 2. Generated. Envoy generates and sets a cookie with an expiration (TTL)
       *    on the first request from the client in its response to the client,
       *    based on the endpoint the request gets sent to. The client then
       *    presents this on the next and all subsequent requests. The hash of
       *    this is sufficient to ensure these requests get sent to the same
       *    endpoint. The cookie is generated by hashing the source and
       *    destination ports and addresses so that multiple independent HTTP2
       *    streams on the same connection will independently receive the same
       *    cookie, even if they arrive at the Envoy simultaneously.
       * 
* * Protobuf type {@code envoy.config.route.v3.RouteAction.HashPolicy.Cookie} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteAction.HashPolicy.Cookie) io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_Cookie_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_Cookie_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.class, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getAttributesFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); name_ = ""; if (ttlBuilder_ == null) { ttl_ = null; } else { ttl_ = null; ttlBuilder_ = null; } path_ = ""; if (attributesBuilder_ == null) { attributes_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); } else { attributesBuilder_.clear(); } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_Cookie_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie build() { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie result = new io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie(this); int from_bitField0_ = bitField0_; result.name_ = name_; if (ttlBuilder_ == null) { result.ttl_ = ttl_; } else { result.ttl_ = ttlBuilder_.build(); } result.path_ = path_; if (attributesBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { attributes_ = java.util.Collections.unmodifiableList(attributes_); bitField0_ = (bitField0_ & ~0x00000001); } result.attributes_ = attributes_; } else { result.attributes_ = attributesBuilder_.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.route.v3.RouteAction.HashPolicy.Cookie) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; onChanged(); } if (other.hasTtl()) { mergeTtl(other.getTtl()); } if (!other.getPath().isEmpty()) { path_ = other.path_; onChanged(); } if (attributesBuilder_ == null) { if (!other.attributes_.isEmpty()) { if (attributes_.isEmpty()) { attributes_ = other.attributes_; bitField0_ = (bitField0_ & ~0x00000001); } else { ensureAttributesIsMutable(); attributes_.addAll(other.attributes_); } onChanged(); } } else { if (!other.attributes_.isEmpty()) { if (attributesBuilder_.isEmpty()) { attributesBuilder_.dispose(); attributesBuilder_ = null; attributes_ = other.attributes_; bitField0_ = (bitField0_ & ~0x00000001); attributesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getAttributesFieldBuilder() : null; } else { attributesBuilder_.addAllMessages(other.attributes_); } } } 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.route.v3.RouteAction.HashPolicy.Cookie parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int bitField0_; private java.lang.Object name_ = ""; /** *
         * The name of the cookie that will be used to obtain the hash key. If the
         * cookie is not present and ttl below is not set, no hash will be
         * produced.
         * 
* * 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 cookie that will be used to obtain the hash key. If the
         * cookie is not present and ttl below is not set, no hash will be
         * produced.
         * 
* * 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 cookie that will be used to obtain the hash key. If the
         * cookie is not present and ttl below is not set, no hash will be
         * produced.
         * 
* * 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 cookie that will be used to obtain the hash key. If the
         * cookie is not present and ttl below is not set, no hash will be
         * produced.
         * 
* * string name = 1 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearName() { name_ = getDefaultInstance().getName(); onChanged(); return this; } /** *
         * The name of the cookie that will be used to obtain the hash key. If the
         * cookie is not present and ttl below is not set, no hash will be
         * produced.
         * 
* * 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.Duration ttl_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> ttlBuilder_; /** *
         * If specified, a cookie with the TTL will be generated if the cookie is
         * not present. If the TTL is present and zero, the generated cookie will
         * be a session cookie.
         * 
* * .google.protobuf.Duration ttl = 2; * @return Whether the ttl field is set. */ public boolean hasTtl() { return ttlBuilder_ != null || ttl_ != null; } /** *
         * If specified, a cookie with the TTL will be generated if the cookie is
         * not present. If the TTL is present and zero, the generated cookie will
         * be a session cookie.
         * 
* * .google.protobuf.Duration ttl = 2; * @return The ttl. */ public com.google.protobuf.Duration getTtl() { if (ttlBuilder_ == null) { return ttl_ == null ? com.google.protobuf.Duration.getDefaultInstance() : ttl_; } else { return ttlBuilder_.getMessage(); } } /** *
         * If specified, a cookie with the TTL will be generated if the cookie is
         * not present. If the TTL is present and zero, the generated cookie will
         * be a session cookie.
         * 
* * .google.protobuf.Duration ttl = 2; */ public Builder setTtl(com.google.protobuf.Duration value) { if (ttlBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ttl_ = value; onChanged(); } else { ttlBuilder_.setMessage(value); } return this; } /** *
         * If specified, a cookie with the TTL will be generated if the cookie is
         * not present. If the TTL is present and zero, the generated cookie will
         * be a session cookie.
         * 
* * .google.protobuf.Duration ttl = 2; */ public Builder setTtl( com.google.protobuf.Duration.Builder builderForValue) { if (ttlBuilder_ == null) { ttl_ = builderForValue.build(); onChanged(); } else { ttlBuilder_.setMessage(builderForValue.build()); } return this; } /** *
         * If specified, a cookie with the TTL will be generated if the cookie is
         * not present. If the TTL is present and zero, the generated cookie will
         * be a session cookie.
         * 
* * .google.protobuf.Duration ttl = 2; */ public Builder mergeTtl(com.google.protobuf.Duration value) { if (ttlBuilder_ == null) { if (ttl_ != null) { ttl_ = com.google.protobuf.Duration.newBuilder(ttl_).mergeFrom(value).buildPartial(); } else { ttl_ = value; } onChanged(); } else { ttlBuilder_.mergeFrom(value); } return this; } /** *
         * If specified, a cookie with the TTL will be generated if the cookie is
         * not present. If the TTL is present and zero, the generated cookie will
         * be a session cookie.
         * 
* * .google.protobuf.Duration ttl = 2; */ public Builder clearTtl() { if (ttlBuilder_ == null) { ttl_ = null; onChanged(); } else { ttl_ = null; ttlBuilder_ = null; } return this; } /** *
         * If specified, a cookie with the TTL will be generated if the cookie is
         * not present. If the TTL is present and zero, the generated cookie will
         * be a session cookie.
         * 
* * .google.protobuf.Duration ttl = 2; */ public com.google.protobuf.Duration.Builder getTtlBuilder() { onChanged(); return getTtlFieldBuilder().getBuilder(); } /** *
         * If specified, a cookie with the TTL will be generated if the cookie is
         * not present. If the TTL is present and zero, the generated cookie will
         * be a session cookie.
         * 
* * .google.protobuf.Duration ttl = 2; */ public com.google.protobuf.DurationOrBuilder getTtlOrBuilder() { if (ttlBuilder_ != null) { return ttlBuilder_.getMessageOrBuilder(); } else { return ttl_ == null ? com.google.protobuf.Duration.getDefaultInstance() : ttl_; } } /** *
         * If specified, a cookie with the TTL will be generated if the cookie is
         * not present. If the TTL is present and zero, the generated cookie will
         * be a session cookie.
         * 
* * .google.protobuf.Duration ttl = 2; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getTtlFieldBuilder() { if (ttlBuilder_ == null) { ttlBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getTtl(), getParentForChildren(), isClean()); ttl_ = null; } return ttlBuilder_; } private java.lang.Object path_ = ""; /** *
         * The name of the path for the cookie. If no path is specified here, no path
         * will be set for the cookie.
         * 
* * string path = 3; * @return The path. */ public java.lang.String getPath() { java.lang.Object ref = path_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); path_ = s; return s; } else { return (java.lang.String) ref; } } /** *
         * The name of the path for the cookie. If no path is specified here, no path
         * will be set for the cookie.
         * 
* * string path = 3; * @return The bytes for path. */ public com.google.protobuf.ByteString getPathBytes() { java.lang.Object ref = path_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); path_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
         * The name of the path for the cookie. If no path is specified here, no path
         * will be set for the cookie.
         * 
* * string path = 3; * @param value The path to set. * @return This builder for chaining. */ public Builder setPath( java.lang.String value) { if (value == null) { throw new NullPointerException(); } path_ = value; onChanged(); return this; } /** *
         * The name of the path for the cookie. If no path is specified here, no path
         * will be set for the cookie.
         * 
* * string path = 3; * @return This builder for chaining. */ public Builder clearPath() { path_ = getDefaultInstance().getPath(); onChanged(); return this; } /** *
         * The name of the path for the cookie. If no path is specified here, no path
         * will be set for the cookie.
         * 
* * string path = 3; * @param value The bytes for path to set. * @return This builder for chaining. */ public Builder setPathBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); path_ = value; onChanged(); return this; } private java.util.List attributes_ = java.util.Collections.emptyList(); private void ensureAttributesIsMutable() { if (!((bitField0_ & 0x00000001) != 0)) { attributes_ = new java.util.ArrayList(attributes_); bitField0_ |= 0x00000001; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttributeOrBuilder> attributesBuilder_; /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public java.util.List getAttributesList() { if (attributesBuilder_ == null) { return java.util.Collections.unmodifiableList(attributes_); } else { return attributesBuilder_.getMessageList(); } } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public int getAttributesCount() { if (attributesBuilder_ == null) { return attributes_.size(); } else { return attributesBuilder_.getCount(); } } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute getAttributes(int index) { if (attributesBuilder_ == null) { return attributes_.get(index); } else { return attributesBuilder_.getMessage(index); } } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public Builder setAttributes( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute value) { if (attributesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureAttributesIsMutable(); attributes_.set(index, value); onChanged(); } else { attributesBuilder_.setMessage(index, value); } return this; } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public Builder setAttributes( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.Builder builderForValue) { if (attributesBuilder_ == null) { ensureAttributesIsMutable(); attributes_.set(index, builderForValue.build()); onChanged(); } else { attributesBuilder_.setMessage(index, builderForValue.build()); } return this; } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public Builder addAttributes(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute value) { if (attributesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureAttributesIsMutable(); attributes_.add(value); onChanged(); } else { attributesBuilder_.addMessage(value); } return this; } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public Builder addAttributes( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute value) { if (attributesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureAttributesIsMutable(); attributes_.add(index, value); onChanged(); } else { attributesBuilder_.addMessage(index, value); } return this; } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public Builder addAttributes( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.Builder builderForValue) { if (attributesBuilder_ == null) { ensureAttributesIsMutable(); attributes_.add(builderForValue.build()); onChanged(); } else { attributesBuilder_.addMessage(builderForValue.build()); } return this; } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public Builder addAttributes( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.Builder builderForValue) { if (attributesBuilder_ == null) { ensureAttributesIsMutable(); attributes_.add(index, builderForValue.build()); onChanged(); } else { attributesBuilder_.addMessage(index, builderForValue.build()); } return this; } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public Builder addAllAttributes( java.lang.Iterable values) { if (attributesBuilder_ == null) { ensureAttributesIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, attributes_); onChanged(); } else { attributesBuilder_.addAllMessages(values); } return this; } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public Builder clearAttributes() { if (attributesBuilder_ == null) { attributes_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); } else { attributesBuilder_.clear(); } return this; } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public Builder removeAttributes(int index) { if (attributesBuilder_ == null) { ensureAttributesIsMutable(); attributes_.remove(index); onChanged(); } else { attributesBuilder_.remove(index); } return this; } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.Builder getAttributesBuilder( int index) { return getAttributesFieldBuilder().getBuilder(index); } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttributeOrBuilder getAttributesOrBuilder( int index) { if (attributesBuilder_ == null) { return attributes_.get(index); } else { return attributesBuilder_.getMessageOrBuilder(index); } } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public java.util.List getAttributesOrBuilderList() { if (attributesBuilder_ != null) { return attributesBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(attributes_); } } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.Builder addAttributesBuilder() { return getAttributesFieldBuilder().addBuilder( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.getDefaultInstance()); } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.Builder addAttributesBuilder( int index) { return getAttributesFieldBuilder().addBuilder( index, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.getDefaultInstance()); } /** *
         * Additional attributes for the cookie. They will be used when generating a new cookie.
         * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute attributes = 4; */ public java.util.List getAttributesBuilderList() { return getAttributesFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttributeOrBuilder> getAttributesFieldBuilder() { if (attributesBuilder_ == null) { attributesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttribute.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieAttributeOrBuilder>( attributes_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); attributes_ = null; } return attributesBuilder_; } @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.route.v3.RouteAction.HashPolicy.Cookie) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteAction.HashPolicy.Cookie) private static final io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie(); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public Cookie parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new Cookie(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.route.v3.RouteAction.HashPolicy.Cookie getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface ConnectionPropertiesOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) com.google.protobuf.MessageOrBuilder { /** *
       * Hash on source IP address.
       * 
* * bool source_ip = 1; * @return The sourceIp. */ boolean getSourceIp(); } /** * Protobuf type {@code envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties} */ public static final class ConnectionProperties extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) ConnectionPropertiesOrBuilder { private static final long serialVersionUID = 0L; // Use ConnectionProperties.newBuilder() to construct. private ConnectionProperties(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private ConnectionProperties() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new ConnectionProperties(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private ConnectionProperties( 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: { sourceIp_ = 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.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.class, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.Builder.class); } public static final int SOURCE_IP_FIELD_NUMBER = 1; private boolean sourceIp_; /** *
       * Hash on source IP address.
       * 
* * bool source_ip = 1; * @return The sourceIp. */ @java.lang.Override public boolean getSourceIp() { return sourceIp_; } 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 (sourceIp_ != false) { output.writeBool(1, sourceIp_); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (sourceIp_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(1, sourceIp_); } 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.route.v3.RouteAction.HashPolicy.ConnectionProperties)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties other = (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) obj; if (getSourceIp() != other.getSourceIp()) 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) + SOURCE_IP_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getSourceIp()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties 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.route.v3.RouteAction.HashPolicy.ConnectionProperties parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties 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.route.v3.RouteAction.HashPolicy.ConnectionProperties parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties 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.route.v3.RouteAction.HashPolicy.ConnectionProperties parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties 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.route.v3.RouteAction.HashPolicy.ConnectionProperties parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties 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.route.v3.RouteAction.HashPolicy.ConnectionProperties 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.route.v3.RouteAction.HashPolicy.ConnectionProperties} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionPropertiesOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.class, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.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(); sourceIp_ = false; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_ConnectionProperties_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties build() { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties result = new io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties(this); result.sourceIp_ = sourceIp_; 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.route.v3.RouteAction.HashPolicy.ConnectionProperties) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.getDefaultInstance()) return this; if (other.getSourceIp() != false) { setSourceIp(other.getSourceIp()); } 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.route.v3.RouteAction.HashPolicy.ConnectionProperties parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private boolean sourceIp_ ; /** *
         * Hash on source IP address.
         * 
* * bool source_ip = 1; * @return The sourceIp. */ @java.lang.Override public boolean getSourceIp() { return sourceIp_; } /** *
         * Hash on source IP address.
         * 
* * bool source_ip = 1; * @param value The sourceIp to set. * @return This builder for chaining. */ public Builder setSourceIp(boolean value) { sourceIp_ = value; onChanged(); return this; } /** *
         * Hash on source IP address.
         * 
* * bool source_ip = 1; * @return This builder for chaining. */ public Builder clearSourceIp() { sourceIp_ = 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.route.v3.RouteAction.HashPolicy.ConnectionProperties) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) private static final io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties(); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public ConnectionProperties parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new ConnectionProperties(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.route.v3.RouteAction.HashPolicy.ConnectionProperties getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface QueryParameterOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) com.google.protobuf.MessageOrBuilder { /** *
       * The name of the URL query parameter that will be used to obtain the hash
       * key. If the parameter is not present, no hash will be produced. Query
       * parameter names are case-sensitive. If query parameters are repeated, only
       * the first value will be considered.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @return The name. */ java.lang.String getName(); /** *
       * The name of the URL query parameter that will be used to obtain the hash
       * key. If the parameter is not present, no hash will be produced. Query
       * parameter names are case-sensitive. If query parameters are repeated, only
       * the first value will be considered.
       * 
* * string name = 1 [(.validate.rules) = { ... } * @return The bytes for name. */ com.google.protobuf.ByteString getNameBytes(); } /** * Protobuf type {@code envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter} */ public static final class QueryParameter extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) QueryParameterOrBuilder { private static final long serialVersionUID = 0L; // Use QueryParameter.newBuilder() to construct. private QueryParameter(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private QueryParameter() { name_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new QueryParameter(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private QueryParameter( 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; } 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.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.class, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.Builder.class); } public static final int NAME_FIELD_NUMBER = 1; private volatile java.lang.Object name_; /** *
       * The name of the URL query parameter that will be used to obtain the hash
       * key. If the parameter is not present, no hash will be produced. Query
       * parameter names are case-sensitive. If query parameters are repeated, only
       * the first value will be considered.
       * 
* * 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 URL query parameter that will be used to obtain the hash
       * key. If the parameter is not present, no hash will be produced. Query
       * parameter names are case-sensitive. If query parameters are repeated, only
       * the first value will be considered.
       * 
* * 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; } } 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_); } 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_); } 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.route.v3.RouteAction.HashPolicy.QueryParameter)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter other = (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) obj; if (!getName() .equals(other.getName())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + NAME_FIELD_NUMBER; hash = (53 * hash) + getName().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter 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.route.v3.RouteAction.HashPolicy.QueryParameter parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter 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.route.v3.RouteAction.HashPolicy.QueryParameter parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter 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.route.v3.RouteAction.HashPolicy.QueryParameter parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter 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.route.v3.RouteAction.HashPolicy.QueryParameter parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter 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.route.v3.RouteAction.HashPolicy.QueryParameter 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.route.v3.RouteAction.HashPolicy.QueryParameter} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameterOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.class, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.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_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_QueryParameter_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter build() { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter result = new io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter(this); result.name_ = name_; 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.route.v3.RouteAction.HashPolicy.QueryParameter) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; 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.route.v3.RouteAction.HashPolicy.QueryParameter parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private java.lang.Object name_ = ""; /** *
         * The name of the URL query parameter that will be used to obtain the hash
         * key. If the parameter is not present, no hash will be produced. Query
         * parameter names are case-sensitive. If query parameters are repeated, only
         * the first value will be considered.
         * 
* * 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 URL query parameter that will be used to obtain the hash
         * key. If the parameter is not present, no hash will be produced. Query
         * parameter names are case-sensitive. If query parameters are repeated, only
         * the first value will be considered.
         * 
* * 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 URL query parameter that will be used to obtain the hash
         * key. If the parameter is not present, no hash will be produced. Query
         * parameter names are case-sensitive. If query parameters are repeated, only
         * the first value will be considered.
         * 
* * 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 URL query parameter that will be used to obtain the hash
         * key. If the parameter is not present, no hash will be produced. Query
         * parameter names are case-sensitive. If query parameters are repeated, only
         * the first value will be considered.
         * 
* * string name = 1 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearName() { name_ = getDefaultInstance().getName(); onChanged(); return this; } /** *
         * The name of the URL query parameter that will be used to obtain the hash
         * key. If the parameter is not present, no hash will be produced. Query
         * parameter names are case-sensitive. If query parameters are repeated, only
         * the first value will be considered.
         * 
* * 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; } @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.route.v3.RouteAction.HashPolicy.QueryParameter) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) private static final io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter(); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public QueryParameter parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new QueryParameter(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.route.v3.RouteAction.HashPolicy.QueryParameter getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface FilterStateOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteAction.HashPolicy.FilterState) com.google.protobuf.MessageOrBuilder { /** *
       * The name of the Object in the per-request filterState, which is an
       * Envoy::Hashable object. If there is no data associated with the key,
       * or the stored object is not Envoy::Hashable, no hash will be produced.
       * 
* * string key = 1 [(.validate.rules) = { ... } * @return The key. */ java.lang.String getKey(); /** *
       * The name of the Object in the per-request filterState, which is an
       * Envoy::Hashable object. If there is no data associated with the key,
       * or the stored object is not Envoy::Hashable, no hash will be produced.
       * 
* * string key = 1 [(.validate.rules) = { ... } * @return The bytes for key. */ com.google.protobuf.ByteString getKeyBytes(); } /** * Protobuf type {@code envoy.config.route.v3.RouteAction.HashPolicy.FilterState} */ public static final class FilterState extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteAction.HashPolicy.FilterState) FilterStateOrBuilder { private static final long serialVersionUID = 0L; // Use FilterState.newBuilder() to construct. private FilterState(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private FilterState() { key_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new FilterState(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private FilterState( 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(); key_ = 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.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_FilterState_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_FilterState_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.class, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.Builder.class); } public static final int KEY_FIELD_NUMBER = 1; private volatile java.lang.Object key_; /** *
       * The name of the Object in the per-request filterState, which is an
       * Envoy::Hashable object. If there is no data associated with the key,
       * or the stored object is not Envoy::Hashable, no hash will be produced.
       * 
* * string key = 1 [(.validate.rules) = { ... } * @return The key. */ @java.lang.Override public java.lang.String getKey() { java.lang.Object ref = key_; 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(); key_ = s; return s; } } /** *
       * The name of the Object in the per-request filterState, which is an
       * Envoy::Hashable object. If there is no data associated with the key,
       * or the stored object is not Envoy::Hashable, no hash will be produced.
       * 
* * string key = 1 [(.validate.rules) = { ... } * @return The bytes for key. */ @java.lang.Override public com.google.protobuf.ByteString getKeyBytes() { java.lang.Object ref = key_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); } 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(key_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); } 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.route.v3.RouteAction.HashPolicy.FilterState)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState other = (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState) obj; if (!getKey() .equals(other.getKey())) 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) + KEY_FIELD_NUMBER; hash = (53 * hash) + getKey().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState 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.route.v3.RouteAction.HashPolicy.FilterState parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState 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.route.v3.RouteAction.HashPolicy.FilterState parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState 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.route.v3.RouteAction.HashPolicy.FilterState parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState 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.route.v3.RouteAction.HashPolicy.FilterState parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState 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.route.v3.RouteAction.HashPolicy.FilterState 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.route.v3.RouteAction.HashPolicy.FilterState} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteAction.HashPolicy.FilterState) io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterStateOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_FilterState_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_FilterState_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.class, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.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(); key_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_FilterState_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState build() { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState result = new io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState(this); result.key_ = key_; 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.route.v3.RouteAction.HashPolicy.FilterState) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.getDefaultInstance()) return this; if (!other.getKey().isEmpty()) { key_ = other.key_; 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.route.v3.RouteAction.HashPolicy.FilterState parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private java.lang.Object key_ = ""; /** *
         * The name of the Object in the per-request filterState, which is an
         * Envoy::Hashable object. If there is no data associated with the key,
         * or the stored object is not Envoy::Hashable, no hash will be produced.
         * 
* * string key = 1 [(.validate.rules) = { ... } * @return The key. */ public java.lang.String getKey() { java.lang.Object ref = key_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); key_ = s; return s; } else { return (java.lang.String) ref; } } /** *
         * The name of the Object in the per-request filterState, which is an
         * Envoy::Hashable object. If there is no data associated with the key,
         * or the stored object is not Envoy::Hashable, no hash will be produced.
         * 
* * string key = 1 [(.validate.rules) = { ... } * @return The bytes for key. */ public com.google.protobuf.ByteString getKeyBytes() { java.lang.Object ref = key_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
         * The name of the Object in the per-request filterState, which is an
         * Envoy::Hashable object. If there is no data associated with the key,
         * or the stored object is not Envoy::Hashable, no hash will be produced.
         * 
* * string key = 1 [(.validate.rules) = { ... } * @param value The key to set. * @return This builder for chaining. */ public Builder setKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } key_ = value; onChanged(); return this; } /** *
         * The name of the Object in the per-request filterState, which is an
         * Envoy::Hashable object. If there is no data associated with the key,
         * or the stored object is not Envoy::Hashable, no hash will be produced.
         * 
* * string key = 1 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearKey() { key_ = getDefaultInstance().getKey(); onChanged(); return this; } /** *
         * The name of the Object in the per-request filterState, which is an
         * Envoy::Hashable object. If there is no data associated with the key,
         * or the stored object is not Envoy::Hashable, no hash will be produced.
         * 
* * string key = 1 [(.validate.rules) = { ... } * @param value The bytes for key to set. * @return This builder for chaining. */ public Builder setKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); key_ = 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.route.v3.RouteAction.HashPolicy.FilterState) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteAction.HashPolicy.FilterState) private static final io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState(); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public FilterState parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new FilterState(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.route.v3.RouteAction.HashPolicy.FilterState getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private int policySpecifierCase_ = 0; private java.lang.Object policySpecifier_; public enum PolicySpecifierCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { HEADER(1), COOKIE(2), CONNECTION_PROPERTIES(3), QUERY_PARAMETER(5), FILTER_STATE(6), POLICYSPECIFIER_NOT_SET(0); private final int value; private PolicySpecifierCase(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 PolicySpecifierCase valueOf(int value) { return forNumber(value); } public static PolicySpecifierCase forNumber(int value) { switch (value) { case 1: return HEADER; case 2: return COOKIE; case 3: return CONNECTION_PROPERTIES; case 5: return QUERY_PARAMETER; case 6: return FILTER_STATE; case 0: return POLICYSPECIFIER_NOT_SET; default: return null; } } public int getNumber() { return this.value; } }; public PolicySpecifierCase getPolicySpecifierCase() { return PolicySpecifierCase.forNumber( policySpecifierCase_); } public static final int HEADER_FIELD_NUMBER = 1; /** *
     * Header hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; * @return Whether the header field is set. */ @java.lang.Override public boolean hasHeader() { return policySpecifierCase_ == 1; } /** *
     * Header hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; * @return The header. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header getHeader() { if (policySpecifierCase_ == 1) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.getDefaultInstance(); } /** *
     * Header hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.HeaderOrBuilder getHeaderOrBuilder() { if (policySpecifierCase_ == 1) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.getDefaultInstance(); } public static final int COOKIE_FIELD_NUMBER = 2; /** *
     * Cookie hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; * @return Whether the cookie field is set. */ @java.lang.Override public boolean hasCookie() { return policySpecifierCase_ == 2; } /** *
     * Cookie hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; * @return The cookie. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie getCookie() { if (policySpecifierCase_ == 2) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.getDefaultInstance(); } /** *
     * Cookie hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieOrBuilder getCookieOrBuilder() { if (policySpecifierCase_ == 2) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.getDefaultInstance(); } public static final int CONNECTION_PROPERTIES_FIELD_NUMBER = 3; /** *
     * Connection properties hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; * @return Whether the connectionProperties field is set. */ @java.lang.Override public boolean hasConnectionProperties() { return policySpecifierCase_ == 3; } /** *
     * Connection properties hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; * @return The connectionProperties. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties getConnectionProperties() { if (policySpecifierCase_ == 3) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.getDefaultInstance(); } /** *
     * Connection properties hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionPropertiesOrBuilder getConnectionPropertiesOrBuilder() { if (policySpecifierCase_ == 3) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.getDefaultInstance(); } public static final int QUERY_PARAMETER_FIELD_NUMBER = 5; /** *
     * Query parameter hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; * @return Whether the queryParameter field is set. */ @java.lang.Override public boolean hasQueryParameter() { return policySpecifierCase_ == 5; } /** *
     * Query parameter hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; * @return The queryParameter. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter getQueryParameter() { if (policySpecifierCase_ == 5) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.getDefaultInstance(); } /** *
     * Query parameter hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameterOrBuilder getQueryParameterOrBuilder() { if (policySpecifierCase_ == 5) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.getDefaultInstance(); } public static final int FILTER_STATE_FIELD_NUMBER = 6; /** *
     * Filter state hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; * @return Whether the filterState field is set. */ @java.lang.Override public boolean hasFilterState() { return policySpecifierCase_ == 6; } /** *
     * Filter state hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; * @return The filterState. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState getFilterState() { if (policySpecifierCase_ == 6) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.getDefaultInstance(); } /** *
     * Filter state hash policy.
     * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterStateOrBuilder getFilterStateOrBuilder() { if (policySpecifierCase_ == 6) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.getDefaultInstance(); } public static final int TERMINAL_FIELD_NUMBER = 4; private boolean terminal_; /** *
     * The flag that short-circuits the hash computing. This field provides a
     * 'fallback' style of configuration: "if a terminal policy doesn't work,
     * fallback to rest of the policy list", it saves time when the terminal
     * policy works.
     * If true, and there is already a hash computed, ignore rest of the
     * list of hash polices.
     * For example, if the following hash methods are configured:
     *  ========= ========
     *  specifier terminal
     *  ========= ========
     *  Header A  true
     *  Header B  false
     *  Header C  false
     *  ========= ========
     * The generateHash process ends if policy "header A" generates a hash, as
     * it's a terminal policy.
     * 
* * bool terminal = 4; * @return The terminal. */ @java.lang.Override public boolean getTerminal() { return terminal_; } 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 (policySpecifierCase_ == 1) { output.writeMessage(1, (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header) policySpecifier_); } if (policySpecifierCase_ == 2) { output.writeMessage(2, (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie) policySpecifier_); } if (policySpecifierCase_ == 3) { output.writeMessage(3, (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) policySpecifier_); } if (terminal_ != false) { output.writeBool(4, terminal_); } if (policySpecifierCase_ == 5) { output.writeMessage(5, (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) policySpecifier_); } if (policySpecifierCase_ == 6) { output.writeMessage(6, (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState) policySpecifier_); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (policySpecifierCase_ == 1) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header) policySpecifier_); } if (policySpecifierCase_ == 2) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie) policySpecifier_); } if (policySpecifierCase_ == 3) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) policySpecifier_); } if (terminal_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(4, terminal_); } if (policySpecifierCase_ == 5) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(5, (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) policySpecifier_); } if (policySpecifierCase_ == 6) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(6, (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState) policySpecifier_); } 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.route.v3.RouteAction.HashPolicy)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy other = (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy) obj; if (getTerminal() != other.getTerminal()) return false; if (!getPolicySpecifierCase().equals(other.getPolicySpecifierCase())) return false; switch (policySpecifierCase_) { case 1: if (!getHeader() .equals(other.getHeader())) return false; break; case 2: if (!getCookie() .equals(other.getCookie())) return false; break; case 3: if (!getConnectionProperties() .equals(other.getConnectionProperties())) return false; break; case 5: if (!getQueryParameter() .equals(other.getQueryParameter())) return false; break; case 6: if (!getFilterState() .equals(other.getFilterState())) 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(); hash = (37 * hash) + TERMINAL_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getTerminal()); switch (policySpecifierCase_) { case 1: hash = (37 * hash) + HEADER_FIELD_NUMBER; hash = (53 * hash) + getHeader().hashCode(); break; case 2: hash = (37 * hash) + COOKIE_FIELD_NUMBER; hash = (53 * hash) + getCookie().hashCode(); break; case 3: hash = (37 * hash) + CONNECTION_PROPERTIES_FIELD_NUMBER; hash = (53 * hash) + getConnectionProperties().hashCode(); break; case 5: hash = (37 * hash) + QUERY_PARAMETER_FIELD_NUMBER; hash = (53 * hash) + getQueryParameter().hashCode(); break; case 6: hash = (37 * hash) + FILTER_STATE_FIELD_NUMBER; hash = (53 * hash) + getFilterState().hashCode(); break; case 0: default: } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy 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.route.v3.RouteAction.HashPolicy parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy 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.route.v3.RouteAction.HashPolicy parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy 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.route.v3.RouteAction.HashPolicy parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy 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.route.v3.RouteAction.HashPolicy parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy 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.route.v3.RouteAction.HashPolicy 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; } /** *
     * Specifies the route's hashing policy if the upstream cluster uses a hashing :ref:`load balancer
     * <arch_overview_load_balancing_types>`.
     * [#next-free-field: 7]
     * 
* * Protobuf type {@code envoy.config.route.v3.RouteAction.HashPolicy} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteAction.HashPolicy) io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicyOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.class, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.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(); terminal_ = false; policySpecifierCase_ = 0; policySpecifier_ = null; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_HashPolicy_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy build() { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy result = new io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy(this); if (policySpecifierCase_ == 1) { if (headerBuilder_ == null) { result.policySpecifier_ = policySpecifier_; } else { result.policySpecifier_ = headerBuilder_.build(); } } if (policySpecifierCase_ == 2) { if (cookieBuilder_ == null) { result.policySpecifier_ = policySpecifier_; } else { result.policySpecifier_ = cookieBuilder_.build(); } } if (policySpecifierCase_ == 3) { if (connectionPropertiesBuilder_ == null) { result.policySpecifier_ = policySpecifier_; } else { result.policySpecifier_ = connectionPropertiesBuilder_.build(); } } if (policySpecifierCase_ == 5) { if (queryParameterBuilder_ == null) { result.policySpecifier_ = policySpecifier_; } else { result.policySpecifier_ = queryParameterBuilder_.build(); } } if (policySpecifierCase_ == 6) { if (filterStateBuilder_ == null) { result.policySpecifier_ = policySpecifier_; } else { result.policySpecifier_ = filterStateBuilder_.build(); } } result.terminal_ = terminal_; result.policySpecifierCase_ = policySpecifierCase_; 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.route.v3.RouteAction.HashPolicy) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.getDefaultInstance()) return this; if (other.getTerminal() != false) { setTerminal(other.getTerminal()); } switch (other.getPolicySpecifierCase()) { case HEADER: { mergeHeader(other.getHeader()); break; } case COOKIE: { mergeCookie(other.getCookie()); break; } case CONNECTION_PROPERTIES: { mergeConnectionProperties(other.getConnectionProperties()); break; } case QUERY_PARAMETER: { mergeQueryParameter(other.getQueryParameter()); break; } case FILTER_STATE: { mergeFilterState(other.getFilterState()); break; } case POLICYSPECIFIER_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.route.v3.RouteAction.HashPolicy parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int policySpecifierCase_ = 0; private java.lang.Object policySpecifier_; public PolicySpecifierCase getPolicySpecifierCase() { return PolicySpecifierCase.forNumber( policySpecifierCase_); } public Builder clearPolicySpecifier() { policySpecifierCase_ = 0; policySpecifier_ = null; onChanged(); return this; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.HeaderOrBuilder> headerBuilder_; /** *
       * Header hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; * @return Whether the header field is set. */ @java.lang.Override public boolean hasHeader() { return policySpecifierCase_ == 1; } /** *
       * Header hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; * @return The header. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header getHeader() { if (headerBuilder_ == null) { if (policySpecifierCase_ == 1) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.getDefaultInstance(); } else { if (policySpecifierCase_ == 1) { return headerBuilder_.getMessage(); } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.getDefaultInstance(); } } /** *
       * Header hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; */ public Builder setHeader(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header value) { if (headerBuilder_ == null) { if (value == null) { throw new NullPointerException(); } policySpecifier_ = value; onChanged(); } else { headerBuilder_.setMessage(value); } policySpecifierCase_ = 1; return this; } /** *
       * Header hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; */ public Builder setHeader( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.Builder builderForValue) { if (headerBuilder_ == null) { policySpecifier_ = builderForValue.build(); onChanged(); } else { headerBuilder_.setMessage(builderForValue.build()); } policySpecifierCase_ = 1; return this; } /** *
       * Header hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; */ public Builder mergeHeader(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header value) { if (headerBuilder_ == null) { if (policySpecifierCase_ == 1 && policySpecifier_ != io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.getDefaultInstance()) { policySpecifier_ = io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.newBuilder((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header) policySpecifier_) .mergeFrom(value).buildPartial(); } else { policySpecifier_ = value; } onChanged(); } else { if (policySpecifierCase_ == 1) { headerBuilder_.mergeFrom(value); } else { headerBuilder_.setMessage(value); } } policySpecifierCase_ = 1; return this; } /** *
       * Header hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; */ public Builder clearHeader() { if (headerBuilder_ == null) { if (policySpecifierCase_ == 1) { policySpecifierCase_ = 0; policySpecifier_ = null; onChanged(); } } else { if (policySpecifierCase_ == 1) { policySpecifierCase_ = 0; policySpecifier_ = null; } headerBuilder_.clear(); } return this; } /** *
       * Header hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.Builder getHeaderBuilder() { return getHeaderFieldBuilder().getBuilder(); } /** *
       * Header hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.HeaderOrBuilder getHeaderOrBuilder() { if ((policySpecifierCase_ == 1) && (headerBuilder_ != null)) { return headerBuilder_.getMessageOrBuilder(); } else { if (policySpecifierCase_ == 1) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.getDefaultInstance(); } } /** *
       * Header hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Header header = 1; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.HeaderOrBuilder> getHeaderFieldBuilder() { if (headerBuilder_ == null) { if (!(policySpecifierCase_ == 1)) { policySpecifier_ = io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.getDefaultInstance(); } headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.HeaderOrBuilder>( (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Header) policySpecifier_, getParentForChildren(), isClean()); policySpecifier_ = null; } policySpecifierCase_ = 1; onChanged();; return headerBuilder_; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieOrBuilder> cookieBuilder_; /** *
       * Cookie hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; * @return Whether the cookie field is set. */ @java.lang.Override public boolean hasCookie() { return policySpecifierCase_ == 2; } /** *
       * Cookie hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; * @return The cookie. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie getCookie() { if (cookieBuilder_ == null) { if (policySpecifierCase_ == 2) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.getDefaultInstance(); } else { if (policySpecifierCase_ == 2) { return cookieBuilder_.getMessage(); } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.getDefaultInstance(); } } /** *
       * Cookie hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; */ public Builder setCookie(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie value) { if (cookieBuilder_ == null) { if (value == null) { throw new NullPointerException(); } policySpecifier_ = value; onChanged(); } else { cookieBuilder_.setMessage(value); } policySpecifierCase_ = 2; return this; } /** *
       * Cookie hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; */ public Builder setCookie( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.Builder builderForValue) { if (cookieBuilder_ == null) { policySpecifier_ = builderForValue.build(); onChanged(); } else { cookieBuilder_.setMessage(builderForValue.build()); } policySpecifierCase_ = 2; return this; } /** *
       * Cookie hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; */ public Builder mergeCookie(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie value) { if (cookieBuilder_ == null) { if (policySpecifierCase_ == 2 && policySpecifier_ != io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.getDefaultInstance()) { policySpecifier_ = io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.newBuilder((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie) policySpecifier_) .mergeFrom(value).buildPartial(); } else { policySpecifier_ = value; } onChanged(); } else { if (policySpecifierCase_ == 2) { cookieBuilder_.mergeFrom(value); } else { cookieBuilder_.setMessage(value); } } policySpecifierCase_ = 2; return this; } /** *
       * Cookie hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; */ public Builder clearCookie() { if (cookieBuilder_ == null) { if (policySpecifierCase_ == 2) { policySpecifierCase_ = 0; policySpecifier_ = null; onChanged(); } } else { if (policySpecifierCase_ == 2) { policySpecifierCase_ = 0; policySpecifier_ = null; } cookieBuilder_.clear(); } return this; } /** *
       * Cookie hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.Builder getCookieBuilder() { return getCookieFieldBuilder().getBuilder(); } /** *
       * Cookie hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieOrBuilder getCookieOrBuilder() { if ((policySpecifierCase_ == 2) && (cookieBuilder_ != null)) { return cookieBuilder_.getMessageOrBuilder(); } else { if (policySpecifierCase_ == 2) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.getDefaultInstance(); } } /** *
       * Cookie hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.Cookie cookie = 2; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieOrBuilder> getCookieFieldBuilder() { if (cookieBuilder_ == null) { if (!(policySpecifierCase_ == 2)) { policySpecifier_ = io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.getDefaultInstance(); } cookieBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.CookieOrBuilder>( (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Cookie) policySpecifier_, getParentForChildren(), isClean()); policySpecifier_ = null; } policySpecifierCase_ = 2; onChanged();; return cookieBuilder_; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionPropertiesOrBuilder> connectionPropertiesBuilder_; /** *
       * Connection properties hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; * @return Whether the connectionProperties field is set. */ @java.lang.Override public boolean hasConnectionProperties() { return policySpecifierCase_ == 3; } /** *
       * Connection properties hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; * @return The connectionProperties. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties getConnectionProperties() { if (connectionPropertiesBuilder_ == null) { if (policySpecifierCase_ == 3) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.getDefaultInstance(); } else { if (policySpecifierCase_ == 3) { return connectionPropertiesBuilder_.getMessage(); } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.getDefaultInstance(); } } /** *
       * Connection properties hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; */ public Builder setConnectionProperties(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties value) { if (connectionPropertiesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } policySpecifier_ = value; onChanged(); } else { connectionPropertiesBuilder_.setMessage(value); } policySpecifierCase_ = 3; return this; } /** *
       * Connection properties hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; */ public Builder setConnectionProperties( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.Builder builderForValue) { if (connectionPropertiesBuilder_ == null) { policySpecifier_ = builderForValue.build(); onChanged(); } else { connectionPropertiesBuilder_.setMessage(builderForValue.build()); } policySpecifierCase_ = 3; return this; } /** *
       * Connection properties hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; */ public Builder mergeConnectionProperties(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties value) { if (connectionPropertiesBuilder_ == null) { if (policySpecifierCase_ == 3 && policySpecifier_ != io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.getDefaultInstance()) { policySpecifier_ = io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.newBuilder((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) policySpecifier_) .mergeFrom(value).buildPartial(); } else { policySpecifier_ = value; } onChanged(); } else { if (policySpecifierCase_ == 3) { connectionPropertiesBuilder_.mergeFrom(value); } else { connectionPropertiesBuilder_.setMessage(value); } } policySpecifierCase_ = 3; return this; } /** *
       * Connection properties hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; */ public Builder clearConnectionProperties() { if (connectionPropertiesBuilder_ == null) { if (policySpecifierCase_ == 3) { policySpecifierCase_ = 0; policySpecifier_ = null; onChanged(); } } else { if (policySpecifierCase_ == 3) { policySpecifierCase_ = 0; policySpecifier_ = null; } connectionPropertiesBuilder_.clear(); } return this; } /** *
       * Connection properties hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.Builder getConnectionPropertiesBuilder() { return getConnectionPropertiesFieldBuilder().getBuilder(); } /** *
       * Connection properties hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionPropertiesOrBuilder getConnectionPropertiesOrBuilder() { if ((policySpecifierCase_ == 3) && (connectionPropertiesBuilder_ != null)) { return connectionPropertiesBuilder_.getMessageOrBuilder(); } else { if (policySpecifierCase_ == 3) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.getDefaultInstance(); } } /** *
       * Connection properties hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties connection_properties = 3; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionPropertiesOrBuilder> getConnectionPropertiesFieldBuilder() { if (connectionPropertiesBuilder_ == null) { if (!(policySpecifierCase_ == 3)) { policySpecifier_ = io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.getDefaultInstance(); } connectionPropertiesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionPropertiesOrBuilder>( (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties) policySpecifier_, getParentForChildren(), isClean()); policySpecifier_ = null; } policySpecifierCase_ = 3; onChanged();; return connectionPropertiesBuilder_; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameterOrBuilder> queryParameterBuilder_; /** *
       * Query parameter hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; * @return Whether the queryParameter field is set. */ @java.lang.Override public boolean hasQueryParameter() { return policySpecifierCase_ == 5; } /** *
       * Query parameter hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; * @return The queryParameter. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter getQueryParameter() { if (queryParameterBuilder_ == null) { if (policySpecifierCase_ == 5) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.getDefaultInstance(); } else { if (policySpecifierCase_ == 5) { return queryParameterBuilder_.getMessage(); } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.getDefaultInstance(); } } /** *
       * Query parameter hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; */ public Builder setQueryParameter(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter value) { if (queryParameterBuilder_ == null) { if (value == null) { throw new NullPointerException(); } policySpecifier_ = value; onChanged(); } else { queryParameterBuilder_.setMessage(value); } policySpecifierCase_ = 5; return this; } /** *
       * Query parameter hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; */ public Builder setQueryParameter( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.Builder builderForValue) { if (queryParameterBuilder_ == null) { policySpecifier_ = builderForValue.build(); onChanged(); } else { queryParameterBuilder_.setMessage(builderForValue.build()); } policySpecifierCase_ = 5; return this; } /** *
       * Query parameter hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; */ public Builder mergeQueryParameter(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter value) { if (queryParameterBuilder_ == null) { if (policySpecifierCase_ == 5 && policySpecifier_ != io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.getDefaultInstance()) { policySpecifier_ = io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.newBuilder((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) policySpecifier_) .mergeFrom(value).buildPartial(); } else { policySpecifier_ = value; } onChanged(); } else { if (policySpecifierCase_ == 5) { queryParameterBuilder_.mergeFrom(value); } else { queryParameterBuilder_.setMessage(value); } } policySpecifierCase_ = 5; return this; } /** *
       * Query parameter hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; */ public Builder clearQueryParameter() { if (queryParameterBuilder_ == null) { if (policySpecifierCase_ == 5) { policySpecifierCase_ = 0; policySpecifier_ = null; onChanged(); } } else { if (policySpecifierCase_ == 5) { policySpecifierCase_ = 0; policySpecifier_ = null; } queryParameterBuilder_.clear(); } return this; } /** *
       * Query parameter hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.Builder getQueryParameterBuilder() { return getQueryParameterFieldBuilder().getBuilder(); } /** *
       * Query parameter hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameterOrBuilder getQueryParameterOrBuilder() { if ((policySpecifierCase_ == 5) && (queryParameterBuilder_ != null)) { return queryParameterBuilder_.getMessageOrBuilder(); } else { if (policySpecifierCase_ == 5) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.getDefaultInstance(); } } /** *
       * Query parameter hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter query_parameter = 5; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameterOrBuilder> getQueryParameterFieldBuilder() { if (queryParameterBuilder_ == null) { if (!(policySpecifierCase_ == 5)) { policySpecifier_ = io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.getDefaultInstance(); } queryParameterBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameterOrBuilder>( (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter) policySpecifier_, getParentForChildren(), isClean()); policySpecifier_ = null; } policySpecifierCase_ = 5; onChanged();; return queryParameterBuilder_; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterStateOrBuilder> filterStateBuilder_; /** *
       * Filter state hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; * @return Whether the filterState field is set. */ @java.lang.Override public boolean hasFilterState() { return policySpecifierCase_ == 6; } /** *
       * Filter state hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; * @return The filterState. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState getFilterState() { if (filterStateBuilder_ == null) { if (policySpecifierCase_ == 6) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.getDefaultInstance(); } else { if (policySpecifierCase_ == 6) { return filterStateBuilder_.getMessage(); } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.getDefaultInstance(); } } /** *
       * Filter state hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; */ public Builder setFilterState(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState value) { if (filterStateBuilder_ == null) { if (value == null) { throw new NullPointerException(); } policySpecifier_ = value; onChanged(); } else { filterStateBuilder_.setMessage(value); } policySpecifierCase_ = 6; return this; } /** *
       * Filter state hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; */ public Builder setFilterState( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.Builder builderForValue) { if (filterStateBuilder_ == null) { policySpecifier_ = builderForValue.build(); onChanged(); } else { filterStateBuilder_.setMessage(builderForValue.build()); } policySpecifierCase_ = 6; return this; } /** *
       * Filter state hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; */ public Builder mergeFilterState(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState value) { if (filterStateBuilder_ == null) { if (policySpecifierCase_ == 6 && policySpecifier_ != io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.getDefaultInstance()) { policySpecifier_ = io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.newBuilder((io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState) policySpecifier_) .mergeFrom(value).buildPartial(); } else { policySpecifier_ = value; } onChanged(); } else { if (policySpecifierCase_ == 6) { filterStateBuilder_.mergeFrom(value); } else { filterStateBuilder_.setMessage(value); } } policySpecifierCase_ = 6; return this; } /** *
       * Filter state hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; */ public Builder clearFilterState() { if (filterStateBuilder_ == null) { if (policySpecifierCase_ == 6) { policySpecifierCase_ = 0; policySpecifier_ = null; onChanged(); } } else { if (policySpecifierCase_ == 6) { policySpecifierCase_ = 0; policySpecifier_ = null; } filterStateBuilder_.clear(); } return this; } /** *
       * Filter state hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.Builder getFilterStateBuilder() { return getFilterStateFieldBuilder().getBuilder(); } /** *
       * Filter state hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterStateOrBuilder getFilterStateOrBuilder() { if ((policySpecifierCase_ == 6) && (filterStateBuilder_ != null)) { return filterStateBuilder_.getMessageOrBuilder(); } else { if (policySpecifierCase_ == 6) { return (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState) policySpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.getDefaultInstance(); } } /** *
       * Filter state hash policy.
       * 
* * .envoy.config.route.v3.RouteAction.HashPolicy.FilterState filter_state = 6; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterStateOrBuilder> getFilterStateFieldBuilder() { if (filterStateBuilder_ == null) { if (!(policySpecifierCase_ == 6)) { policySpecifier_ = io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.getDefaultInstance(); } filterStateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterStateOrBuilder>( (io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.FilterState) policySpecifier_, getParentForChildren(), isClean()); policySpecifier_ = null; } policySpecifierCase_ = 6; onChanged();; return filterStateBuilder_; } private boolean terminal_ ; /** *
       * The flag that short-circuits the hash computing. This field provides a
       * 'fallback' style of configuration: "if a terminal policy doesn't work,
       * fallback to rest of the policy list", it saves time when the terminal
       * policy works.
       * If true, and there is already a hash computed, ignore rest of the
       * list of hash polices.
       * For example, if the following hash methods are configured:
       *  ========= ========
       *  specifier terminal
       *  ========= ========
       *  Header A  true
       *  Header B  false
       *  Header C  false
       *  ========= ========
       * The generateHash process ends if policy "header A" generates a hash, as
       * it's a terminal policy.
       * 
* * bool terminal = 4; * @return The terminal. */ @java.lang.Override public boolean getTerminal() { return terminal_; } /** *
       * The flag that short-circuits the hash computing. This field provides a
       * 'fallback' style of configuration: "if a terminal policy doesn't work,
       * fallback to rest of the policy list", it saves time when the terminal
       * policy works.
       * If true, and there is already a hash computed, ignore rest of the
       * list of hash polices.
       * For example, if the following hash methods are configured:
       *  ========= ========
       *  specifier terminal
       *  ========= ========
       *  Header A  true
       *  Header B  false
       *  Header C  false
       *  ========= ========
       * The generateHash process ends if policy "header A" generates a hash, as
       * it's a terminal policy.
       * 
* * bool terminal = 4; * @param value The terminal to set. * @return This builder for chaining. */ public Builder setTerminal(boolean value) { terminal_ = value; onChanged(); return this; } /** *
       * The flag that short-circuits the hash computing. This field provides a
       * 'fallback' style of configuration: "if a terminal policy doesn't work,
       * fallback to rest of the policy list", it saves time when the terminal
       * policy works.
       * If true, and there is already a hash computed, ignore rest of the
       * list of hash polices.
       * For example, if the following hash methods are configured:
       *  ========= ========
       *  specifier terminal
       *  ========= ========
       *  Header A  true
       *  Header B  false
       *  Header C  false
       *  ========= ========
       * The generateHash process ends if policy "header A" generates a hash, as
       * it's a terminal policy.
       * 
* * bool terminal = 4; * @return This builder for chaining. */ public Builder clearTerminal() { terminal_ = 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.route.v3.RouteAction.HashPolicy) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteAction.HashPolicy) private static final io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy(); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public HashPolicy parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new HashPolicy(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.route.v3.RouteAction.HashPolicy getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface UpgradeConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteAction.UpgradeConfig) com.google.protobuf.MessageOrBuilder { /** *
     * The case-insensitive name of this upgrade, e.g. "websocket".
     * For each upgrade type present in upgrade_configs, requests with
     * Upgrade: [upgrade_type] will be proxied upstream.
     * 
* * string upgrade_type = 1 [(.validate.rules) = { ... } * @return The upgradeType. */ java.lang.String getUpgradeType(); /** *
     * The case-insensitive name of this upgrade, e.g. "websocket".
     * For each upgrade type present in upgrade_configs, requests with
     * Upgrade: [upgrade_type] will be proxied upstream.
     * 
* * string upgrade_type = 1 [(.validate.rules) = { ... } * @return The bytes for upgradeType. */ com.google.protobuf.ByteString getUpgradeTypeBytes(); /** *
     * Determines if upgrades are available on this route. Defaults to true.
     * 
* * .google.protobuf.BoolValue enabled = 2; * @return Whether the enabled field is set. */ boolean hasEnabled(); /** *
     * Determines if upgrades are available on this route. Defaults to true.
     * 
* * .google.protobuf.BoolValue enabled = 2; * @return The enabled. */ com.google.protobuf.BoolValue getEnabled(); /** *
     * Determines if upgrades are available on this route. Defaults to true.
     * 
* * .google.protobuf.BoolValue enabled = 2; */ com.google.protobuf.BoolValueOrBuilder getEnabledOrBuilder(); /** *
     * Configuration for sending data upstream as a raw data payload. This is used for
     * CONNECT requests, when forwarding CONNECT payload as raw TCP.
     * Note that CONNECT support is currently considered alpha in Envoy.
     * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
     * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; * @return Whether the connectConfig field is set. */ boolean hasConnectConfig(); /** *
     * Configuration for sending data upstream as a raw data payload. This is used for
     * CONNECT requests, when forwarding CONNECT payload as raw TCP.
     * Note that CONNECT support is currently considered alpha in Envoy.
     * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
     * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; * @return The connectConfig. */ io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig getConnectConfig(); /** *
     * Configuration for sending data upstream as a raw data payload. This is used for
     * CONNECT requests, when forwarding CONNECT payload as raw TCP.
     * Note that CONNECT support is currently considered alpha in Envoy.
     * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
     * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; */ io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfigOrBuilder getConnectConfigOrBuilder(); } /** *
   * Allows enabling and disabling upgrades on a per-route basis.
   * This overrides any enabled/disabled upgrade filter chain specified in the
   * HttpConnectionManager
   * :ref:`upgrade_configs
   * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.upgrade_configs>`
   * but does not affect any custom filter chain specified there.
   * 
* * Protobuf type {@code envoy.config.route.v3.RouteAction.UpgradeConfig} */ public static final class UpgradeConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteAction.UpgradeConfig) UpgradeConfigOrBuilder { private static final long serialVersionUID = 0L; // Use UpgradeConfig.newBuilder() to construct. private UpgradeConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private UpgradeConfig() { upgradeType_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new UpgradeConfig(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private UpgradeConfig( 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(); upgradeType_ = s; break; } case 18: { com.google.protobuf.BoolValue.Builder subBuilder = null; if (enabled_ != null) { subBuilder = enabled_.toBuilder(); } enabled_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(enabled_); enabled_ = subBuilder.buildPartial(); } break; } case 26: { io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.Builder subBuilder = null; if (connectConfig_ != null) { subBuilder = connectConfig_.toBuilder(); } connectConfig_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(connectConfig_); connectConfig_ = 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.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_UpgradeConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_UpgradeConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.class, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.Builder.class); } public interface ConnectConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig) com.google.protobuf.MessageOrBuilder { /** *
       * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
       * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; * @return Whether the proxyProtocolConfig field is set. */ boolean hasProxyProtocolConfig(); /** *
       * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
       * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; * @return The proxyProtocolConfig. */ io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig getProxyProtocolConfig(); /** *
       * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
       * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; */ io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfigOrBuilder getProxyProtocolConfigOrBuilder(); /** *
       * If set, the route will also allow forwarding POST payload as raw TCP.
       * 
* * bool allow_post = 2; * @return The allowPost. */ boolean getAllowPost(); } /** *
     * Configuration for sending data upstream as a raw data payload. This is used for
     * CONNECT or POST requests, when forwarding request payload as raw TCP.
     * 
* * Protobuf type {@code envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig} */ public static final class ConnectConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig) ConnectConfigOrBuilder { private static final long serialVersionUID = 0L; // Use ConnectConfig.newBuilder() to construct. private ConnectConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private ConnectConfig() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new ConnectConfig(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private ConnectConfig( 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.ProxyProtocolConfig.Builder subBuilder = null; if (proxyProtocolConfig_ != null) { subBuilder = proxyProtocolConfig_.toBuilder(); } proxyProtocolConfig_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(proxyProtocolConfig_); proxyProtocolConfig_ = subBuilder.buildPartial(); } break; } case 16: { allowPost_ = 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.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.class, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.Builder.class); } public static final int PROXY_PROTOCOL_CONFIG_FIELD_NUMBER = 1; private io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig proxyProtocolConfig_; /** *
       * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
       * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; * @return Whether the proxyProtocolConfig field is set. */ @java.lang.Override public boolean hasProxyProtocolConfig() { return proxyProtocolConfig_ != null; } /** *
       * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
       * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; * @return The proxyProtocolConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig getProxyProtocolConfig() { return proxyProtocolConfig_ == null ? io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig.getDefaultInstance() : proxyProtocolConfig_; } /** *
       * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
       * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfigOrBuilder getProxyProtocolConfigOrBuilder() { return getProxyProtocolConfig(); } public static final int ALLOW_POST_FIELD_NUMBER = 2; private boolean allowPost_; /** *
       * If set, the route will also allow forwarding POST payload as raw TCP.
       * 
* * bool allow_post = 2; * @return The allowPost. */ @java.lang.Override public boolean getAllowPost() { return allowPost_; } 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 (proxyProtocolConfig_ != null) { output.writeMessage(1, getProxyProtocolConfig()); } if (allowPost_ != false) { output.writeBool(2, allowPost_); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (proxyProtocolConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getProxyProtocolConfig()); } if (allowPost_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(2, allowPost_); } 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.route.v3.RouteAction.UpgradeConfig.ConnectConfig)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig other = (io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig) obj; if (hasProxyProtocolConfig() != other.hasProxyProtocolConfig()) return false; if (hasProxyProtocolConfig()) { if (!getProxyProtocolConfig() .equals(other.getProxyProtocolConfig())) return false; } if (getAllowPost() != other.getAllowPost()) 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 (hasProxyProtocolConfig()) { hash = (37 * hash) + PROXY_PROTOCOL_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getProxyProtocolConfig().hashCode(); } hash = (37 * hash) + ALLOW_POST_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getAllowPost()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig 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.route.v3.RouteAction.UpgradeConfig.ConnectConfig parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig 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.route.v3.RouteAction.UpgradeConfig.ConnectConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig 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.route.v3.RouteAction.UpgradeConfig.ConnectConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig 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.route.v3.RouteAction.UpgradeConfig.ConnectConfig parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig 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.route.v3.RouteAction.UpgradeConfig.ConnectConfig 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 sending data upstream as a raw data payload. This is used for
       * CONNECT or POST requests, when forwarding request payload as raw TCP.
       * 
* * Protobuf type {@code envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig) io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.class, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.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 (proxyProtocolConfigBuilder_ == null) { proxyProtocolConfig_ = null; } else { proxyProtocolConfig_ = null; proxyProtocolConfigBuilder_ = null; } allowPost_ = false; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_UpgradeConfig_ConnectConfig_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig build() { io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig result = new io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig(this); if (proxyProtocolConfigBuilder_ == null) { result.proxyProtocolConfig_ = proxyProtocolConfig_; } else { result.proxyProtocolConfig_ = proxyProtocolConfigBuilder_.build(); } result.allowPost_ = allowPost_; 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.route.v3.RouteAction.UpgradeConfig.ConnectConfig) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.getDefaultInstance()) return this; if (other.hasProxyProtocolConfig()) { mergeProxyProtocolConfig(other.getProxyProtocolConfig()); } if (other.getAllowPost() != false) { setAllowPost(other.getAllowPost()); } 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.route.v3.RouteAction.UpgradeConfig.ConnectConfig parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig proxyProtocolConfig_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig, io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig.Builder, io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfigOrBuilder> proxyProtocolConfigBuilder_; /** *
         * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
         * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; * @return Whether the proxyProtocolConfig field is set. */ public boolean hasProxyProtocolConfig() { return proxyProtocolConfigBuilder_ != null || proxyProtocolConfig_ != null; } /** *
         * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
         * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; * @return The proxyProtocolConfig. */ public io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig getProxyProtocolConfig() { if (proxyProtocolConfigBuilder_ == null) { return proxyProtocolConfig_ == null ? io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig.getDefaultInstance() : proxyProtocolConfig_; } else { return proxyProtocolConfigBuilder_.getMessage(); } } /** *
         * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
         * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; */ public Builder setProxyProtocolConfig(io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig value) { if (proxyProtocolConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } proxyProtocolConfig_ = value; onChanged(); } else { proxyProtocolConfigBuilder_.setMessage(value); } return this; } /** *
         * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
         * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; */ public Builder setProxyProtocolConfig( io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig.Builder builderForValue) { if (proxyProtocolConfigBuilder_ == null) { proxyProtocolConfig_ = builderForValue.build(); onChanged(); } else { proxyProtocolConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
         * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
         * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; */ public Builder mergeProxyProtocolConfig(io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig value) { if (proxyProtocolConfigBuilder_ == null) { if (proxyProtocolConfig_ != null) { proxyProtocolConfig_ = io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig.newBuilder(proxyProtocolConfig_).mergeFrom(value).buildPartial(); } else { proxyProtocolConfig_ = value; } onChanged(); } else { proxyProtocolConfigBuilder_.mergeFrom(value); } return this; } /** *
         * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
         * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; */ public Builder clearProxyProtocolConfig() { if (proxyProtocolConfigBuilder_ == null) { proxyProtocolConfig_ = null; onChanged(); } else { proxyProtocolConfig_ = null; proxyProtocolConfigBuilder_ = null; } return this; } /** *
         * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
         * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; */ public io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig.Builder getProxyProtocolConfigBuilder() { onChanged(); return getProxyProtocolConfigFieldBuilder().getBuilder(); } /** *
         * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
         * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; */ public io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfigOrBuilder getProxyProtocolConfigOrBuilder() { if (proxyProtocolConfigBuilder_ != null) { return proxyProtocolConfigBuilder_.getMessageOrBuilder(); } else { return proxyProtocolConfig_ == null ? io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig.getDefaultInstance() : proxyProtocolConfig_; } } /** *
         * If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
         * 
* * .envoy.config.core.v3.ProxyProtocolConfig proxy_protocol_config = 1; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig, io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig.Builder, io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfigOrBuilder> getProxyProtocolConfigFieldBuilder() { if (proxyProtocolConfigBuilder_ == null) { proxyProtocolConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig, io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfig.Builder, io.envoyproxy.envoy.config.core.v3.ProxyProtocolConfigOrBuilder>( getProxyProtocolConfig(), getParentForChildren(), isClean()); proxyProtocolConfig_ = null; } return proxyProtocolConfigBuilder_; } private boolean allowPost_ ; /** *
         * If set, the route will also allow forwarding POST payload as raw TCP.
         * 
* * bool allow_post = 2; * @return The allowPost. */ @java.lang.Override public boolean getAllowPost() { return allowPost_; } /** *
         * If set, the route will also allow forwarding POST payload as raw TCP.
         * 
* * bool allow_post = 2; * @param value The allowPost to set. * @return This builder for chaining. */ public Builder setAllowPost(boolean value) { allowPost_ = value; onChanged(); return this; } /** *
         * If set, the route will also allow forwarding POST payload as raw TCP.
         * 
* * bool allow_post = 2; * @return This builder for chaining. */ public Builder clearAllowPost() { allowPost_ = 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.route.v3.RouteAction.UpgradeConfig.ConnectConfig) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig) private static final io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig(); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public ConnectConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new ConnectConfig(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.route.v3.RouteAction.UpgradeConfig.ConnectConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public static final int UPGRADE_TYPE_FIELD_NUMBER = 1; private volatile java.lang.Object upgradeType_; /** *
     * The case-insensitive name of this upgrade, e.g. "websocket".
     * For each upgrade type present in upgrade_configs, requests with
     * Upgrade: [upgrade_type] will be proxied upstream.
     * 
* * string upgrade_type = 1 [(.validate.rules) = { ... } * @return The upgradeType. */ @java.lang.Override public java.lang.String getUpgradeType() { java.lang.Object ref = upgradeType_; 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(); upgradeType_ = s; return s; } } /** *
     * The case-insensitive name of this upgrade, e.g. "websocket".
     * For each upgrade type present in upgrade_configs, requests with
     * Upgrade: [upgrade_type] will be proxied upstream.
     * 
* * string upgrade_type = 1 [(.validate.rules) = { ... } * @return The bytes for upgradeType. */ @java.lang.Override public com.google.protobuf.ByteString getUpgradeTypeBytes() { java.lang.Object ref = upgradeType_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); upgradeType_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int ENABLED_FIELD_NUMBER = 2; private com.google.protobuf.BoolValue enabled_; /** *
     * Determines if upgrades are available on this route. Defaults to true.
     * 
* * .google.protobuf.BoolValue enabled = 2; * @return Whether the enabled field is set. */ @java.lang.Override public boolean hasEnabled() { return enabled_ != null; } /** *
     * Determines if upgrades are available on this route. Defaults to true.
     * 
* * .google.protobuf.BoolValue enabled = 2; * @return The enabled. */ @java.lang.Override public com.google.protobuf.BoolValue getEnabled() { return enabled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : enabled_; } /** *
     * Determines if upgrades are available on this route. Defaults to true.
     * 
* * .google.protobuf.BoolValue enabled = 2; */ @java.lang.Override public com.google.protobuf.BoolValueOrBuilder getEnabledOrBuilder() { return getEnabled(); } public static final int CONNECT_CONFIG_FIELD_NUMBER = 3; private io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connectConfig_; /** *
     * Configuration for sending data upstream as a raw data payload. This is used for
     * CONNECT requests, when forwarding CONNECT payload as raw TCP.
     * Note that CONNECT support is currently considered alpha in Envoy.
     * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
     * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; * @return Whether the connectConfig field is set. */ @java.lang.Override public boolean hasConnectConfig() { return connectConfig_ != null; } /** *
     * Configuration for sending data upstream as a raw data payload. This is used for
     * CONNECT requests, when forwarding CONNECT payload as raw TCP.
     * Note that CONNECT support is currently considered alpha in Envoy.
     * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
     * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; * @return The connectConfig. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig getConnectConfig() { return connectConfig_ == null ? io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.getDefaultInstance() : connectConfig_; } /** *
     * Configuration for sending data upstream as a raw data payload. This is used for
     * CONNECT requests, when forwarding CONNECT payload as raw TCP.
     * Note that CONNECT support is currently considered alpha in Envoy.
     * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
     * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfigOrBuilder getConnectConfigOrBuilder() { return getConnectConfig(); } 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(upgradeType_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, upgradeType_); } if (enabled_ != null) { output.writeMessage(2, getEnabled()); } if (connectConfig_ != null) { output.writeMessage(3, getConnectConfig()); } 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(upgradeType_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, upgradeType_); } if (enabled_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getEnabled()); } if (connectConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, getConnectConfig()); } 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.route.v3.RouteAction.UpgradeConfig)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig other = (io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig) obj; if (!getUpgradeType() .equals(other.getUpgradeType())) return false; if (hasEnabled() != other.hasEnabled()) return false; if (hasEnabled()) { if (!getEnabled() .equals(other.getEnabled())) return false; } if (hasConnectConfig() != other.hasConnectConfig()) return false; if (hasConnectConfig()) { if (!getConnectConfig() .equals(other.getConnectConfig())) 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) + UPGRADE_TYPE_FIELD_NUMBER; hash = (53 * hash) + getUpgradeType().hashCode(); if (hasEnabled()) { hash = (37 * hash) + ENABLED_FIELD_NUMBER; hash = (53 * hash) + getEnabled().hashCode(); } if (hasConnectConfig()) { hash = (37 * hash) + CONNECT_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getConnectConfig().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig 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.route.v3.RouteAction.UpgradeConfig parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig 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.route.v3.RouteAction.UpgradeConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig 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.route.v3.RouteAction.UpgradeConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig 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.route.v3.RouteAction.UpgradeConfig parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig 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.route.v3.RouteAction.UpgradeConfig 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; } /** *
     * Allows enabling and disabling upgrades on a per-route basis.
     * This overrides any enabled/disabled upgrade filter chain specified in the
     * HttpConnectionManager
     * :ref:`upgrade_configs
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.upgrade_configs>`
     * but does not affect any custom filter chain specified there.
     * 
* * Protobuf type {@code envoy.config.route.v3.RouteAction.UpgradeConfig} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteAction.UpgradeConfig) io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_UpgradeConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_UpgradeConfig_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.class, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.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(); upgradeType_ = ""; if (enabledBuilder_ == null) { enabled_ = null; } else { enabled_ = null; enabledBuilder_ = null; } if (connectConfigBuilder_ == null) { connectConfig_ = null; } else { connectConfig_ = null; connectConfigBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_UpgradeConfig_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig build() { io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig result = new io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig(this); result.upgradeType_ = upgradeType_; if (enabledBuilder_ == null) { result.enabled_ = enabled_; } else { result.enabled_ = enabledBuilder_.build(); } if (connectConfigBuilder_ == null) { result.connectConfig_ = connectConfig_; } else { result.connectConfig_ = connectConfigBuilder_.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.route.v3.RouteAction.UpgradeConfig) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.getDefaultInstance()) return this; if (!other.getUpgradeType().isEmpty()) { upgradeType_ = other.upgradeType_; onChanged(); } if (other.hasEnabled()) { mergeEnabled(other.getEnabled()); } if (other.hasConnectConfig()) { mergeConnectConfig(other.getConnectConfig()); } 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.route.v3.RouteAction.UpgradeConfig parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private java.lang.Object upgradeType_ = ""; /** *
       * The case-insensitive name of this upgrade, e.g. "websocket".
       * For each upgrade type present in upgrade_configs, requests with
       * Upgrade: [upgrade_type] will be proxied upstream.
       * 
* * string upgrade_type = 1 [(.validate.rules) = { ... } * @return The upgradeType. */ public java.lang.String getUpgradeType() { java.lang.Object ref = upgradeType_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); upgradeType_ = s; return s; } else { return (java.lang.String) ref; } } /** *
       * The case-insensitive name of this upgrade, e.g. "websocket".
       * For each upgrade type present in upgrade_configs, requests with
       * Upgrade: [upgrade_type] will be proxied upstream.
       * 
* * string upgrade_type = 1 [(.validate.rules) = { ... } * @return The bytes for upgradeType. */ public com.google.protobuf.ByteString getUpgradeTypeBytes() { java.lang.Object ref = upgradeType_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); upgradeType_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
       * The case-insensitive name of this upgrade, e.g. "websocket".
       * For each upgrade type present in upgrade_configs, requests with
       * Upgrade: [upgrade_type] will be proxied upstream.
       * 
* * string upgrade_type = 1 [(.validate.rules) = { ... } * @param value The upgradeType to set. * @return This builder for chaining. */ public Builder setUpgradeType( java.lang.String value) { if (value == null) { throw new NullPointerException(); } upgradeType_ = value; onChanged(); return this; } /** *
       * The case-insensitive name of this upgrade, e.g. "websocket".
       * For each upgrade type present in upgrade_configs, requests with
       * Upgrade: [upgrade_type] will be proxied upstream.
       * 
* * string upgrade_type = 1 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearUpgradeType() { upgradeType_ = getDefaultInstance().getUpgradeType(); onChanged(); return this; } /** *
       * The case-insensitive name of this upgrade, e.g. "websocket".
       * For each upgrade type present in upgrade_configs, requests with
       * Upgrade: [upgrade_type] will be proxied upstream.
       * 
* * string upgrade_type = 1 [(.validate.rules) = { ... } * @param value The bytes for upgradeType to set. * @return This builder for chaining. */ public Builder setUpgradeTypeBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); upgradeType_ = value; onChanged(); return this; } private com.google.protobuf.BoolValue enabled_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> enabledBuilder_; /** *
       * Determines if upgrades are available on this route. Defaults to true.
       * 
* * .google.protobuf.BoolValue enabled = 2; * @return Whether the enabled field is set. */ public boolean hasEnabled() { return enabledBuilder_ != null || enabled_ != null; } /** *
       * Determines if upgrades are available on this route. Defaults to true.
       * 
* * .google.protobuf.BoolValue enabled = 2; * @return The enabled. */ public com.google.protobuf.BoolValue getEnabled() { if (enabledBuilder_ == null) { return enabled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : enabled_; } else { return enabledBuilder_.getMessage(); } } /** *
       * Determines if upgrades are available on this route. Defaults to true.
       * 
* * .google.protobuf.BoolValue enabled = 2; */ public Builder setEnabled(com.google.protobuf.BoolValue value) { if (enabledBuilder_ == null) { if (value == null) { throw new NullPointerException(); } enabled_ = value; onChanged(); } else { enabledBuilder_.setMessage(value); } return this; } /** *
       * Determines if upgrades are available on this route. Defaults to true.
       * 
* * .google.protobuf.BoolValue enabled = 2; */ public Builder setEnabled( com.google.protobuf.BoolValue.Builder builderForValue) { if (enabledBuilder_ == null) { enabled_ = builderForValue.build(); onChanged(); } else { enabledBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Determines if upgrades are available on this route. Defaults to true.
       * 
* * .google.protobuf.BoolValue enabled = 2; */ public Builder mergeEnabled(com.google.protobuf.BoolValue value) { if (enabledBuilder_ == null) { if (enabled_ != null) { enabled_ = com.google.protobuf.BoolValue.newBuilder(enabled_).mergeFrom(value).buildPartial(); } else { enabled_ = value; } onChanged(); } else { enabledBuilder_.mergeFrom(value); } return this; } /** *
       * Determines if upgrades are available on this route. Defaults to true.
       * 
* * .google.protobuf.BoolValue enabled = 2; */ public Builder clearEnabled() { if (enabledBuilder_ == null) { enabled_ = null; onChanged(); } else { enabled_ = null; enabledBuilder_ = null; } return this; } /** *
       * Determines if upgrades are available on this route. Defaults to true.
       * 
* * .google.protobuf.BoolValue enabled = 2; */ public com.google.protobuf.BoolValue.Builder getEnabledBuilder() { onChanged(); return getEnabledFieldBuilder().getBuilder(); } /** *
       * Determines if upgrades are available on this route. Defaults to true.
       * 
* * .google.protobuf.BoolValue enabled = 2; */ public com.google.protobuf.BoolValueOrBuilder getEnabledOrBuilder() { if (enabledBuilder_ != null) { return enabledBuilder_.getMessageOrBuilder(); } else { return enabled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : enabled_; } } /** *
       * Determines if upgrades are available on this route. Defaults to true.
       * 
* * .google.protobuf.BoolValue enabled = 2; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> getEnabledFieldBuilder() { if (enabledBuilder_ == null) { enabledBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>( getEnabled(), getParentForChildren(), isClean()); enabled_ = null; } return enabledBuilder_; } private io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connectConfig_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfigOrBuilder> connectConfigBuilder_; /** *
       * Configuration for sending data upstream as a raw data payload. This is used for
       * CONNECT requests, when forwarding CONNECT payload as raw TCP.
       * Note that CONNECT support is currently considered alpha in Envoy.
       * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
       * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; * @return Whether the connectConfig field is set. */ public boolean hasConnectConfig() { return connectConfigBuilder_ != null || connectConfig_ != null; } /** *
       * Configuration for sending data upstream as a raw data payload. This is used for
       * CONNECT requests, when forwarding CONNECT payload as raw TCP.
       * Note that CONNECT support is currently considered alpha in Envoy.
       * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
       * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; * @return The connectConfig. */ public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig getConnectConfig() { if (connectConfigBuilder_ == null) { return connectConfig_ == null ? io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.getDefaultInstance() : connectConfig_; } else { return connectConfigBuilder_.getMessage(); } } /** *
       * Configuration for sending data upstream as a raw data payload. This is used for
       * CONNECT requests, when forwarding CONNECT payload as raw TCP.
       * Note that CONNECT support is currently considered alpha in Envoy.
       * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
       * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; */ public Builder setConnectConfig(io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig value) { if (connectConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } connectConfig_ = value; onChanged(); } else { connectConfigBuilder_.setMessage(value); } return this; } /** *
       * Configuration for sending data upstream as a raw data payload. This is used for
       * CONNECT requests, when forwarding CONNECT payload as raw TCP.
       * Note that CONNECT support is currently considered alpha in Envoy.
       * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
       * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; */ public Builder setConnectConfig( io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.Builder builderForValue) { if (connectConfigBuilder_ == null) { connectConfig_ = builderForValue.build(); onChanged(); } else { connectConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Configuration for sending data upstream as a raw data payload. This is used for
       * CONNECT requests, when forwarding CONNECT payload as raw TCP.
       * Note that CONNECT support is currently considered alpha in Envoy.
       * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
       * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; */ public Builder mergeConnectConfig(io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig value) { if (connectConfigBuilder_ == null) { if (connectConfig_ != null) { connectConfig_ = io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.newBuilder(connectConfig_).mergeFrom(value).buildPartial(); } else { connectConfig_ = value; } onChanged(); } else { connectConfigBuilder_.mergeFrom(value); } return this; } /** *
       * Configuration for sending data upstream as a raw data payload. This is used for
       * CONNECT requests, when forwarding CONNECT payload as raw TCP.
       * Note that CONNECT support is currently considered alpha in Envoy.
       * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
       * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; */ public Builder clearConnectConfig() { if (connectConfigBuilder_ == null) { connectConfig_ = null; onChanged(); } else { connectConfig_ = null; connectConfigBuilder_ = null; } return this; } /** *
       * Configuration for sending data upstream as a raw data payload. This is used for
       * CONNECT requests, when forwarding CONNECT payload as raw TCP.
       * Note that CONNECT support is currently considered alpha in Envoy.
       * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
       * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.Builder getConnectConfigBuilder() { onChanged(); return getConnectConfigFieldBuilder().getBuilder(); } /** *
       * Configuration for sending data upstream as a raw data payload. This is used for
       * CONNECT requests, when forwarding CONNECT payload as raw TCP.
       * Note that CONNECT support is currently considered alpha in Envoy.
       * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
       * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfigOrBuilder getConnectConfigOrBuilder() { if (connectConfigBuilder_ != null) { return connectConfigBuilder_.getMessageOrBuilder(); } else { return connectConfig_ == null ? io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.getDefaultInstance() : connectConfig_; } } /** *
       * Configuration for sending data upstream as a raw data payload. This is used for
       * CONNECT requests, when forwarding CONNECT payload as raw TCP.
       * Note that CONNECT support is currently considered alpha in Envoy.
       * [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
       * 
* * .envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig connect_config = 3; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfigOrBuilder> getConnectConfigFieldBuilder() { if (connectConfigBuilder_ == null) { connectConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfigOrBuilder>( getConnectConfig(), getParentForChildren(), isClean()); connectConfig_ = null; } return connectConfigBuilder_; } @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.route.v3.RouteAction.UpgradeConfig) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteAction.UpgradeConfig) private static final io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig(); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public UpgradeConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new UpgradeConfig(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.route.v3.RouteAction.UpgradeConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface MaxStreamDurationOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteAction.MaxStreamDuration) com.google.protobuf.MessageOrBuilder { /** *
     * Specifies the maximum duration allowed for streams on the route. If not specified, the value
     * from the :ref:`max_stream_duration
     * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
     * :ref:`HttpConnectionManager.common_http_protocol_options
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
     * is used. If this field is set explicitly to zero, any
     * HttpConnectionManager max_stream_duration timeout will be disabled for
     * this route.
     * 
* * .google.protobuf.Duration max_stream_duration = 1; * @return Whether the maxStreamDuration field is set. */ boolean hasMaxStreamDuration(); /** *
     * Specifies the maximum duration allowed for streams on the route. If not specified, the value
     * from the :ref:`max_stream_duration
     * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
     * :ref:`HttpConnectionManager.common_http_protocol_options
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
     * is used. If this field is set explicitly to zero, any
     * HttpConnectionManager max_stream_duration timeout will be disabled for
     * this route.
     * 
* * .google.protobuf.Duration max_stream_duration = 1; * @return The maxStreamDuration. */ com.google.protobuf.Duration getMaxStreamDuration(); /** *
     * Specifies the maximum duration allowed for streams on the route. If not specified, the value
     * from the :ref:`max_stream_duration
     * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
     * :ref:`HttpConnectionManager.common_http_protocol_options
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
     * is used. If this field is set explicitly to zero, any
     * HttpConnectionManager max_stream_duration timeout will be disabled for
     * this route.
     * 
* * .google.protobuf.Duration max_stream_duration = 1; */ com.google.protobuf.DurationOrBuilder getMaxStreamDurationOrBuilder(); /** *
     * If present, and the request contains a `grpc-timeout header
     * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
     * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
     * If set to 0, the ``grpc-timeout`` header is used without modification.
     * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; * @return Whether the grpcTimeoutHeaderMax field is set. */ boolean hasGrpcTimeoutHeaderMax(); /** *
     * If present, and the request contains a `grpc-timeout header
     * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
     * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
     * If set to 0, the ``grpc-timeout`` header is used without modification.
     * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; * @return The grpcTimeoutHeaderMax. */ com.google.protobuf.Duration getGrpcTimeoutHeaderMax(); /** *
     * If present, and the request contains a `grpc-timeout header
     * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
     * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
     * If set to 0, the ``grpc-timeout`` header is used without modification.
     * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; */ com.google.protobuf.DurationOrBuilder getGrpcTimeoutHeaderMaxOrBuilder(); /** *
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
     * subtracting the provided duration from the header. This is useful for allowing Envoy to set
     * its global timeout to be less than that of the deadline imposed by the calling client, which
     * makes it more likely that Envoy will handle the timeout instead of having the call canceled
     * by the client. If, after applying the offset, the resulting timeout is zero or negative,
     * the stream will timeout immediately.
     * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; * @return Whether the grpcTimeoutHeaderOffset field is set. */ boolean hasGrpcTimeoutHeaderOffset(); /** *
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
     * subtracting the provided duration from the header. This is useful for allowing Envoy to set
     * its global timeout to be less than that of the deadline imposed by the calling client, which
     * makes it more likely that Envoy will handle the timeout instead of having the call canceled
     * by the client. If, after applying the offset, the resulting timeout is zero or negative,
     * the stream will timeout immediately.
     * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; * @return The grpcTimeoutHeaderOffset. */ com.google.protobuf.Duration getGrpcTimeoutHeaderOffset(); /** *
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
     * subtracting the provided duration from the header. This is useful for allowing Envoy to set
     * its global timeout to be less than that of the deadline imposed by the calling client, which
     * makes it more likely that Envoy will handle the timeout instead of having the call canceled
     * by the client. If, after applying the offset, the resulting timeout is zero or negative,
     * the stream will timeout immediately.
     * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; */ com.google.protobuf.DurationOrBuilder getGrpcTimeoutHeaderOffsetOrBuilder(); } /** * Protobuf type {@code envoy.config.route.v3.RouteAction.MaxStreamDuration} */ public static final class MaxStreamDuration extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteAction.MaxStreamDuration) MaxStreamDurationOrBuilder { private static final long serialVersionUID = 0L; // Use MaxStreamDuration.newBuilder() to construct. private MaxStreamDuration(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private MaxStreamDuration() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new MaxStreamDuration(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private MaxStreamDuration( 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 (maxStreamDuration_ != null) { subBuilder = maxStreamDuration_.toBuilder(); } maxStreamDuration_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(maxStreamDuration_); maxStreamDuration_ = subBuilder.buildPartial(); } break; } case 18: { com.google.protobuf.Duration.Builder subBuilder = null; if (grpcTimeoutHeaderMax_ != null) { subBuilder = grpcTimeoutHeaderMax_.toBuilder(); } grpcTimeoutHeaderMax_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(grpcTimeoutHeaderMax_); grpcTimeoutHeaderMax_ = subBuilder.buildPartial(); } break; } case 26: { com.google.protobuf.Duration.Builder subBuilder = null; if (grpcTimeoutHeaderOffset_ != null) { subBuilder = grpcTimeoutHeaderOffset_.toBuilder(); } grpcTimeoutHeaderOffset_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(grpcTimeoutHeaderOffset_); grpcTimeoutHeaderOffset_ = 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.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_MaxStreamDuration_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_MaxStreamDuration_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.class, io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.Builder.class); } public static final int MAX_STREAM_DURATION_FIELD_NUMBER = 1; private com.google.protobuf.Duration maxStreamDuration_; /** *
     * Specifies the maximum duration allowed for streams on the route. If not specified, the value
     * from the :ref:`max_stream_duration
     * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
     * :ref:`HttpConnectionManager.common_http_protocol_options
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
     * is used. If this field is set explicitly to zero, any
     * HttpConnectionManager max_stream_duration timeout will be disabled for
     * this route.
     * 
* * .google.protobuf.Duration max_stream_duration = 1; * @return Whether the maxStreamDuration field is set. */ @java.lang.Override public boolean hasMaxStreamDuration() { return maxStreamDuration_ != null; } /** *
     * Specifies the maximum duration allowed for streams on the route. If not specified, the value
     * from the :ref:`max_stream_duration
     * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
     * :ref:`HttpConnectionManager.common_http_protocol_options
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
     * is used. If this field is set explicitly to zero, any
     * HttpConnectionManager max_stream_duration timeout will be disabled for
     * this route.
     * 
* * .google.protobuf.Duration max_stream_duration = 1; * @return The maxStreamDuration. */ @java.lang.Override public com.google.protobuf.Duration getMaxStreamDuration() { return maxStreamDuration_ == null ? com.google.protobuf.Duration.getDefaultInstance() : maxStreamDuration_; } /** *
     * Specifies the maximum duration allowed for streams on the route. If not specified, the value
     * from the :ref:`max_stream_duration
     * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
     * :ref:`HttpConnectionManager.common_http_protocol_options
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
     * is used. If this field is set explicitly to zero, any
     * HttpConnectionManager max_stream_duration timeout will be disabled for
     * this route.
     * 
* * .google.protobuf.Duration max_stream_duration = 1; */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getMaxStreamDurationOrBuilder() { return getMaxStreamDuration(); } public static final int GRPC_TIMEOUT_HEADER_MAX_FIELD_NUMBER = 2; private com.google.protobuf.Duration grpcTimeoutHeaderMax_; /** *
     * If present, and the request contains a `grpc-timeout header
     * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
     * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
     * If set to 0, the ``grpc-timeout`` header is used without modification.
     * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; * @return Whether the grpcTimeoutHeaderMax field is set. */ @java.lang.Override public boolean hasGrpcTimeoutHeaderMax() { return grpcTimeoutHeaderMax_ != null; } /** *
     * If present, and the request contains a `grpc-timeout header
     * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
     * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
     * If set to 0, the ``grpc-timeout`` header is used without modification.
     * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; * @return The grpcTimeoutHeaderMax. */ @java.lang.Override public com.google.protobuf.Duration getGrpcTimeoutHeaderMax() { return grpcTimeoutHeaderMax_ == null ? com.google.protobuf.Duration.getDefaultInstance() : grpcTimeoutHeaderMax_; } /** *
     * If present, and the request contains a `grpc-timeout header
     * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
     * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
     * If set to 0, the ``grpc-timeout`` header is used without modification.
     * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getGrpcTimeoutHeaderMaxOrBuilder() { return getGrpcTimeoutHeaderMax(); } public static final int GRPC_TIMEOUT_HEADER_OFFSET_FIELD_NUMBER = 3; private com.google.protobuf.Duration grpcTimeoutHeaderOffset_; /** *
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
     * subtracting the provided duration from the header. This is useful for allowing Envoy to set
     * its global timeout to be less than that of the deadline imposed by the calling client, which
     * makes it more likely that Envoy will handle the timeout instead of having the call canceled
     * by the client. If, after applying the offset, the resulting timeout is zero or negative,
     * the stream will timeout immediately.
     * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; * @return Whether the grpcTimeoutHeaderOffset field is set. */ @java.lang.Override public boolean hasGrpcTimeoutHeaderOffset() { return grpcTimeoutHeaderOffset_ != null; } /** *
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
     * subtracting the provided duration from the header. This is useful for allowing Envoy to set
     * its global timeout to be less than that of the deadline imposed by the calling client, which
     * makes it more likely that Envoy will handle the timeout instead of having the call canceled
     * by the client. If, after applying the offset, the resulting timeout is zero or negative,
     * the stream will timeout immediately.
     * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; * @return The grpcTimeoutHeaderOffset. */ @java.lang.Override public com.google.protobuf.Duration getGrpcTimeoutHeaderOffset() { return grpcTimeoutHeaderOffset_ == null ? com.google.protobuf.Duration.getDefaultInstance() : grpcTimeoutHeaderOffset_; } /** *
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
     * subtracting the provided duration from the header. This is useful for allowing Envoy to set
     * its global timeout to be less than that of the deadline imposed by the calling client, which
     * makes it more likely that Envoy will handle the timeout instead of having the call canceled
     * by the client. If, after applying the offset, the resulting timeout is zero or negative,
     * the stream will timeout immediately.
     * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getGrpcTimeoutHeaderOffsetOrBuilder() { return getGrpcTimeoutHeaderOffset(); } 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 (maxStreamDuration_ != null) { output.writeMessage(1, getMaxStreamDuration()); } if (grpcTimeoutHeaderMax_ != null) { output.writeMessage(2, getGrpcTimeoutHeaderMax()); } if (grpcTimeoutHeaderOffset_ != null) { output.writeMessage(3, getGrpcTimeoutHeaderOffset()); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (maxStreamDuration_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getMaxStreamDuration()); } if (grpcTimeoutHeaderMax_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getGrpcTimeoutHeaderMax()); } if (grpcTimeoutHeaderOffset_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, getGrpcTimeoutHeaderOffset()); } 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.route.v3.RouteAction.MaxStreamDuration)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration other = (io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration) obj; if (hasMaxStreamDuration() != other.hasMaxStreamDuration()) return false; if (hasMaxStreamDuration()) { if (!getMaxStreamDuration() .equals(other.getMaxStreamDuration())) return false; } if (hasGrpcTimeoutHeaderMax() != other.hasGrpcTimeoutHeaderMax()) return false; if (hasGrpcTimeoutHeaderMax()) { if (!getGrpcTimeoutHeaderMax() .equals(other.getGrpcTimeoutHeaderMax())) return false; } if (hasGrpcTimeoutHeaderOffset() != other.hasGrpcTimeoutHeaderOffset()) return false; if (hasGrpcTimeoutHeaderOffset()) { if (!getGrpcTimeoutHeaderOffset() .equals(other.getGrpcTimeoutHeaderOffset())) 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 (hasMaxStreamDuration()) { hash = (37 * hash) + MAX_STREAM_DURATION_FIELD_NUMBER; hash = (53 * hash) + getMaxStreamDuration().hashCode(); } if (hasGrpcTimeoutHeaderMax()) { hash = (37 * hash) + GRPC_TIMEOUT_HEADER_MAX_FIELD_NUMBER; hash = (53 * hash) + getGrpcTimeoutHeaderMax().hashCode(); } if (hasGrpcTimeoutHeaderOffset()) { hash = (37 * hash) + GRPC_TIMEOUT_HEADER_OFFSET_FIELD_NUMBER; hash = (53 * hash) + getGrpcTimeoutHeaderOffset().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration 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.route.v3.RouteAction.MaxStreamDuration parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration 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.route.v3.RouteAction.MaxStreamDuration parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration 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.route.v3.RouteAction.MaxStreamDuration parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration 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.route.v3.RouteAction.MaxStreamDuration parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration 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.route.v3.RouteAction.MaxStreamDuration 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.route.v3.RouteAction.MaxStreamDuration} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteAction.MaxStreamDuration) io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDurationOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_MaxStreamDuration_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_MaxStreamDuration_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.class, io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.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 (maxStreamDurationBuilder_ == null) { maxStreamDuration_ = null; } else { maxStreamDuration_ = null; maxStreamDurationBuilder_ = null; } if (grpcTimeoutHeaderMaxBuilder_ == null) { grpcTimeoutHeaderMax_ = null; } else { grpcTimeoutHeaderMax_ = null; grpcTimeoutHeaderMaxBuilder_ = null; } if (grpcTimeoutHeaderOffsetBuilder_ == null) { grpcTimeoutHeaderOffset_ = null; } else { grpcTimeoutHeaderOffset_ = null; grpcTimeoutHeaderOffsetBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_MaxStreamDuration_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration build() { io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration result = new io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration(this); if (maxStreamDurationBuilder_ == null) { result.maxStreamDuration_ = maxStreamDuration_; } else { result.maxStreamDuration_ = maxStreamDurationBuilder_.build(); } if (grpcTimeoutHeaderMaxBuilder_ == null) { result.grpcTimeoutHeaderMax_ = grpcTimeoutHeaderMax_; } else { result.grpcTimeoutHeaderMax_ = grpcTimeoutHeaderMaxBuilder_.build(); } if (grpcTimeoutHeaderOffsetBuilder_ == null) { result.grpcTimeoutHeaderOffset_ = grpcTimeoutHeaderOffset_; } else { result.grpcTimeoutHeaderOffset_ = grpcTimeoutHeaderOffsetBuilder_.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.route.v3.RouteAction.MaxStreamDuration) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.getDefaultInstance()) return this; if (other.hasMaxStreamDuration()) { mergeMaxStreamDuration(other.getMaxStreamDuration()); } if (other.hasGrpcTimeoutHeaderMax()) { mergeGrpcTimeoutHeaderMax(other.getGrpcTimeoutHeaderMax()); } if (other.hasGrpcTimeoutHeaderOffset()) { mergeGrpcTimeoutHeaderOffset(other.getGrpcTimeoutHeaderOffset()); } 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.route.v3.RouteAction.MaxStreamDuration parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private com.google.protobuf.Duration maxStreamDuration_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> maxStreamDurationBuilder_; /** *
       * Specifies the maximum duration allowed for streams on the route. If not specified, the value
       * from the :ref:`max_stream_duration
       * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
       * :ref:`HttpConnectionManager.common_http_protocol_options
       * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
       * is used. If this field is set explicitly to zero, any
       * HttpConnectionManager max_stream_duration timeout will be disabled for
       * this route.
       * 
* * .google.protobuf.Duration max_stream_duration = 1; * @return Whether the maxStreamDuration field is set. */ public boolean hasMaxStreamDuration() { return maxStreamDurationBuilder_ != null || maxStreamDuration_ != null; } /** *
       * Specifies the maximum duration allowed for streams on the route. If not specified, the value
       * from the :ref:`max_stream_duration
       * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
       * :ref:`HttpConnectionManager.common_http_protocol_options
       * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
       * is used. If this field is set explicitly to zero, any
       * HttpConnectionManager max_stream_duration timeout will be disabled for
       * this route.
       * 
* * .google.protobuf.Duration max_stream_duration = 1; * @return The maxStreamDuration. */ public com.google.protobuf.Duration getMaxStreamDuration() { if (maxStreamDurationBuilder_ == null) { return maxStreamDuration_ == null ? com.google.protobuf.Duration.getDefaultInstance() : maxStreamDuration_; } else { return maxStreamDurationBuilder_.getMessage(); } } /** *
       * Specifies the maximum duration allowed for streams on the route. If not specified, the value
       * from the :ref:`max_stream_duration
       * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
       * :ref:`HttpConnectionManager.common_http_protocol_options
       * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
       * is used. If this field is set explicitly to zero, any
       * HttpConnectionManager max_stream_duration timeout will be disabled for
       * this route.
       * 
* * .google.protobuf.Duration max_stream_duration = 1; */ public Builder setMaxStreamDuration(com.google.protobuf.Duration value) { if (maxStreamDurationBuilder_ == null) { if (value == null) { throw new NullPointerException(); } maxStreamDuration_ = value; onChanged(); } else { maxStreamDurationBuilder_.setMessage(value); } return this; } /** *
       * Specifies the maximum duration allowed for streams on the route. If not specified, the value
       * from the :ref:`max_stream_duration
       * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
       * :ref:`HttpConnectionManager.common_http_protocol_options
       * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
       * is used. If this field is set explicitly to zero, any
       * HttpConnectionManager max_stream_duration timeout will be disabled for
       * this route.
       * 
* * .google.protobuf.Duration max_stream_duration = 1; */ public Builder setMaxStreamDuration( com.google.protobuf.Duration.Builder builderForValue) { if (maxStreamDurationBuilder_ == null) { maxStreamDuration_ = builderForValue.build(); onChanged(); } else { maxStreamDurationBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * Specifies the maximum duration allowed for streams on the route. If not specified, the value
       * from the :ref:`max_stream_duration
       * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
       * :ref:`HttpConnectionManager.common_http_protocol_options
       * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
       * is used. If this field is set explicitly to zero, any
       * HttpConnectionManager max_stream_duration timeout will be disabled for
       * this route.
       * 
* * .google.protobuf.Duration max_stream_duration = 1; */ public Builder mergeMaxStreamDuration(com.google.protobuf.Duration value) { if (maxStreamDurationBuilder_ == null) { if (maxStreamDuration_ != null) { maxStreamDuration_ = com.google.protobuf.Duration.newBuilder(maxStreamDuration_).mergeFrom(value).buildPartial(); } else { maxStreamDuration_ = value; } onChanged(); } else { maxStreamDurationBuilder_.mergeFrom(value); } return this; } /** *
       * Specifies the maximum duration allowed for streams on the route. If not specified, the value
       * from the :ref:`max_stream_duration
       * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
       * :ref:`HttpConnectionManager.common_http_protocol_options
       * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
       * is used. If this field is set explicitly to zero, any
       * HttpConnectionManager max_stream_duration timeout will be disabled for
       * this route.
       * 
* * .google.protobuf.Duration max_stream_duration = 1; */ public Builder clearMaxStreamDuration() { if (maxStreamDurationBuilder_ == null) { maxStreamDuration_ = null; onChanged(); } else { maxStreamDuration_ = null; maxStreamDurationBuilder_ = null; } return this; } /** *
       * Specifies the maximum duration allowed for streams on the route. If not specified, the value
       * from the :ref:`max_stream_duration
       * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
       * :ref:`HttpConnectionManager.common_http_protocol_options
       * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
       * is used. If this field is set explicitly to zero, any
       * HttpConnectionManager max_stream_duration timeout will be disabled for
       * this route.
       * 
* * .google.protobuf.Duration max_stream_duration = 1; */ public com.google.protobuf.Duration.Builder getMaxStreamDurationBuilder() { onChanged(); return getMaxStreamDurationFieldBuilder().getBuilder(); } /** *
       * Specifies the maximum duration allowed for streams on the route. If not specified, the value
       * from the :ref:`max_stream_duration
       * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
       * :ref:`HttpConnectionManager.common_http_protocol_options
       * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
       * is used. If this field is set explicitly to zero, any
       * HttpConnectionManager max_stream_duration timeout will be disabled for
       * this route.
       * 
* * .google.protobuf.Duration max_stream_duration = 1; */ public com.google.protobuf.DurationOrBuilder getMaxStreamDurationOrBuilder() { if (maxStreamDurationBuilder_ != null) { return maxStreamDurationBuilder_.getMessageOrBuilder(); } else { return maxStreamDuration_ == null ? com.google.protobuf.Duration.getDefaultInstance() : maxStreamDuration_; } } /** *
       * Specifies the maximum duration allowed for streams on the route. If not specified, the value
       * from the :ref:`max_stream_duration
       * <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
       * :ref:`HttpConnectionManager.common_http_protocol_options
       * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
       * is used. If this field is set explicitly to zero, any
       * HttpConnectionManager max_stream_duration timeout will be disabled for
       * this route.
       * 
* * .google.protobuf.Duration max_stream_duration = 1; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getMaxStreamDurationFieldBuilder() { if (maxStreamDurationBuilder_ == null) { maxStreamDurationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getMaxStreamDuration(), getParentForChildren(), isClean()); maxStreamDuration_ = null; } return maxStreamDurationBuilder_; } private com.google.protobuf.Duration grpcTimeoutHeaderMax_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> grpcTimeoutHeaderMaxBuilder_; /** *
       * If present, and the request contains a `grpc-timeout header
       * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
       * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
       * If set to 0, the ``grpc-timeout`` header is used without modification.
       * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; * @return Whether the grpcTimeoutHeaderMax field is set. */ public boolean hasGrpcTimeoutHeaderMax() { return grpcTimeoutHeaderMaxBuilder_ != null || grpcTimeoutHeaderMax_ != null; } /** *
       * If present, and the request contains a `grpc-timeout header
       * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
       * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
       * If set to 0, the ``grpc-timeout`` header is used without modification.
       * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; * @return The grpcTimeoutHeaderMax. */ public com.google.protobuf.Duration getGrpcTimeoutHeaderMax() { if (grpcTimeoutHeaderMaxBuilder_ == null) { return grpcTimeoutHeaderMax_ == null ? com.google.protobuf.Duration.getDefaultInstance() : grpcTimeoutHeaderMax_; } else { return grpcTimeoutHeaderMaxBuilder_.getMessage(); } } /** *
       * If present, and the request contains a `grpc-timeout header
       * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
       * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
       * If set to 0, the ``grpc-timeout`` header is used without modification.
       * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; */ public Builder setGrpcTimeoutHeaderMax(com.google.protobuf.Duration value) { if (grpcTimeoutHeaderMaxBuilder_ == null) { if (value == null) { throw new NullPointerException(); } grpcTimeoutHeaderMax_ = value; onChanged(); } else { grpcTimeoutHeaderMaxBuilder_.setMessage(value); } return this; } /** *
       * If present, and the request contains a `grpc-timeout header
       * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
       * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
       * If set to 0, the ``grpc-timeout`` header is used without modification.
       * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; */ public Builder setGrpcTimeoutHeaderMax( com.google.protobuf.Duration.Builder builderForValue) { if (grpcTimeoutHeaderMaxBuilder_ == null) { grpcTimeoutHeaderMax_ = builderForValue.build(); onChanged(); } else { grpcTimeoutHeaderMaxBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * If present, and the request contains a `grpc-timeout header
       * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
       * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
       * If set to 0, the ``grpc-timeout`` header is used without modification.
       * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; */ public Builder mergeGrpcTimeoutHeaderMax(com.google.protobuf.Duration value) { if (grpcTimeoutHeaderMaxBuilder_ == null) { if (grpcTimeoutHeaderMax_ != null) { grpcTimeoutHeaderMax_ = com.google.protobuf.Duration.newBuilder(grpcTimeoutHeaderMax_).mergeFrom(value).buildPartial(); } else { grpcTimeoutHeaderMax_ = value; } onChanged(); } else { grpcTimeoutHeaderMaxBuilder_.mergeFrom(value); } return this; } /** *
       * If present, and the request contains a `grpc-timeout header
       * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
       * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
       * If set to 0, the ``grpc-timeout`` header is used without modification.
       * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; */ public Builder clearGrpcTimeoutHeaderMax() { if (grpcTimeoutHeaderMaxBuilder_ == null) { grpcTimeoutHeaderMax_ = null; onChanged(); } else { grpcTimeoutHeaderMax_ = null; grpcTimeoutHeaderMaxBuilder_ = null; } return this; } /** *
       * If present, and the request contains a `grpc-timeout header
       * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
       * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
       * If set to 0, the ``grpc-timeout`` header is used without modification.
       * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; */ public com.google.protobuf.Duration.Builder getGrpcTimeoutHeaderMaxBuilder() { onChanged(); return getGrpcTimeoutHeaderMaxFieldBuilder().getBuilder(); } /** *
       * If present, and the request contains a `grpc-timeout header
       * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
       * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
       * If set to 0, the ``grpc-timeout`` header is used without modification.
       * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; */ public com.google.protobuf.DurationOrBuilder getGrpcTimeoutHeaderMaxOrBuilder() { if (grpcTimeoutHeaderMaxBuilder_ != null) { return grpcTimeoutHeaderMaxBuilder_.getMessageOrBuilder(); } else { return grpcTimeoutHeaderMax_ == null ? com.google.protobuf.Duration.getDefaultInstance() : grpcTimeoutHeaderMax_; } } /** *
       * If present, and the request contains a `grpc-timeout header
       * <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
       * ``max_stream_duration``, but limit the applied timeout to the maximum value specified here.
       * If set to 0, the ``grpc-timeout`` header is used without modification.
       * 
* * .google.protobuf.Duration grpc_timeout_header_max = 2; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getGrpcTimeoutHeaderMaxFieldBuilder() { if (grpcTimeoutHeaderMaxBuilder_ == null) { grpcTimeoutHeaderMaxBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getGrpcTimeoutHeaderMax(), getParentForChildren(), isClean()); grpcTimeoutHeaderMax_ = null; } return grpcTimeoutHeaderMaxBuilder_; } private com.google.protobuf.Duration grpcTimeoutHeaderOffset_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> grpcTimeoutHeaderOffsetBuilder_; /** *
       * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
       * subtracting the provided duration from the header. This is useful for allowing Envoy to set
       * its global timeout to be less than that of the deadline imposed by the calling client, which
       * makes it more likely that Envoy will handle the timeout instead of having the call canceled
       * by the client. If, after applying the offset, the resulting timeout is zero or negative,
       * the stream will timeout immediately.
       * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; * @return Whether the grpcTimeoutHeaderOffset field is set. */ public boolean hasGrpcTimeoutHeaderOffset() { return grpcTimeoutHeaderOffsetBuilder_ != null || grpcTimeoutHeaderOffset_ != null; } /** *
       * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
       * subtracting the provided duration from the header. This is useful for allowing Envoy to set
       * its global timeout to be less than that of the deadline imposed by the calling client, which
       * makes it more likely that Envoy will handle the timeout instead of having the call canceled
       * by the client. If, after applying the offset, the resulting timeout is zero or negative,
       * the stream will timeout immediately.
       * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; * @return The grpcTimeoutHeaderOffset. */ public com.google.protobuf.Duration getGrpcTimeoutHeaderOffset() { if (grpcTimeoutHeaderOffsetBuilder_ == null) { return grpcTimeoutHeaderOffset_ == null ? com.google.protobuf.Duration.getDefaultInstance() : grpcTimeoutHeaderOffset_; } else { return grpcTimeoutHeaderOffsetBuilder_.getMessage(); } } /** *
       * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
       * subtracting the provided duration from the header. This is useful for allowing Envoy to set
       * its global timeout to be less than that of the deadline imposed by the calling client, which
       * makes it more likely that Envoy will handle the timeout instead of having the call canceled
       * by the client. If, after applying the offset, the resulting timeout is zero or negative,
       * the stream will timeout immediately.
       * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; */ public Builder setGrpcTimeoutHeaderOffset(com.google.protobuf.Duration value) { if (grpcTimeoutHeaderOffsetBuilder_ == null) { if (value == null) { throw new NullPointerException(); } grpcTimeoutHeaderOffset_ = value; onChanged(); } else { grpcTimeoutHeaderOffsetBuilder_.setMessage(value); } return this; } /** *
       * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
       * subtracting the provided duration from the header. This is useful for allowing Envoy to set
       * its global timeout to be less than that of the deadline imposed by the calling client, which
       * makes it more likely that Envoy will handle the timeout instead of having the call canceled
       * by the client. If, after applying the offset, the resulting timeout is zero or negative,
       * the stream will timeout immediately.
       * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; */ public Builder setGrpcTimeoutHeaderOffset( com.google.protobuf.Duration.Builder builderForValue) { if (grpcTimeoutHeaderOffsetBuilder_ == null) { grpcTimeoutHeaderOffset_ = builderForValue.build(); onChanged(); } else { grpcTimeoutHeaderOffsetBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
       * subtracting the provided duration from the header. This is useful for allowing Envoy to set
       * its global timeout to be less than that of the deadline imposed by the calling client, which
       * makes it more likely that Envoy will handle the timeout instead of having the call canceled
       * by the client. If, after applying the offset, the resulting timeout is zero or negative,
       * the stream will timeout immediately.
       * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; */ public Builder mergeGrpcTimeoutHeaderOffset(com.google.protobuf.Duration value) { if (grpcTimeoutHeaderOffsetBuilder_ == null) { if (grpcTimeoutHeaderOffset_ != null) { grpcTimeoutHeaderOffset_ = com.google.protobuf.Duration.newBuilder(grpcTimeoutHeaderOffset_).mergeFrom(value).buildPartial(); } else { grpcTimeoutHeaderOffset_ = value; } onChanged(); } else { grpcTimeoutHeaderOffsetBuilder_.mergeFrom(value); } return this; } /** *
       * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
       * subtracting the provided duration from the header. This is useful for allowing Envoy to set
       * its global timeout to be less than that of the deadline imposed by the calling client, which
       * makes it more likely that Envoy will handle the timeout instead of having the call canceled
       * by the client. If, after applying the offset, the resulting timeout is zero or negative,
       * the stream will timeout immediately.
       * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; */ public Builder clearGrpcTimeoutHeaderOffset() { if (grpcTimeoutHeaderOffsetBuilder_ == null) { grpcTimeoutHeaderOffset_ = null; onChanged(); } else { grpcTimeoutHeaderOffset_ = null; grpcTimeoutHeaderOffsetBuilder_ = null; } return this; } /** *
       * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
       * subtracting the provided duration from the header. This is useful for allowing Envoy to set
       * its global timeout to be less than that of the deadline imposed by the calling client, which
       * makes it more likely that Envoy will handle the timeout instead of having the call canceled
       * by the client. If, after applying the offset, the resulting timeout is zero or negative,
       * the stream will timeout immediately.
       * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; */ public com.google.protobuf.Duration.Builder getGrpcTimeoutHeaderOffsetBuilder() { onChanged(); return getGrpcTimeoutHeaderOffsetFieldBuilder().getBuilder(); } /** *
       * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
       * subtracting the provided duration from the header. This is useful for allowing Envoy to set
       * its global timeout to be less than that of the deadline imposed by the calling client, which
       * makes it more likely that Envoy will handle the timeout instead of having the call canceled
       * by the client. If, after applying the offset, the resulting timeout is zero or negative,
       * the stream will timeout immediately.
       * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; */ public com.google.protobuf.DurationOrBuilder getGrpcTimeoutHeaderOffsetOrBuilder() { if (grpcTimeoutHeaderOffsetBuilder_ != null) { return grpcTimeoutHeaderOffsetBuilder_.getMessageOrBuilder(); } else { return grpcTimeoutHeaderOffset_ == null ? com.google.protobuf.Duration.getDefaultInstance() : grpcTimeoutHeaderOffset_; } } /** *
       * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by
       * subtracting the provided duration from the header. This is useful for allowing Envoy to set
       * its global timeout to be less than that of the deadline imposed by the calling client, which
       * makes it more likely that Envoy will handle the timeout instead of having the call canceled
       * by the client. If, after applying the offset, the resulting timeout is zero or negative,
       * the stream will timeout immediately.
       * 
* * .google.protobuf.Duration grpc_timeout_header_offset = 3; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getGrpcTimeoutHeaderOffsetFieldBuilder() { if (grpcTimeoutHeaderOffsetBuilder_ == null) { grpcTimeoutHeaderOffsetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getGrpcTimeoutHeaderOffset(), getParentForChildren(), isClean()); grpcTimeoutHeaderOffset_ = null; } return grpcTimeoutHeaderOffsetBuilder_; } @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.route.v3.RouteAction.MaxStreamDuration) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteAction.MaxStreamDuration) private static final io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration(); } public static io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public MaxStreamDuration parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new MaxStreamDuration(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.route.v3.RouteAction.MaxStreamDuration getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private int clusterSpecifierCase_ = 0; private java.lang.Object clusterSpecifier_; public enum ClusterSpecifierCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { CLUSTER(1), CLUSTER_HEADER(2), WEIGHTED_CLUSTERS(3), CLUSTER_SPECIFIER_PLUGIN(37), INLINE_CLUSTER_SPECIFIER_PLUGIN(39), CLUSTERSPECIFIER_NOT_SET(0); private final int value; private ClusterSpecifierCase(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 ClusterSpecifierCase valueOf(int value) { return forNumber(value); } public static ClusterSpecifierCase forNumber(int value) { switch (value) { case 1: return CLUSTER; case 2: return CLUSTER_HEADER; case 3: return WEIGHTED_CLUSTERS; case 37: return CLUSTER_SPECIFIER_PLUGIN; case 39: return INLINE_CLUSTER_SPECIFIER_PLUGIN; case 0: return CLUSTERSPECIFIER_NOT_SET; default: return null; } } public int getNumber() { return this.value; } }; public ClusterSpecifierCase getClusterSpecifierCase() { return ClusterSpecifierCase.forNumber( clusterSpecifierCase_); } private int hostRewriteSpecifierCase_ = 0; private java.lang.Object hostRewriteSpecifier_; public enum HostRewriteSpecifierCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { HOST_REWRITE_LITERAL(6), AUTO_HOST_REWRITE(7), HOST_REWRITE_HEADER(29), HOST_REWRITE_PATH_REGEX(35), HOSTREWRITESPECIFIER_NOT_SET(0); private final int value; private HostRewriteSpecifierCase(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 HostRewriteSpecifierCase valueOf(int value) { return forNumber(value); } public static HostRewriteSpecifierCase forNumber(int value) { switch (value) { case 6: return HOST_REWRITE_LITERAL; case 7: return AUTO_HOST_REWRITE; case 29: return HOST_REWRITE_HEADER; case 35: return HOST_REWRITE_PATH_REGEX; case 0: return HOSTREWRITESPECIFIER_NOT_SET; default: return null; } } public int getNumber() { return this.value; } }; public HostRewriteSpecifierCase getHostRewriteSpecifierCase() { return HostRewriteSpecifierCase.forNumber( hostRewriteSpecifierCase_); } public static final int CLUSTER_FIELD_NUMBER = 1; /** *
   * Indicates the upstream cluster to which the request should be routed
   * to.
   * 
* * string cluster = 1 [(.validate.rules) = { ... } * @return Whether the cluster field is set. */ public boolean hasCluster() { return clusterSpecifierCase_ == 1; } /** *
   * Indicates the upstream cluster to which the request should be routed
   * to.
   * 
* * string cluster = 1 [(.validate.rules) = { ... } * @return The cluster. */ public java.lang.String getCluster() { java.lang.Object ref = ""; if (clusterSpecifierCase_ == 1) { ref = clusterSpecifier_; } 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(); if (clusterSpecifierCase_ == 1) { clusterSpecifier_ = s; } return s; } } /** *
   * Indicates the upstream cluster to which the request should be routed
   * to.
   * 
* * string cluster = 1 [(.validate.rules) = { ... } * @return The bytes for cluster. */ public com.google.protobuf.ByteString getClusterBytes() { java.lang.Object ref = ""; if (clusterSpecifierCase_ == 1) { ref = clusterSpecifier_; } if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (clusterSpecifierCase_ == 1) { clusterSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int CLUSTER_HEADER_FIELD_NUMBER = 2; /** *
   * Envoy will determine the cluster to route to by reading the value of the
   * HTTP header named by cluster_header from the request headers. If the
   * header is not found or the referenced cluster does not exist, Envoy will
   * return a 404 response.
   * .. attention::
   *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
   *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
   * .. note::
   *   If the header appears multiple times only the first value is used.
   * 
* * string cluster_header = 2 [(.validate.rules) = { ... } * @return Whether the clusterHeader field is set. */ public boolean hasClusterHeader() { return clusterSpecifierCase_ == 2; } /** *
   * Envoy will determine the cluster to route to by reading the value of the
   * HTTP header named by cluster_header from the request headers. If the
   * header is not found or the referenced cluster does not exist, Envoy will
   * return a 404 response.
   * .. attention::
   *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
   *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
   * .. note::
   *   If the header appears multiple times only the first value is used.
   * 
* * string cluster_header = 2 [(.validate.rules) = { ... } * @return The clusterHeader. */ public java.lang.String getClusterHeader() { java.lang.Object ref = ""; if (clusterSpecifierCase_ == 2) { ref = clusterSpecifier_; } 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(); if (clusterSpecifierCase_ == 2) { clusterSpecifier_ = s; } return s; } } /** *
   * Envoy will determine the cluster to route to by reading the value of the
   * HTTP header named by cluster_header from the request headers. If the
   * header is not found or the referenced cluster does not exist, Envoy will
   * return a 404 response.
   * .. attention::
   *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
   *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
   * .. note::
   *   If the header appears multiple times only the first value is used.
   * 
* * string cluster_header = 2 [(.validate.rules) = { ... } * @return The bytes for clusterHeader. */ public com.google.protobuf.ByteString getClusterHeaderBytes() { java.lang.Object ref = ""; if (clusterSpecifierCase_ == 2) { ref = clusterSpecifier_; } if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (clusterSpecifierCase_ == 2) { clusterSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int WEIGHTED_CLUSTERS_FIELD_NUMBER = 3; /** *
   * Multiple upstream clusters can be specified for a given route. The
   * request is routed to one of the upstream clusters based on weights
   * assigned to each cluster. See
   * :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
   * for additional documentation.
   * 
* * .envoy.config.route.v3.WeightedCluster weighted_clusters = 3; * @return Whether the weightedClusters field is set. */ @java.lang.Override public boolean hasWeightedClusters() { return clusterSpecifierCase_ == 3; } /** *
   * Multiple upstream clusters can be specified for a given route. The
   * request is routed to one of the upstream clusters based on weights
   * assigned to each cluster. See
   * :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
   * for additional documentation.
   * 
* * .envoy.config.route.v3.WeightedCluster weighted_clusters = 3; * @return The weightedClusters. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.WeightedCluster getWeightedClusters() { if (clusterSpecifierCase_ == 3) { return (io.envoyproxy.envoy.config.route.v3.WeightedCluster) clusterSpecifier_; } return io.envoyproxy.envoy.config.route.v3.WeightedCluster.getDefaultInstance(); } /** *
   * Multiple upstream clusters can be specified for a given route. The
   * request is routed to one of the upstream clusters based on weights
   * assigned to each cluster. See
   * :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
   * for additional documentation.
   * 
* * .envoy.config.route.v3.WeightedCluster weighted_clusters = 3; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.WeightedClusterOrBuilder getWeightedClustersOrBuilder() { if (clusterSpecifierCase_ == 3) { return (io.envoyproxy.envoy.config.route.v3.WeightedCluster) clusterSpecifier_; } return io.envoyproxy.envoy.config.route.v3.WeightedCluster.getDefaultInstance(); } public static final int CLUSTER_SPECIFIER_PLUGIN_FIELD_NUMBER = 37; /** *
   * Name of the cluster specifier plugin to use to determine the cluster for requests on this route.
   * The cluster specifier plugin name must be defined in the associated
   * :ref:`cluster specifier plugins <envoy_v3_api_field_config.route.v3.RouteConfiguration.cluster_specifier_plugins>`
   * in the :ref:`name <envoy_v3_api_field_config.core.v3.TypedExtensionConfig.name>` field.
   * 
* * string cluster_specifier_plugin = 37; * @return Whether the clusterSpecifierPlugin field is set. */ public boolean hasClusterSpecifierPlugin() { return clusterSpecifierCase_ == 37; } /** *
   * Name of the cluster specifier plugin to use to determine the cluster for requests on this route.
   * The cluster specifier plugin name must be defined in the associated
   * :ref:`cluster specifier plugins <envoy_v3_api_field_config.route.v3.RouteConfiguration.cluster_specifier_plugins>`
   * in the :ref:`name <envoy_v3_api_field_config.core.v3.TypedExtensionConfig.name>` field.
   * 
* * string cluster_specifier_plugin = 37; * @return The clusterSpecifierPlugin. */ public java.lang.String getClusterSpecifierPlugin() { java.lang.Object ref = ""; if (clusterSpecifierCase_ == 37) { ref = clusterSpecifier_; } 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(); if (clusterSpecifierCase_ == 37) { clusterSpecifier_ = s; } return s; } } /** *
   * Name of the cluster specifier plugin to use to determine the cluster for requests on this route.
   * The cluster specifier plugin name must be defined in the associated
   * :ref:`cluster specifier plugins <envoy_v3_api_field_config.route.v3.RouteConfiguration.cluster_specifier_plugins>`
   * in the :ref:`name <envoy_v3_api_field_config.core.v3.TypedExtensionConfig.name>` field.
   * 
* * string cluster_specifier_plugin = 37; * @return The bytes for clusterSpecifierPlugin. */ public com.google.protobuf.ByteString getClusterSpecifierPluginBytes() { java.lang.Object ref = ""; if (clusterSpecifierCase_ == 37) { ref = clusterSpecifier_; } if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (clusterSpecifierCase_ == 37) { clusterSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int INLINE_CLUSTER_SPECIFIER_PLUGIN_FIELD_NUMBER = 39; /** *
   * Custom cluster specifier plugin configuration to use to determine the cluster for requests
   * on this route.
   * 
* * .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39; * @return Whether the inlineClusterSpecifierPlugin field is set. */ @java.lang.Override public boolean hasInlineClusterSpecifierPlugin() { return clusterSpecifierCase_ == 39; } /** *
   * Custom cluster specifier plugin configuration to use to determine the cluster for requests
   * on this route.
   * 
* * .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39; * @return The inlineClusterSpecifierPlugin. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin getInlineClusterSpecifierPlugin() { if (clusterSpecifierCase_ == 39) { return (io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin) clusterSpecifier_; } return io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.getDefaultInstance(); } /** *
   * Custom cluster specifier plugin configuration to use to determine the cluster for requests
   * on this route.
   * 
* * .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPluginOrBuilder getInlineClusterSpecifierPluginOrBuilder() { if (clusterSpecifierCase_ == 39) { return (io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin) clusterSpecifier_; } return io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.getDefaultInstance(); } public static final int CLUSTER_NOT_FOUND_RESPONSE_CODE_FIELD_NUMBER = 20; private int clusterNotFoundResponseCode_; /** *
   * The HTTP status code to use when configured cluster is not found.
   * The default response code is 503 Service Unavailable.
   * 
* * .envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode cluster_not_found_response_code = 20 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for clusterNotFoundResponseCode. */ @java.lang.Override public int getClusterNotFoundResponseCodeValue() { return clusterNotFoundResponseCode_; } /** *
   * The HTTP status code to use when configured cluster is not found.
   * The default response code is 503 Service Unavailable.
   * 
* * .envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode cluster_not_found_response_code = 20 [(.validate.rules) = { ... } * @return The clusterNotFoundResponseCode. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode getClusterNotFoundResponseCode() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode result = io.envoyproxy.envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode.valueOf(clusterNotFoundResponseCode_); return result == null ? io.envoyproxy.envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode.UNRECOGNIZED : result; } public static final int METADATA_MATCH_FIELD_NUMBER = 4; private io.envoyproxy.envoy.config.core.v3.Metadata metadataMatch_; /** *
   * Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
   * in the upstream cluster with metadata matching what's set in this field will be considered
   * for load balancing. If using :ref:`weighted_clusters
   * <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
   * provided there taking precedence. The filter name should be specified as ``envoy.lb``.
   * 
* * .envoy.config.core.v3.Metadata metadata_match = 4; * @return Whether the metadataMatch field is set. */ @java.lang.Override public boolean hasMetadataMatch() { return metadataMatch_ != null; } /** *
   * Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
   * in the upstream cluster with metadata matching what's set in this field will be considered
   * for load balancing. If using :ref:`weighted_clusters
   * <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
   * provided there taking precedence. The filter name should be specified as ``envoy.lb``.
   * 
* * .envoy.config.core.v3.Metadata metadata_match = 4; * @return The metadataMatch. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.Metadata getMetadataMatch() { return metadataMatch_ == null ? io.envoyproxy.envoy.config.core.v3.Metadata.getDefaultInstance() : metadataMatch_; } /** *
   * Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
   * in the upstream cluster with metadata matching what's set in this field will be considered
   * for load balancing. If using :ref:`weighted_clusters
   * <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
   * provided there taking precedence. The filter name should be specified as ``envoy.lb``.
   * 
* * .envoy.config.core.v3.Metadata metadata_match = 4; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.MetadataOrBuilder getMetadataMatchOrBuilder() { return getMetadataMatch(); } public static final int PREFIX_REWRITE_FIELD_NUMBER = 5; private volatile java.lang.Object prefixRewrite_; /** *
   * Indicates that during forwarding, the matched prefix (or path) should be
   * swapped with this value. This option allows application URLs to be rooted
   * at a different path from those exposed at the reverse proxy layer. The router filter will
   * place the original path before rewrite into the :ref:`x-envoy-original-path
   * <config_http_filters_router_x-envoy-original-path>` header.
   * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`
   * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`,
   * or :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>` may be specified.
   * .. attention::
   *   Pay careful attention to the use of trailing slashes in the
   *   :ref:`route's match <envoy_v3_api_field_config.route.v3.Route.match>` prefix value.
   *   Stripping a prefix from a path requires multiple Routes to handle all cases. For example,
   *   rewriting ``/prefix`` to ``/`` and ``/prefix/etc`` to ``/etc`` cannot be done in a single
   *   :ref:`Route <envoy_v3_api_msg_config.route.v3.Route>`, as shown by the below config entries:
   *   .. code-block:: yaml
   *     - match:
   *         prefix: "/prefix/"
   *       route:
   *         prefix_rewrite: "/"
   *     - match:
   *         prefix: "/prefix"
   *       route:
   *         prefix_rewrite: "/"
   *   Having above entries in the config, requests to ``/prefix`` will be stripped to ``/``, while
   *   requests to ``/prefix/etc`` will be stripped to ``/etc``.
   * 
* * string prefix_rewrite = 5 [(.validate.rules) = { ... } * @return The prefixRewrite. */ @java.lang.Override public java.lang.String getPrefixRewrite() { java.lang.Object ref = prefixRewrite_; 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(); prefixRewrite_ = s; return s; } } /** *
   * Indicates that during forwarding, the matched prefix (or path) should be
   * swapped with this value. This option allows application URLs to be rooted
   * at a different path from those exposed at the reverse proxy layer. The router filter will
   * place the original path before rewrite into the :ref:`x-envoy-original-path
   * <config_http_filters_router_x-envoy-original-path>` header.
   * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`
   * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`,
   * or :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>` may be specified.
   * .. attention::
   *   Pay careful attention to the use of trailing slashes in the
   *   :ref:`route's match <envoy_v3_api_field_config.route.v3.Route.match>` prefix value.
   *   Stripping a prefix from a path requires multiple Routes to handle all cases. For example,
   *   rewriting ``/prefix`` to ``/`` and ``/prefix/etc`` to ``/etc`` cannot be done in a single
   *   :ref:`Route <envoy_v3_api_msg_config.route.v3.Route>`, as shown by the below config entries:
   *   .. code-block:: yaml
   *     - match:
   *         prefix: "/prefix/"
   *       route:
   *         prefix_rewrite: "/"
   *     - match:
   *         prefix: "/prefix"
   *       route:
   *         prefix_rewrite: "/"
   *   Having above entries in the config, requests to ``/prefix`` will be stripped to ``/``, while
   *   requests to ``/prefix/etc`` will be stripped to ``/etc``.
   * 
* * string prefix_rewrite = 5 [(.validate.rules) = { ... } * @return The bytes for prefixRewrite. */ @java.lang.Override public com.google.protobuf.ByteString getPrefixRewriteBytes() { java.lang.Object ref = prefixRewrite_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); prefixRewrite_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int REGEX_REWRITE_FIELD_NUMBER = 32; private io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute regexRewrite_; /** *
   * Indicates that during forwarding, portions of the path that match the
   * pattern should be rewritten, even allowing the substitution of capture
   * groups from the pattern into the new path as specified by the rewrite
   * substitution string. This is useful to allow application paths to be
   * rewritten in a way that is aware of segments with variable content like
   * identifiers. The router filter will place the original path as it was
   * before the rewrite into the :ref:`x-envoy-original-path
   * <config_http_filters_router_x-envoy-original-path>` header.
   * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
   * :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
   * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
   * may be specified.
   * Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
   * * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
   *   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
   *   into ``/v1/api/instance/foo``.
   * * The pattern ``one`` paired with a substitution string of ``two`` would
   *   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
   * * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
   *   ``\1two\2`` would replace only the first occurrence of ``one``,
   *   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
   * * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
   *   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
   *   ``/aaa/yyy/bbb``.
   * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32; * @return Whether the regexRewrite field is set. */ @java.lang.Override public boolean hasRegexRewrite() { return regexRewrite_ != null; } /** *
   * Indicates that during forwarding, portions of the path that match the
   * pattern should be rewritten, even allowing the substitution of capture
   * groups from the pattern into the new path as specified by the rewrite
   * substitution string. This is useful to allow application paths to be
   * rewritten in a way that is aware of segments with variable content like
   * identifiers. The router filter will place the original path as it was
   * before the rewrite into the :ref:`x-envoy-original-path
   * <config_http_filters_router_x-envoy-original-path>` header.
   * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
   * :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
   * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
   * may be specified.
   * Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
   * * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
   *   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
   *   into ``/v1/api/instance/foo``.
   * * The pattern ``one`` paired with a substitution string of ``two`` would
   *   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
   * * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
   *   ``\1two\2`` would replace only the first occurrence of ``one``,
   *   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
   * * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
   *   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
   *   ``/aaa/yyy/bbb``.
   * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32; * @return The regexRewrite. */ @java.lang.Override public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute getRegexRewrite() { return regexRewrite_ == null ? io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.getDefaultInstance() : regexRewrite_; } /** *
   * Indicates that during forwarding, portions of the path that match the
   * pattern should be rewritten, even allowing the substitution of capture
   * groups from the pattern into the new path as specified by the rewrite
   * substitution string. This is useful to allow application paths to be
   * rewritten in a way that is aware of segments with variable content like
   * identifiers. The router filter will place the original path as it was
   * before the rewrite into the :ref:`x-envoy-original-path
   * <config_http_filters_router_x-envoy-original-path>` header.
   * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
   * :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
   * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
   * may be specified.
   * Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
   * * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
   *   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
   *   into ``/v1/api/instance/foo``.
   * * The pattern ``one`` paired with a substitution string of ``two`` would
   *   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
   * * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
   *   ``\1two\2`` would replace only the first occurrence of ``one``,
   *   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
   * * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
   *   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
   *   ``/aaa/yyy/bbb``.
   * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32; */ @java.lang.Override public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder getRegexRewriteOrBuilder() { return getRegexRewrite(); } public static final int PATH_REWRITE_POLICY_FIELD_NUMBER = 41; private io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig pathRewritePolicy_; /** *
   * [#extension-category: envoy.path.rewrite]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41; * @return Whether the pathRewritePolicy field is set. */ @java.lang.Override public boolean hasPathRewritePolicy() { return pathRewritePolicy_ != null; } /** *
   * [#extension-category: envoy.path.rewrite]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41; * @return The pathRewritePolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig getPathRewritePolicy() { return pathRewritePolicy_ == null ? io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance() : pathRewritePolicy_; } /** *
   * [#extension-category: envoy.path.rewrite]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder getPathRewritePolicyOrBuilder() { return getPathRewritePolicy(); } public static final int HOST_REWRITE_LITERAL_FIELD_NUMBER = 6; /** *
   * Indicates that during forwarding, the host header will be swapped with
   * this value. Using this option will append the
   * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
   * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
   * is set.
   * 
* * string host_rewrite_literal = 6 [(.validate.rules) = { ... } * @return Whether the hostRewriteLiteral field is set. */ public boolean hasHostRewriteLiteral() { return hostRewriteSpecifierCase_ == 6; } /** *
   * Indicates that during forwarding, the host header will be swapped with
   * this value. Using this option will append the
   * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
   * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
   * is set.
   * 
* * string host_rewrite_literal = 6 [(.validate.rules) = { ... } * @return The hostRewriteLiteral. */ public java.lang.String getHostRewriteLiteral() { java.lang.Object ref = ""; if (hostRewriteSpecifierCase_ == 6) { ref = hostRewriteSpecifier_; } 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(); if (hostRewriteSpecifierCase_ == 6) { hostRewriteSpecifier_ = s; } return s; } } /** *
   * Indicates that during forwarding, the host header will be swapped with
   * this value. Using this option will append the
   * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
   * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
   * is set.
   * 
* * string host_rewrite_literal = 6 [(.validate.rules) = { ... } * @return The bytes for hostRewriteLiteral. */ public com.google.protobuf.ByteString getHostRewriteLiteralBytes() { java.lang.Object ref = ""; if (hostRewriteSpecifierCase_ == 6) { ref = hostRewriteSpecifier_; } if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (hostRewriteSpecifierCase_ == 6) { hostRewriteSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int AUTO_HOST_REWRITE_FIELD_NUMBER = 7; /** *
   * Indicates that during forwarding, the host header will be swapped with
   * the hostname of the upstream host chosen by the cluster manager. This
   * option is applicable only when the destination cluster for a route is of
   * type ``strict_dns`` or ``logical_dns``,
   * or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
   * field is not empty. Setting this to true with other cluster types
   * has no effect. Using this option will append the
   * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
   * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
   * is set.
   * 
* * .google.protobuf.BoolValue auto_host_rewrite = 7; * @return Whether the autoHostRewrite field is set. */ @java.lang.Override public boolean hasAutoHostRewrite() { return hostRewriteSpecifierCase_ == 7; } /** *
   * Indicates that during forwarding, the host header will be swapped with
   * the hostname of the upstream host chosen by the cluster manager. This
   * option is applicable only when the destination cluster for a route is of
   * type ``strict_dns`` or ``logical_dns``,
   * or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
   * field is not empty. Setting this to true with other cluster types
   * has no effect. Using this option will append the
   * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
   * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
   * is set.
   * 
* * .google.protobuf.BoolValue auto_host_rewrite = 7; * @return The autoHostRewrite. */ @java.lang.Override public com.google.protobuf.BoolValue getAutoHostRewrite() { if (hostRewriteSpecifierCase_ == 7) { return (com.google.protobuf.BoolValue) hostRewriteSpecifier_; } return com.google.protobuf.BoolValue.getDefaultInstance(); } /** *
   * Indicates that during forwarding, the host header will be swapped with
   * the hostname of the upstream host chosen by the cluster manager. This
   * option is applicable only when the destination cluster for a route is of
   * type ``strict_dns`` or ``logical_dns``,
   * or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
   * field is not empty. Setting this to true with other cluster types
   * has no effect. Using this option will append the
   * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
   * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
   * is set.
   * 
* * .google.protobuf.BoolValue auto_host_rewrite = 7; */ @java.lang.Override public com.google.protobuf.BoolValueOrBuilder getAutoHostRewriteOrBuilder() { if (hostRewriteSpecifierCase_ == 7) { return (com.google.protobuf.BoolValue) hostRewriteSpecifier_; } return com.google.protobuf.BoolValue.getDefaultInstance(); } public static final int HOST_REWRITE_HEADER_FIELD_NUMBER = 29; /** *
   * Indicates that during forwarding, the host header will be swapped with the content of given
   * downstream or :ref:`custom <config_http_conn_man_headers_custom_request_headers>` header.
   * If header value is empty, host header is left intact. Using this option will append the
   * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
   * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
   * is set.
   * .. attention::
   *   Pay attention to the potential security implications of using this option. Provided header
   *   must come from trusted source.
   * .. note::
   *   If the header appears multiple times only the first value is used.
   * 
* * string host_rewrite_header = 29 [(.validate.rules) = { ... } * @return Whether the hostRewriteHeader field is set. */ public boolean hasHostRewriteHeader() { return hostRewriteSpecifierCase_ == 29; } /** *
   * Indicates that during forwarding, the host header will be swapped with the content of given
   * downstream or :ref:`custom <config_http_conn_man_headers_custom_request_headers>` header.
   * If header value is empty, host header is left intact. Using this option will append the
   * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
   * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
   * is set.
   * .. attention::
   *   Pay attention to the potential security implications of using this option. Provided header
   *   must come from trusted source.
   * .. note::
   *   If the header appears multiple times only the first value is used.
   * 
* * string host_rewrite_header = 29 [(.validate.rules) = { ... } * @return The hostRewriteHeader. */ public java.lang.String getHostRewriteHeader() { java.lang.Object ref = ""; if (hostRewriteSpecifierCase_ == 29) { ref = hostRewriteSpecifier_; } 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(); if (hostRewriteSpecifierCase_ == 29) { hostRewriteSpecifier_ = s; } return s; } } /** *
   * Indicates that during forwarding, the host header will be swapped with the content of given
   * downstream or :ref:`custom <config_http_conn_man_headers_custom_request_headers>` header.
   * If header value is empty, host header is left intact. Using this option will append the
   * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
   * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
   * is set.
   * .. attention::
   *   Pay attention to the potential security implications of using this option. Provided header
   *   must come from trusted source.
   * .. note::
   *   If the header appears multiple times only the first value is used.
   * 
* * string host_rewrite_header = 29 [(.validate.rules) = { ... } * @return The bytes for hostRewriteHeader. */ public com.google.protobuf.ByteString getHostRewriteHeaderBytes() { java.lang.Object ref = ""; if (hostRewriteSpecifierCase_ == 29) { ref = hostRewriteSpecifier_; } if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (hostRewriteSpecifierCase_ == 29) { hostRewriteSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int HOST_REWRITE_PATH_REGEX_FIELD_NUMBER = 35; /** *
   * Indicates that during forwarding, the host header will be swapped with
   * the result of the regex substitution executed on path value with query and fragment removed.
   * This is useful for transitioning variable content between path segment and subdomain.
   * Using this option will append the
   * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
   * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
   * is set.
   * For example with the following config:
   *   .. code-block:: yaml
   *     host_rewrite_path_regex:
   *       pattern:
   *         google_re2: {}
   *         regex: "^/(.+)/.+$"
   *       substitution: \1
   * Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
   * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35; * @return Whether the hostRewritePathRegex field is set. */ @java.lang.Override public boolean hasHostRewritePathRegex() { return hostRewriteSpecifierCase_ == 35; } /** *
   * Indicates that during forwarding, the host header will be swapped with
   * the result of the regex substitution executed on path value with query and fragment removed.
   * This is useful for transitioning variable content between path segment and subdomain.
   * Using this option will append the
   * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
   * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
   * is set.
   * For example with the following config:
   *   .. code-block:: yaml
   *     host_rewrite_path_regex:
   *       pattern:
   *         google_re2: {}
   *         regex: "^/(.+)/.+$"
   *       substitution: \1
   * Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
   * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35; * @return The hostRewritePathRegex. */ @java.lang.Override public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute getHostRewritePathRegex() { if (hostRewriteSpecifierCase_ == 35) { return (io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute) hostRewriteSpecifier_; } return io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.getDefaultInstance(); } /** *
   * Indicates that during forwarding, the host header will be swapped with
   * the result of the regex substitution executed on path value with query and fragment removed.
   * This is useful for transitioning variable content between path segment and subdomain.
   * Using this option will append the
   * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
   * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
   * is set.
   * For example with the following config:
   *   .. code-block:: yaml
   *     host_rewrite_path_regex:
   *       pattern:
   *         google_re2: {}
   *         regex: "^/(.+)/.+$"
   *       substitution: \1
   * Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
   * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35; */ @java.lang.Override public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder getHostRewritePathRegexOrBuilder() { if (hostRewriteSpecifierCase_ == 35) { return (io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute) hostRewriteSpecifier_; } return io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.getDefaultInstance(); } public static final int APPEND_X_FORWARDED_HOST_FIELD_NUMBER = 38; private boolean appendXForwardedHost_; /** *
   * If set, then a host rewrite action (one of
   * :ref:`host_rewrite_literal <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_literal>`,
   * :ref:`auto_host_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.auto_host_rewrite>`,
   * :ref:`host_rewrite_header <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_header>`, or
   * :ref:`host_rewrite_path_regex <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_path_regex>`)
   * causes the original value of the host header, if any, to be appended to the
   * :ref:`config_http_conn_man_headers_x-forwarded-host` HTTP header if it is different to the last value appended.
   * This can be disabled by setting the runtime guard ``envoy_reloadable_features_append_xfh_idempotent`` to false.
   * 
* * bool append_x_forwarded_host = 38; * @return The appendXForwardedHost. */ @java.lang.Override public boolean getAppendXForwardedHost() { return appendXForwardedHost_; } public static final int TIMEOUT_FIELD_NUMBER = 8; private com.google.protobuf.Duration timeout_; /** *
   * Specifies the upstream timeout for the route. If not specified, the default is 15s. This
   * spans between the point at which the entire downstream request (i.e. end-of-stream) has been
   * processed and when the upstream response has been completely processed. A value of 0 will
   * disable the route's timeout.
   * .. note::
   *   This timeout includes all retries. See also
   *   :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
   *   :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
   *   :ref:`retry overview <arch_overview_http_routing_retry>`.
   * 
* * .google.protobuf.Duration timeout = 8; * @return Whether the timeout field is set. */ @java.lang.Override public boolean hasTimeout() { return timeout_ != null; } /** *
   * Specifies the upstream timeout for the route. If not specified, the default is 15s. This
   * spans between the point at which the entire downstream request (i.e. end-of-stream) has been
   * processed and when the upstream response has been completely processed. A value of 0 will
   * disable the route's timeout.
   * .. note::
   *   This timeout includes all retries. See also
   *   :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
   *   :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
   *   :ref:`retry overview <arch_overview_http_routing_retry>`.
   * 
* * .google.protobuf.Duration timeout = 8; * @return The timeout. */ @java.lang.Override public com.google.protobuf.Duration getTimeout() { return timeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeout_; } /** *
   * Specifies the upstream timeout for the route. If not specified, the default is 15s. This
   * spans between the point at which the entire downstream request (i.e. end-of-stream) has been
   * processed and when the upstream response has been completely processed. A value of 0 will
   * disable the route's timeout.
   * .. note::
   *   This timeout includes all retries. See also
   *   :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
   *   :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
   *   :ref:`retry overview <arch_overview_http_routing_retry>`.
   * 
* * .google.protobuf.Duration timeout = 8; */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getTimeoutOrBuilder() { return getTimeout(); } public static final int IDLE_TIMEOUT_FIELD_NUMBER = 24; private com.google.protobuf.Duration idleTimeout_; /** *
   * Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
   * although the connection manager wide :ref:`stream_idle_timeout
   * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
   * will still apply. A value of 0 will completely disable the route's idle timeout, even if a
   * connection manager stream idle timeout is configured.
   * The idle timeout is distinct to :ref:`timeout
   * <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
   * on the upstream response time; :ref:`idle_timeout
   * <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
   * of time the request's stream may be idle.
   * After header decoding, the idle timeout will apply on downstream and
   * upstream request events. Each time an encode/decode event for headers or
   * data is processed for the stream, the timer will be reset. If the timeout
   * fires, the stream is terminated with a 408 Request Timeout error code if no
   * upstream response header has been received, otherwise a stream reset
   * occurs.
   * If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
   * is configured, this timeout is scaled according to the value for
   * :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
   * 
* * .google.protobuf.Duration idle_timeout = 24; * @return Whether the idleTimeout field is set. */ @java.lang.Override public boolean hasIdleTimeout() { return idleTimeout_ != null; } /** *
   * Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
   * although the connection manager wide :ref:`stream_idle_timeout
   * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
   * will still apply. A value of 0 will completely disable the route's idle timeout, even if a
   * connection manager stream idle timeout is configured.
   * The idle timeout is distinct to :ref:`timeout
   * <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
   * on the upstream response time; :ref:`idle_timeout
   * <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
   * of time the request's stream may be idle.
   * After header decoding, the idle timeout will apply on downstream and
   * upstream request events. Each time an encode/decode event for headers or
   * data is processed for the stream, the timer will be reset. If the timeout
   * fires, the stream is terminated with a 408 Request Timeout error code if no
   * upstream response header has been received, otherwise a stream reset
   * occurs.
   * If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
   * is configured, this timeout is scaled according to the value for
   * :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
   * 
* * .google.protobuf.Duration idle_timeout = 24; * @return The idleTimeout. */ @java.lang.Override public com.google.protobuf.Duration getIdleTimeout() { return idleTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : idleTimeout_; } /** *
   * Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
   * although the connection manager wide :ref:`stream_idle_timeout
   * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
   * will still apply. A value of 0 will completely disable the route's idle timeout, even if a
   * connection manager stream idle timeout is configured.
   * The idle timeout is distinct to :ref:`timeout
   * <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
   * on the upstream response time; :ref:`idle_timeout
   * <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
   * of time the request's stream may be idle.
   * After header decoding, the idle timeout will apply on downstream and
   * upstream request events. Each time an encode/decode event for headers or
   * data is processed for the stream, the timer will be reset. If the timeout
   * fires, the stream is terminated with a 408 Request Timeout error code if no
   * upstream response header has been received, otherwise a stream reset
   * occurs.
   * If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
   * is configured, this timeout is scaled according to the value for
   * :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
   * 
* * .google.protobuf.Duration idle_timeout = 24; */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getIdleTimeoutOrBuilder() { return getIdleTimeout(); } public static final int EARLY_DATA_POLICY_FIELD_NUMBER = 40; private io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig earlyDataPolicy_; /** *
   * Specifies how to send request over TLS early data.
   * If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
   * [#extension-category: envoy.route.early_data_policy]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40; * @return Whether the earlyDataPolicy field is set. */ @java.lang.Override public boolean hasEarlyDataPolicy() { return earlyDataPolicy_ != null; } /** *
   * Specifies how to send request over TLS early data.
   * If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
   * [#extension-category: envoy.route.early_data_policy]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40; * @return The earlyDataPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig getEarlyDataPolicy() { return earlyDataPolicy_ == null ? io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance() : earlyDataPolicy_; } /** *
   * Specifies how to send request over TLS early data.
   * If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
   * [#extension-category: envoy.route.early_data_policy]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder getEarlyDataPolicyOrBuilder() { return getEarlyDataPolicy(); } public static final int RETRY_POLICY_FIELD_NUMBER = 9; private io.envoyproxy.envoy.config.route.v3.RetryPolicy retryPolicy_; /** *
   * Indicates that the route has a retry policy. Note that if this is set,
   * it'll take precedence over the virtual host level retry policy entirely
   * (e.g.: policies are not merged, most internal one becomes the enforced policy).
   * 
* * .envoy.config.route.v3.RetryPolicy retry_policy = 9; * @return Whether the retryPolicy field is set. */ @java.lang.Override public boolean hasRetryPolicy() { return retryPolicy_ != null; } /** *
   * Indicates that the route has a retry policy. Note that if this is set,
   * it'll take precedence over the virtual host level retry policy entirely
   * (e.g.: policies are not merged, most internal one becomes the enforced policy).
   * 
* * .envoy.config.route.v3.RetryPolicy retry_policy = 9; * @return The retryPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RetryPolicy getRetryPolicy() { return retryPolicy_ == null ? io.envoyproxy.envoy.config.route.v3.RetryPolicy.getDefaultInstance() : retryPolicy_; } /** *
   * Indicates that the route has a retry policy. Note that if this is set,
   * it'll take precedence over the virtual host level retry policy entirely
   * (e.g.: policies are not merged, most internal one becomes the enforced policy).
   * 
* * .envoy.config.route.v3.RetryPolicy retry_policy = 9; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RetryPolicyOrBuilder getRetryPolicyOrBuilder() { return getRetryPolicy(); } public static final int RETRY_POLICY_TYPED_CONFIG_FIELD_NUMBER = 33; private com.google.protobuf.Any retryPolicyTypedConfig_; /** *
   * [#not-implemented-hide:]
   * Specifies the configuration for retry policy extension. Note that if this is set, it'll take
   * precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
   * most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
   * should not be set if this field is used.
   * 
* * .google.protobuf.Any retry_policy_typed_config = 33; * @return Whether the retryPolicyTypedConfig field is set. */ @java.lang.Override public boolean hasRetryPolicyTypedConfig() { return retryPolicyTypedConfig_ != null; } /** *
   * [#not-implemented-hide:]
   * Specifies the configuration for retry policy extension. Note that if this is set, it'll take
   * precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
   * most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
   * should not be set if this field is used.
   * 
* * .google.protobuf.Any retry_policy_typed_config = 33; * @return The retryPolicyTypedConfig. */ @java.lang.Override public com.google.protobuf.Any getRetryPolicyTypedConfig() { return retryPolicyTypedConfig_ == null ? com.google.protobuf.Any.getDefaultInstance() : retryPolicyTypedConfig_; } /** *
   * [#not-implemented-hide:]
   * Specifies the configuration for retry policy extension. Note that if this is set, it'll take
   * precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
   * most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
   * should not be set if this field is used.
   * 
* * .google.protobuf.Any retry_policy_typed_config = 33; */ @java.lang.Override public com.google.protobuf.AnyOrBuilder getRetryPolicyTypedConfigOrBuilder() { return getRetryPolicyTypedConfig(); } public static final int REQUEST_MIRROR_POLICIES_FIELD_NUMBER = 30; private java.util.List requestMirrorPolicies_; /** *
   * Specify a set of route request mirroring policies.
   * It takes precedence over the virtual host and route config mirror policy entirely.
   * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
   * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ @java.lang.Override public java.util.List getRequestMirrorPoliciesList() { return requestMirrorPolicies_; } /** *
   * Specify a set of route request mirroring policies.
   * It takes precedence over the virtual host and route config mirror policy entirely.
   * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
   * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ @java.lang.Override public java.util.List getRequestMirrorPoliciesOrBuilderList() { return requestMirrorPolicies_; } /** *
   * Specify a set of route request mirroring policies.
   * It takes precedence over the virtual host and route config mirror policy entirely.
   * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
   * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ @java.lang.Override public int getRequestMirrorPoliciesCount() { return requestMirrorPolicies_.size(); } /** *
   * Specify a set of route request mirroring policies.
   * It takes precedence over the virtual host and route config mirror policy entirely.
   * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
   * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy getRequestMirrorPolicies(int index) { return requestMirrorPolicies_.get(index); } /** *
   * Specify a set of route request mirroring policies.
   * It takes precedence over the virtual host and route config mirror policy entirely.
   * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
   * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicyOrBuilder getRequestMirrorPoliciesOrBuilder( int index) { return requestMirrorPolicies_.get(index); } public static final int PRIORITY_FIELD_NUMBER = 11; private int priority_; /** *
   * Optionally specifies the :ref:`routing priority <arch_overview_http_routing_priority>`.
   * 
* * .envoy.config.core.v3.RoutingPriority priority = 11 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for priority. */ @java.lang.Override public int getPriorityValue() { return priority_; } /** *
   * Optionally specifies the :ref:`routing priority <arch_overview_http_routing_priority>`.
   * 
* * .envoy.config.core.v3.RoutingPriority priority = 11 [(.validate.rules) = { ... } * @return The priority. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.RoutingPriority getPriority() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.core.v3.RoutingPriority result = io.envoyproxy.envoy.config.core.v3.RoutingPriority.valueOf(priority_); return result == null ? io.envoyproxy.envoy.config.core.v3.RoutingPriority.UNRECOGNIZED : result; } public static final int RATE_LIMITS_FIELD_NUMBER = 13; private java.util.List rateLimits_; /** *
   * Specifies a set of rate limit configurations that could be applied to the
   * route.
   * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ @java.lang.Override public java.util.List getRateLimitsList() { return rateLimits_; } /** *
   * Specifies a set of rate limit configurations that could be applied to the
   * route.
   * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ @java.lang.Override public java.util.List getRateLimitsOrBuilderList() { return rateLimits_; } /** *
   * Specifies a set of rate limit configurations that could be applied to the
   * route.
   * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ @java.lang.Override public int getRateLimitsCount() { return rateLimits_.size(); } /** *
   * Specifies a set of rate limit configurations that could be applied to the
   * route.
   * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RateLimit getRateLimits(int index) { return rateLimits_.get(index); } /** *
   * Specifies a set of rate limit configurations that could be applied to the
   * route.
   * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RateLimitOrBuilder getRateLimitsOrBuilder( int index) { return rateLimits_.get(index); } public static final int INCLUDE_VH_RATE_LIMITS_FIELD_NUMBER = 14; private com.google.protobuf.BoolValue includeVhRateLimits_; /** *
   * Specifies if the rate limit filter should include the virtual host rate
   * limits. By default, if the route configured rate limits, the virtual host
   * :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
   * request.
   * This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
   * 
* * .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.include_vh_rate_limits is deprecated. * See envoy/config/route/v3/route_components.proto;l=1288 * @return Whether the includeVhRateLimits field is set. */ @java.lang.Override @java.lang.Deprecated public boolean hasIncludeVhRateLimits() { return includeVhRateLimits_ != null; } /** *
   * Specifies if the rate limit filter should include the virtual host rate
   * limits. By default, if the route configured rate limits, the virtual host
   * :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
   * request.
   * This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
   * 
* * .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.include_vh_rate_limits is deprecated. * See envoy/config/route/v3/route_components.proto;l=1288 * @return The includeVhRateLimits. */ @java.lang.Override @java.lang.Deprecated public com.google.protobuf.BoolValue getIncludeVhRateLimits() { return includeVhRateLimits_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : includeVhRateLimits_; } /** *
   * Specifies if the rate limit filter should include the virtual host rate
   * limits. By default, if the route configured rate limits, the virtual host
   * :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
   * request.
   * This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
   * 
* * .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public com.google.protobuf.BoolValueOrBuilder getIncludeVhRateLimitsOrBuilder() { return getIncludeVhRateLimits(); } public static final int HASH_POLICY_FIELD_NUMBER = 15; private java.util.List hashPolicy_; /** *
   * Specifies a list of hash policies to use for ring hash load balancing. Each
   * hash policy is evaluated individually and the combined result is used to
   * route the request. The method of combination is deterministic such that
   * identical lists of hash policies will produce the same hash. Since a hash
   * policy examines specific parts of a request, it can fail to produce a hash
   * (i.e. if the hashed header is not present). If (and only if) all configured
   * hash policies fail to generate a hash, no hash will be produced for
   * the route. In this case, the behavior is the same as if no hash policies
   * were specified (i.e. the ring hash load balancer will choose a random
   * backend). If a hash policy has the "terminal" attribute set to true, and
   * there is already a hash generated, the hash is returned immediately,
   * ignoring the rest of the hash policy list.
   * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ @java.lang.Override public java.util.List getHashPolicyList() { return hashPolicy_; } /** *
   * Specifies a list of hash policies to use for ring hash load balancing. Each
   * hash policy is evaluated individually and the combined result is used to
   * route the request. The method of combination is deterministic such that
   * identical lists of hash policies will produce the same hash. Since a hash
   * policy examines specific parts of a request, it can fail to produce a hash
   * (i.e. if the hashed header is not present). If (and only if) all configured
   * hash policies fail to generate a hash, no hash will be produced for
   * the route. In this case, the behavior is the same as if no hash policies
   * were specified (i.e. the ring hash load balancer will choose a random
   * backend). If a hash policy has the "terminal" attribute set to true, and
   * there is already a hash generated, the hash is returned immediately,
   * ignoring the rest of the hash policy list.
   * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ @java.lang.Override public java.util.List getHashPolicyOrBuilderList() { return hashPolicy_; } /** *
   * Specifies a list of hash policies to use for ring hash load balancing. Each
   * hash policy is evaluated individually and the combined result is used to
   * route the request. The method of combination is deterministic such that
   * identical lists of hash policies will produce the same hash. Since a hash
   * policy examines specific parts of a request, it can fail to produce a hash
   * (i.e. if the hashed header is not present). If (and only if) all configured
   * hash policies fail to generate a hash, no hash will be produced for
   * the route. In this case, the behavior is the same as if no hash policies
   * were specified (i.e. the ring hash load balancer will choose a random
   * backend). If a hash policy has the "terminal" attribute set to true, and
   * there is already a hash generated, the hash is returned immediately,
   * ignoring the rest of the hash policy list.
   * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ @java.lang.Override public int getHashPolicyCount() { return hashPolicy_.size(); } /** *
   * Specifies a list of hash policies to use for ring hash load balancing. Each
   * hash policy is evaluated individually and the combined result is used to
   * route the request. The method of combination is deterministic such that
   * identical lists of hash policies will produce the same hash. Since a hash
   * policy examines specific parts of a request, it can fail to produce a hash
   * (i.e. if the hashed header is not present). If (and only if) all configured
   * hash policies fail to generate a hash, no hash will be produced for
   * the route. In this case, the behavior is the same as if no hash policies
   * were specified (i.e. the ring hash load balancer will choose a random
   * backend). If a hash policy has the "terminal" attribute set to true, and
   * there is already a hash generated, the hash is returned immediately,
   * ignoring the rest of the hash policy list.
   * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy getHashPolicy(int index) { return hashPolicy_.get(index); } /** *
   * Specifies a list of hash policies to use for ring hash load balancing. Each
   * hash policy is evaluated individually and the combined result is used to
   * route the request. The method of combination is deterministic such that
   * identical lists of hash policies will produce the same hash. Since a hash
   * policy examines specific parts of a request, it can fail to produce a hash
   * (i.e. if the hashed header is not present). If (and only if) all configured
   * hash policies fail to generate a hash, no hash will be produced for
   * the route. In this case, the behavior is the same as if no hash policies
   * were specified (i.e. the ring hash load balancer will choose a random
   * backend). If a hash policy has the "terminal" attribute set to true, and
   * there is already a hash generated, the hash is returned immediately,
   * ignoring the rest of the hash policy list.
   * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicyOrBuilder getHashPolicyOrBuilder( int index) { return hashPolicy_.get(index); } public static final int CORS_FIELD_NUMBER = 17; private io.envoyproxy.envoy.config.route.v3.CorsPolicy cors_; /** *
   * Indicates that the route has a CORS policy. This field is ignored if related cors policy is
   * found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
   * :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
   * .. attention::
   *   This option has been deprecated. Please use
   *   :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
   *   :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
   *   to configure the CORS HTTP filter.
   * 
* * .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.cors is deprecated. * See envoy/config/route/v3/route_components.proto;l=1315 * @return Whether the cors field is set. */ @java.lang.Override @java.lang.Deprecated public boolean hasCors() { return cors_ != null; } /** *
   * Indicates that the route has a CORS policy. This field is ignored if related cors policy is
   * found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
   * :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
   * .. attention::
   *   This option has been deprecated. Please use
   *   :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
   *   :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
   *   to configure the CORS HTTP filter.
   * 
* * .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.cors is deprecated. * See envoy/config/route/v3/route_components.proto;l=1315 * @return The cors. */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.route.v3.CorsPolicy getCors() { return cors_ == null ? io.envoyproxy.envoy.config.route.v3.CorsPolicy.getDefaultInstance() : cors_; } /** *
   * Indicates that the route has a CORS policy. This field is ignored if related cors policy is
   * found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
   * :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
   * .. attention::
   *   This option has been deprecated. Please use
   *   :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
   *   :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
   *   to configure the CORS HTTP filter.
   * 
* * .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.route.v3.CorsPolicyOrBuilder getCorsOrBuilder() { return getCors(); } public static final int MAX_GRPC_TIMEOUT_FIELD_NUMBER = 23; private com.google.protobuf.Duration maxGrpcTimeout_; /** *
   * Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
   * If present, and the request is a gRPC request, use the
   * `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
   * or its default value (infinity) instead of
   * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
   * to the maximum value specified here. If configured as 0, the maximum allowed timeout for
   * gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
   * and gRPC requests time out like any other requests using
   * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
   * This can be used to prevent unexpected upstream request timeouts due to potentially long
   * time gaps between gRPC request and response in gRPC streaming mode.
   * .. note::
   *    If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
   *    precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
   *    both are present. See also
   *    :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
   *    :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
   *    :ref:`retry overview <arch_overview_http_routing_retry>`.
   * 
* * .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.max_grpc_timeout is deprecated. * See envoy/config/route/v3/route_components.proto;l=1337 * @return Whether the maxGrpcTimeout field is set. */ @java.lang.Override @java.lang.Deprecated public boolean hasMaxGrpcTimeout() { return maxGrpcTimeout_ != null; } /** *
   * Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
   * If present, and the request is a gRPC request, use the
   * `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
   * or its default value (infinity) instead of
   * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
   * to the maximum value specified here. If configured as 0, the maximum allowed timeout for
   * gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
   * and gRPC requests time out like any other requests using
   * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
   * This can be used to prevent unexpected upstream request timeouts due to potentially long
   * time gaps between gRPC request and response in gRPC streaming mode.
   * .. note::
   *    If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
   *    precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
   *    both are present. See also
   *    :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
   *    :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
   *    :ref:`retry overview <arch_overview_http_routing_retry>`.
   * 
* * .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.max_grpc_timeout is deprecated. * See envoy/config/route/v3/route_components.proto;l=1337 * @return The maxGrpcTimeout. */ @java.lang.Override @java.lang.Deprecated public com.google.protobuf.Duration getMaxGrpcTimeout() { return maxGrpcTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : maxGrpcTimeout_; } /** *
   * Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
   * If present, and the request is a gRPC request, use the
   * `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
   * or its default value (infinity) instead of
   * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
   * to the maximum value specified here. If configured as 0, the maximum allowed timeout for
   * gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
   * and gRPC requests time out like any other requests using
   * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
   * This can be used to prevent unexpected upstream request timeouts due to potentially long
   * time gaps between gRPC request and response in gRPC streaming mode.
   * .. note::
   *    If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
   *    precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
   *    both are present. See also
   *    :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
   *    :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
   *    :ref:`retry overview <arch_overview_http_routing_retry>`.
   * 
* * .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public com.google.protobuf.DurationOrBuilder getMaxGrpcTimeoutOrBuilder() { return getMaxGrpcTimeout(); } public static final int GRPC_TIMEOUT_OFFSET_FIELD_NUMBER = 28; private com.google.protobuf.Duration grpcTimeoutOffset_; /** *
   * Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
   * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
   * the provided duration from the header. This is useful in allowing Envoy to set its global
   * timeout to be less than that of the deadline imposed by the calling client, which makes it more
   * likely that Envoy will handle the timeout instead of having the call canceled by the client.
   * The offset will only be applied if the provided grpc_timeout is greater than the offset. This
   * ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
   * infinity).
   * 
* * .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.grpc_timeout_offset is deprecated. * See envoy/config/route/v3/route_components.proto;l=1348 * @return Whether the grpcTimeoutOffset field is set. */ @java.lang.Override @java.lang.Deprecated public boolean hasGrpcTimeoutOffset() { return grpcTimeoutOffset_ != null; } /** *
   * Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
   * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
   * the provided duration from the header. This is useful in allowing Envoy to set its global
   * timeout to be less than that of the deadline imposed by the calling client, which makes it more
   * likely that Envoy will handle the timeout instead of having the call canceled by the client.
   * The offset will only be applied if the provided grpc_timeout is greater than the offset. This
   * ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
   * infinity).
   * 
* * .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.grpc_timeout_offset is deprecated. * See envoy/config/route/v3/route_components.proto;l=1348 * @return The grpcTimeoutOffset. */ @java.lang.Override @java.lang.Deprecated public com.google.protobuf.Duration getGrpcTimeoutOffset() { return grpcTimeoutOffset_ == null ? com.google.protobuf.Duration.getDefaultInstance() : grpcTimeoutOffset_; } /** *
   * Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
   * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
   * the provided duration from the header. This is useful in allowing Envoy to set its global
   * timeout to be less than that of the deadline imposed by the calling client, which makes it more
   * likely that Envoy will handle the timeout instead of having the call canceled by the client.
   * The offset will only be applied if the provided grpc_timeout is greater than the offset. This
   * ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
   * infinity).
   * 
* * .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public com.google.protobuf.DurationOrBuilder getGrpcTimeoutOffsetOrBuilder() { return getGrpcTimeoutOffset(); } public static final int UPGRADE_CONFIGS_FIELD_NUMBER = 25; private java.util.List upgradeConfigs_; /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ @java.lang.Override public java.util.List getUpgradeConfigsList() { return upgradeConfigs_; } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ @java.lang.Override public java.util.List getUpgradeConfigsOrBuilderList() { return upgradeConfigs_; } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ @java.lang.Override public int getUpgradeConfigsCount() { return upgradeConfigs_.size(); } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig getUpgradeConfigs(int index) { return upgradeConfigs_.get(index); } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfigOrBuilder getUpgradeConfigsOrBuilder( int index) { return upgradeConfigs_.get(index); } public static final int INTERNAL_REDIRECT_POLICY_FIELD_NUMBER = 34; private io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy internalRedirectPolicy_; /** *
   * If present, Envoy will try to follow an upstream redirect response instead of proxying the
   * response back to the downstream. An upstream redirect response is defined
   * by :ref:`redirect_response_codes
   * <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
   * 
* * .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34; * @return Whether the internalRedirectPolicy field is set. */ @java.lang.Override public boolean hasInternalRedirectPolicy() { return internalRedirectPolicy_ != null; } /** *
   * If present, Envoy will try to follow an upstream redirect response instead of proxying the
   * response back to the downstream. An upstream redirect response is defined
   * by :ref:`redirect_response_codes
   * <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
   * 
* * .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34; * @return The internalRedirectPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy getInternalRedirectPolicy() { return internalRedirectPolicy_ == null ? io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy.getDefaultInstance() : internalRedirectPolicy_; } /** *
   * If present, Envoy will try to follow an upstream redirect response instead of proxying the
   * response back to the downstream. An upstream redirect response is defined
   * by :ref:`redirect_response_codes
   * <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
   * 
* * .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicyOrBuilder getInternalRedirectPolicyOrBuilder() { return getInternalRedirectPolicy(); } public static final int INTERNAL_REDIRECT_ACTION_FIELD_NUMBER = 26; private int internalRedirectAction_; /** * .envoy.config.route.v3.RouteAction.InternalRedirectAction internal_redirect_action = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.internal_redirect_action is deprecated. * See envoy/config/route/v3/route_components.proto;l=1359 * @return The enum numeric value on the wire for internalRedirectAction. */ @java.lang.Override @java.lang.Deprecated public int getInternalRedirectActionValue() { return internalRedirectAction_; } /** * .envoy.config.route.v3.RouteAction.InternalRedirectAction internal_redirect_action = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.internal_redirect_action is deprecated. * See envoy/config/route/v3/route_components.proto;l=1359 * @return The internalRedirectAction. */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.route.v3.RouteAction.InternalRedirectAction getInternalRedirectAction() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.route.v3.RouteAction.InternalRedirectAction result = io.envoyproxy.envoy.config.route.v3.RouteAction.InternalRedirectAction.valueOf(internalRedirectAction_); return result == null ? io.envoyproxy.envoy.config.route.v3.RouteAction.InternalRedirectAction.UNRECOGNIZED : result; } public static final int MAX_INTERNAL_REDIRECTS_FIELD_NUMBER = 31; private com.google.protobuf.UInt32Value maxInternalRedirects_; /** *
   * An internal redirect is handled, iff the number of previous internal redirects that a
   * downstream request has encountered is lower than this value, and
   * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
   * is set to :ref:`HANDLE_INTERNAL_REDIRECT
   * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
   * In the case where a downstream request is bounced among multiple routes by internal redirect,
   * the first route that hits this threshold, or has
   * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
   * set to
   * :ref:`PASS_THROUGH_INTERNAL_REDIRECT
   * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
   * will pass the redirect back to downstream.
   * If not specified, at most one redirect will be followed.
   * 
* * .google.protobuf.UInt32Value max_internal_redirects = 31 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.max_internal_redirects is deprecated. * See envoy/config/route/v3/route_components.proto;l=1376 * @return Whether the maxInternalRedirects field is set. */ @java.lang.Override @java.lang.Deprecated public boolean hasMaxInternalRedirects() { return maxInternalRedirects_ != null; } /** *
   * An internal redirect is handled, iff the number of previous internal redirects that a
   * downstream request has encountered is lower than this value, and
   * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
   * is set to :ref:`HANDLE_INTERNAL_REDIRECT
   * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
   * In the case where a downstream request is bounced among multiple routes by internal redirect,
   * the first route that hits this threshold, or has
   * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
   * set to
   * :ref:`PASS_THROUGH_INTERNAL_REDIRECT
   * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
   * will pass the redirect back to downstream.
   * If not specified, at most one redirect will be followed.
   * 
* * .google.protobuf.UInt32Value max_internal_redirects = 31 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.max_internal_redirects is deprecated. * See envoy/config/route/v3/route_components.proto;l=1376 * @return The maxInternalRedirects. */ @java.lang.Override @java.lang.Deprecated public com.google.protobuf.UInt32Value getMaxInternalRedirects() { return maxInternalRedirects_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : maxInternalRedirects_; } /** *
   * An internal redirect is handled, iff the number of previous internal redirects that a
   * downstream request has encountered is lower than this value, and
   * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
   * is set to :ref:`HANDLE_INTERNAL_REDIRECT
   * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
   * In the case where a downstream request is bounced among multiple routes by internal redirect,
   * the first route that hits this threshold, or has
   * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
   * set to
   * :ref:`PASS_THROUGH_INTERNAL_REDIRECT
   * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
   * will pass the redirect back to downstream.
   * If not specified, at most one redirect will be followed.
   * 
* * .google.protobuf.UInt32Value max_internal_redirects = 31 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Override @java.lang.Deprecated public com.google.protobuf.UInt32ValueOrBuilder getMaxInternalRedirectsOrBuilder() { return getMaxInternalRedirects(); } public static final int HEDGE_POLICY_FIELD_NUMBER = 27; private io.envoyproxy.envoy.config.route.v3.HedgePolicy hedgePolicy_; /** *
   * Indicates that the route has a hedge policy. Note that if this is set,
   * it'll take precedence over the virtual host level hedge policy entirely
   * (e.g.: policies are not merged, most internal one becomes the enforced policy).
   * 
* * .envoy.config.route.v3.HedgePolicy hedge_policy = 27; * @return Whether the hedgePolicy field is set. */ @java.lang.Override public boolean hasHedgePolicy() { return hedgePolicy_ != null; } /** *
   * Indicates that the route has a hedge policy. Note that if this is set,
   * it'll take precedence over the virtual host level hedge policy entirely
   * (e.g.: policies are not merged, most internal one becomes the enforced policy).
   * 
* * .envoy.config.route.v3.HedgePolicy hedge_policy = 27; * @return The hedgePolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.HedgePolicy getHedgePolicy() { return hedgePolicy_ == null ? io.envoyproxy.envoy.config.route.v3.HedgePolicy.getDefaultInstance() : hedgePolicy_; } /** *
   * Indicates that the route has a hedge policy. Note that if this is set,
   * it'll take precedence over the virtual host level hedge policy entirely
   * (e.g.: policies are not merged, most internal one becomes the enforced policy).
   * 
* * .envoy.config.route.v3.HedgePolicy hedge_policy = 27; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.HedgePolicyOrBuilder getHedgePolicyOrBuilder() { return getHedgePolicy(); } public static final int MAX_STREAM_DURATION_FIELD_NUMBER = 36; private io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration maxStreamDuration_; /** *
   * Specifies the maximum stream duration for this route.
   * 
* * .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36; * @return Whether the maxStreamDuration field is set. */ @java.lang.Override public boolean hasMaxStreamDuration() { return maxStreamDuration_ != null; } /** *
   * Specifies the maximum stream duration for this route.
   * 
* * .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36; * @return The maxStreamDuration. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration getMaxStreamDuration() { return maxStreamDuration_ == null ? io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.getDefaultInstance() : maxStreamDuration_; } /** *
   * Specifies the maximum stream duration for this route.
   * 
* * .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDurationOrBuilder getMaxStreamDurationOrBuilder() { return getMaxStreamDuration(); } 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 (clusterSpecifierCase_ == 1) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterSpecifier_); } if (clusterSpecifierCase_ == 2) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, clusterSpecifier_); } if (clusterSpecifierCase_ == 3) { output.writeMessage(3, (io.envoyproxy.envoy.config.route.v3.WeightedCluster) clusterSpecifier_); } if (metadataMatch_ != null) { output.writeMessage(4, getMetadataMatch()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(prefixRewrite_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 5, prefixRewrite_); } if (hostRewriteSpecifierCase_ == 6) { com.google.protobuf.GeneratedMessageV3.writeString(output, 6, hostRewriteSpecifier_); } if (hostRewriteSpecifierCase_ == 7) { output.writeMessage(7, (com.google.protobuf.BoolValue) hostRewriteSpecifier_); } if (timeout_ != null) { output.writeMessage(8, getTimeout()); } if (retryPolicy_ != null) { output.writeMessage(9, getRetryPolicy()); } if (priority_ != io.envoyproxy.envoy.config.core.v3.RoutingPriority.DEFAULT.getNumber()) { output.writeEnum(11, priority_); } for (int i = 0; i < rateLimits_.size(); i++) { output.writeMessage(13, rateLimits_.get(i)); } if (includeVhRateLimits_ != null) { output.writeMessage(14, getIncludeVhRateLimits()); } for (int i = 0; i < hashPolicy_.size(); i++) { output.writeMessage(15, hashPolicy_.get(i)); } if (cors_ != null) { output.writeMessage(17, getCors()); } if (clusterNotFoundResponseCode_ != io.envoyproxy.envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode.SERVICE_UNAVAILABLE.getNumber()) { output.writeEnum(20, clusterNotFoundResponseCode_); } if (maxGrpcTimeout_ != null) { output.writeMessage(23, getMaxGrpcTimeout()); } if (idleTimeout_ != null) { output.writeMessage(24, getIdleTimeout()); } for (int i = 0; i < upgradeConfigs_.size(); i++) { output.writeMessage(25, upgradeConfigs_.get(i)); } if (internalRedirectAction_ != io.envoyproxy.envoy.config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT.getNumber()) { output.writeEnum(26, internalRedirectAction_); } if (hedgePolicy_ != null) { output.writeMessage(27, getHedgePolicy()); } if (grpcTimeoutOffset_ != null) { output.writeMessage(28, getGrpcTimeoutOffset()); } if (hostRewriteSpecifierCase_ == 29) { com.google.protobuf.GeneratedMessageV3.writeString(output, 29, hostRewriteSpecifier_); } for (int i = 0; i < requestMirrorPolicies_.size(); i++) { output.writeMessage(30, requestMirrorPolicies_.get(i)); } if (maxInternalRedirects_ != null) { output.writeMessage(31, getMaxInternalRedirects()); } if (regexRewrite_ != null) { output.writeMessage(32, getRegexRewrite()); } if (retryPolicyTypedConfig_ != null) { output.writeMessage(33, getRetryPolicyTypedConfig()); } if (internalRedirectPolicy_ != null) { output.writeMessage(34, getInternalRedirectPolicy()); } if (hostRewriteSpecifierCase_ == 35) { output.writeMessage(35, (io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute) hostRewriteSpecifier_); } if (maxStreamDuration_ != null) { output.writeMessage(36, getMaxStreamDuration()); } if (clusterSpecifierCase_ == 37) { com.google.protobuf.GeneratedMessageV3.writeString(output, 37, clusterSpecifier_); } if (appendXForwardedHost_ != false) { output.writeBool(38, appendXForwardedHost_); } if (clusterSpecifierCase_ == 39) { output.writeMessage(39, (io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin) clusterSpecifier_); } if (earlyDataPolicy_ != null) { output.writeMessage(40, getEarlyDataPolicy()); } if (pathRewritePolicy_ != null) { output.writeMessage(41, getPathRewritePolicy()); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (clusterSpecifierCase_ == 1) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clusterSpecifier_); } if (clusterSpecifierCase_ == 2) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, clusterSpecifier_); } if (clusterSpecifierCase_ == 3) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, (io.envoyproxy.envoy.config.route.v3.WeightedCluster) clusterSpecifier_); } if (metadataMatch_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getMetadataMatch()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(prefixRewrite_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, prefixRewrite_); } if (hostRewriteSpecifierCase_ == 6) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, hostRewriteSpecifier_); } if (hostRewriteSpecifierCase_ == 7) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(7, (com.google.protobuf.BoolValue) hostRewriteSpecifier_); } if (timeout_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(8, getTimeout()); } if (retryPolicy_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(9, getRetryPolicy()); } if (priority_ != io.envoyproxy.envoy.config.core.v3.RoutingPriority.DEFAULT.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(11, priority_); } for (int i = 0; i < rateLimits_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(13, rateLimits_.get(i)); } if (includeVhRateLimits_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(14, getIncludeVhRateLimits()); } for (int i = 0; i < hashPolicy_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(15, hashPolicy_.get(i)); } if (cors_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(17, getCors()); } if (clusterNotFoundResponseCode_ != io.envoyproxy.envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode.SERVICE_UNAVAILABLE.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(20, clusterNotFoundResponseCode_); } if (maxGrpcTimeout_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(23, getMaxGrpcTimeout()); } if (idleTimeout_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(24, getIdleTimeout()); } for (int i = 0; i < upgradeConfigs_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(25, upgradeConfigs_.get(i)); } if (internalRedirectAction_ != io.envoyproxy.envoy.config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(26, internalRedirectAction_); } if (hedgePolicy_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(27, getHedgePolicy()); } if (grpcTimeoutOffset_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(28, getGrpcTimeoutOffset()); } if (hostRewriteSpecifierCase_ == 29) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(29, hostRewriteSpecifier_); } for (int i = 0; i < requestMirrorPolicies_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(30, requestMirrorPolicies_.get(i)); } if (maxInternalRedirects_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(31, getMaxInternalRedirects()); } if (regexRewrite_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(32, getRegexRewrite()); } if (retryPolicyTypedConfig_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(33, getRetryPolicyTypedConfig()); } if (internalRedirectPolicy_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(34, getInternalRedirectPolicy()); } if (hostRewriteSpecifierCase_ == 35) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(35, (io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute) hostRewriteSpecifier_); } if (maxStreamDuration_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(36, getMaxStreamDuration()); } if (clusterSpecifierCase_ == 37) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(37, clusterSpecifier_); } if (appendXForwardedHost_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(38, appendXForwardedHost_); } if (clusterSpecifierCase_ == 39) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(39, (io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin) clusterSpecifier_); } if (earlyDataPolicy_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(40, getEarlyDataPolicy()); } if (pathRewritePolicy_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(41, getPathRewritePolicy()); } 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.route.v3.RouteAction)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteAction other = (io.envoyproxy.envoy.config.route.v3.RouteAction) obj; if (clusterNotFoundResponseCode_ != other.clusterNotFoundResponseCode_) return false; if (hasMetadataMatch() != other.hasMetadataMatch()) return false; if (hasMetadataMatch()) { if (!getMetadataMatch() .equals(other.getMetadataMatch())) return false; } if (!getPrefixRewrite() .equals(other.getPrefixRewrite())) return false; if (hasRegexRewrite() != other.hasRegexRewrite()) return false; if (hasRegexRewrite()) { if (!getRegexRewrite() .equals(other.getRegexRewrite())) return false; } if (hasPathRewritePolicy() != other.hasPathRewritePolicy()) return false; if (hasPathRewritePolicy()) { if (!getPathRewritePolicy() .equals(other.getPathRewritePolicy())) return false; } if (getAppendXForwardedHost() != other.getAppendXForwardedHost()) return false; if (hasTimeout() != other.hasTimeout()) return false; if (hasTimeout()) { if (!getTimeout() .equals(other.getTimeout())) return false; } if (hasIdleTimeout() != other.hasIdleTimeout()) return false; if (hasIdleTimeout()) { if (!getIdleTimeout() .equals(other.getIdleTimeout())) return false; } if (hasEarlyDataPolicy() != other.hasEarlyDataPolicy()) return false; if (hasEarlyDataPolicy()) { if (!getEarlyDataPolicy() .equals(other.getEarlyDataPolicy())) return false; } if (hasRetryPolicy() != other.hasRetryPolicy()) return false; if (hasRetryPolicy()) { if (!getRetryPolicy() .equals(other.getRetryPolicy())) return false; } if (hasRetryPolicyTypedConfig() != other.hasRetryPolicyTypedConfig()) return false; if (hasRetryPolicyTypedConfig()) { if (!getRetryPolicyTypedConfig() .equals(other.getRetryPolicyTypedConfig())) return false; } if (!getRequestMirrorPoliciesList() .equals(other.getRequestMirrorPoliciesList())) return false; if (priority_ != other.priority_) return false; if (!getRateLimitsList() .equals(other.getRateLimitsList())) return false; if (hasIncludeVhRateLimits() != other.hasIncludeVhRateLimits()) return false; if (hasIncludeVhRateLimits()) { if (!getIncludeVhRateLimits() .equals(other.getIncludeVhRateLimits())) return false; } if (!getHashPolicyList() .equals(other.getHashPolicyList())) return false; if (hasCors() != other.hasCors()) return false; if (hasCors()) { if (!getCors() .equals(other.getCors())) return false; } if (hasMaxGrpcTimeout() != other.hasMaxGrpcTimeout()) return false; if (hasMaxGrpcTimeout()) { if (!getMaxGrpcTimeout() .equals(other.getMaxGrpcTimeout())) return false; } if (hasGrpcTimeoutOffset() != other.hasGrpcTimeoutOffset()) return false; if (hasGrpcTimeoutOffset()) { if (!getGrpcTimeoutOffset() .equals(other.getGrpcTimeoutOffset())) return false; } if (!getUpgradeConfigsList() .equals(other.getUpgradeConfigsList())) return false; if (hasInternalRedirectPolicy() != other.hasInternalRedirectPolicy()) return false; if (hasInternalRedirectPolicy()) { if (!getInternalRedirectPolicy() .equals(other.getInternalRedirectPolicy())) return false; } if (internalRedirectAction_ != other.internalRedirectAction_) return false; if (hasMaxInternalRedirects() != other.hasMaxInternalRedirects()) return false; if (hasMaxInternalRedirects()) { if (!getMaxInternalRedirects() .equals(other.getMaxInternalRedirects())) return false; } if (hasHedgePolicy() != other.hasHedgePolicy()) return false; if (hasHedgePolicy()) { if (!getHedgePolicy() .equals(other.getHedgePolicy())) return false; } if (hasMaxStreamDuration() != other.hasMaxStreamDuration()) return false; if (hasMaxStreamDuration()) { if (!getMaxStreamDuration() .equals(other.getMaxStreamDuration())) return false; } if (!getClusterSpecifierCase().equals(other.getClusterSpecifierCase())) return false; switch (clusterSpecifierCase_) { case 1: if (!getCluster() .equals(other.getCluster())) return false; break; case 2: if (!getClusterHeader() .equals(other.getClusterHeader())) return false; break; case 3: if (!getWeightedClusters() .equals(other.getWeightedClusters())) return false; break; case 37: if (!getClusterSpecifierPlugin() .equals(other.getClusterSpecifierPlugin())) return false; break; case 39: if (!getInlineClusterSpecifierPlugin() .equals(other.getInlineClusterSpecifierPlugin())) return false; break; case 0: default: } if (!getHostRewriteSpecifierCase().equals(other.getHostRewriteSpecifierCase())) return false; switch (hostRewriteSpecifierCase_) { case 6: if (!getHostRewriteLiteral() .equals(other.getHostRewriteLiteral())) return false; break; case 7: if (!getAutoHostRewrite() .equals(other.getAutoHostRewrite())) return false; break; case 29: if (!getHostRewriteHeader() .equals(other.getHostRewriteHeader())) return false; break; case 35: if (!getHostRewritePathRegex() .equals(other.getHostRewritePathRegex())) 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(); hash = (37 * hash) + CLUSTER_NOT_FOUND_RESPONSE_CODE_FIELD_NUMBER; hash = (53 * hash) + clusterNotFoundResponseCode_; if (hasMetadataMatch()) { hash = (37 * hash) + METADATA_MATCH_FIELD_NUMBER; hash = (53 * hash) + getMetadataMatch().hashCode(); } hash = (37 * hash) + PREFIX_REWRITE_FIELD_NUMBER; hash = (53 * hash) + getPrefixRewrite().hashCode(); if (hasRegexRewrite()) { hash = (37 * hash) + REGEX_REWRITE_FIELD_NUMBER; hash = (53 * hash) + getRegexRewrite().hashCode(); } if (hasPathRewritePolicy()) { hash = (37 * hash) + PATH_REWRITE_POLICY_FIELD_NUMBER; hash = (53 * hash) + getPathRewritePolicy().hashCode(); } hash = (37 * hash) + APPEND_X_FORWARDED_HOST_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getAppendXForwardedHost()); if (hasTimeout()) { hash = (37 * hash) + TIMEOUT_FIELD_NUMBER; hash = (53 * hash) + getTimeout().hashCode(); } if (hasIdleTimeout()) { hash = (37 * hash) + IDLE_TIMEOUT_FIELD_NUMBER; hash = (53 * hash) + getIdleTimeout().hashCode(); } if (hasEarlyDataPolicy()) { hash = (37 * hash) + EARLY_DATA_POLICY_FIELD_NUMBER; hash = (53 * hash) + getEarlyDataPolicy().hashCode(); } if (hasRetryPolicy()) { hash = (37 * hash) + RETRY_POLICY_FIELD_NUMBER; hash = (53 * hash) + getRetryPolicy().hashCode(); } if (hasRetryPolicyTypedConfig()) { hash = (37 * hash) + RETRY_POLICY_TYPED_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getRetryPolicyTypedConfig().hashCode(); } if (getRequestMirrorPoliciesCount() > 0) { hash = (37 * hash) + REQUEST_MIRROR_POLICIES_FIELD_NUMBER; hash = (53 * hash) + getRequestMirrorPoliciesList().hashCode(); } hash = (37 * hash) + PRIORITY_FIELD_NUMBER; hash = (53 * hash) + priority_; if (getRateLimitsCount() > 0) { hash = (37 * hash) + RATE_LIMITS_FIELD_NUMBER; hash = (53 * hash) + getRateLimitsList().hashCode(); } if (hasIncludeVhRateLimits()) { hash = (37 * hash) + INCLUDE_VH_RATE_LIMITS_FIELD_NUMBER; hash = (53 * hash) + getIncludeVhRateLimits().hashCode(); } if (getHashPolicyCount() > 0) { hash = (37 * hash) + HASH_POLICY_FIELD_NUMBER; hash = (53 * hash) + getHashPolicyList().hashCode(); } if (hasCors()) { hash = (37 * hash) + CORS_FIELD_NUMBER; hash = (53 * hash) + getCors().hashCode(); } if (hasMaxGrpcTimeout()) { hash = (37 * hash) + MAX_GRPC_TIMEOUT_FIELD_NUMBER; hash = (53 * hash) + getMaxGrpcTimeout().hashCode(); } if (hasGrpcTimeoutOffset()) { hash = (37 * hash) + GRPC_TIMEOUT_OFFSET_FIELD_NUMBER; hash = (53 * hash) + getGrpcTimeoutOffset().hashCode(); } if (getUpgradeConfigsCount() > 0) { hash = (37 * hash) + UPGRADE_CONFIGS_FIELD_NUMBER; hash = (53 * hash) + getUpgradeConfigsList().hashCode(); } if (hasInternalRedirectPolicy()) { hash = (37 * hash) + INTERNAL_REDIRECT_POLICY_FIELD_NUMBER; hash = (53 * hash) + getInternalRedirectPolicy().hashCode(); } hash = (37 * hash) + INTERNAL_REDIRECT_ACTION_FIELD_NUMBER; hash = (53 * hash) + internalRedirectAction_; if (hasMaxInternalRedirects()) { hash = (37 * hash) + MAX_INTERNAL_REDIRECTS_FIELD_NUMBER; hash = (53 * hash) + getMaxInternalRedirects().hashCode(); } if (hasHedgePolicy()) { hash = (37 * hash) + HEDGE_POLICY_FIELD_NUMBER; hash = (53 * hash) + getHedgePolicy().hashCode(); } if (hasMaxStreamDuration()) { hash = (37 * hash) + MAX_STREAM_DURATION_FIELD_NUMBER; hash = (53 * hash) + getMaxStreamDuration().hashCode(); } switch (clusterSpecifierCase_) { case 1: hash = (37 * hash) + CLUSTER_FIELD_NUMBER; hash = (53 * hash) + getCluster().hashCode(); break; case 2: hash = (37 * hash) + CLUSTER_HEADER_FIELD_NUMBER; hash = (53 * hash) + getClusterHeader().hashCode(); break; case 3: hash = (37 * hash) + WEIGHTED_CLUSTERS_FIELD_NUMBER; hash = (53 * hash) + getWeightedClusters().hashCode(); break; case 37: hash = (37 * hash) + CLUSTER_SPECIFIER_PLUGIN_FIELD_NUMBER; hash = (53 * hash) + getClusterSpecifierPlugin().hashCode(); break; case 39: hash = (37 * hash) + INLINE_CLUSTER_SPECIFIER_PLUGIN_FIELD_NUMBER; hash = (53 * hash) + getInlineClusterSpecifierPlugin().hashCode(); break; case 0: default: } switch (hostRewriteSpecifierCase_) { case 6: hash = (37 * hash) + HOST_REWRITE_LITERAL_FIELD_NUMBER; hash = (53 * hash) + getHostRewriteLiteral().hashCode(); break; case 7: hash = (37 * hash) + AUTO_HOST_REWRITE_FIELD_NUMBER; hash = (53 * hash) + getAutoHostRewrite().hashCode(); break; case 29: hash = (37 * hash) + HOST_REWRITE_HEADER_FIELD_NUMBER; hash = (53 * hash) + getHostRewriteHeader().hashCode(); break; case 35: hash = (37 * hash) + HOST_REWRITE_PATH_REGEX_FIELD_NUMBER; hash = (53 * hash) + getHostRewritePathRegex().hashCode(); break; case 0: default: } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteAction parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction 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.route.v3.RouteAction parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction 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.route.v3.RouteAction parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteAction parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.envoyproxy.envoy.config.route.v3.RouteAction parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction 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.route.v3.RouteAction parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction 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.route.v3.RouteAction parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.envoyproxy.envoy.config.route.v3.RouteAction 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.route.v3.RouteAction 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; } /** *
   * [#next-free-field: 42]
   * 
* * Protobuf type {@code envoy.config.route.v3.RouteAction} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteAction) io.envoyproxy.envoy.config.route.v3.RouteActionOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteAction.class, io.envoyproxy.envoy.config.route.v3.RouteAction.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteAction.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getRequestMirrorPoliciesFieldBuilder(); getRateLimitsFieldBuilder(); getHashPolicyFieldBuilder(); getUpgradeConfigsFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); clusterNotFoundResponseCode_ = 0; if (metadataMatchBuilder_ == null) { metadataMatch_ = null; } else { metadataMatch_ = null; metadataMatchBuilder_ = null; } prefixRewrite_ = ""; if (regexRewriteBuilder_ == null) { regexRewrite_ = null; } else { regexRewrite_ = null; regexRewriteBuilder_ = null; } if (pathRewritePolicyBuilder_ == null) { pathRewritePolicy_ = null; } else { pathRewritePolicy_ = null; pathRewritePolicyBuilder_ = null; } appendXForwardedHost_ = false; if (timeoutBuilder_ == null) { timeout_ = null; } else { timeout_ = null; timeoutBuilder_ = null; } if (idleTimeoutBuilder_ == null) { idleTimeout_ = null; } else { idleTimeout_ = null; idleTimeoutBuilder_ = null; } if (earlyDataPolicyBuilder_ == null) { earlyDataPolicy_ = null; } else { earlyDataPolicy_ = null; earlyDataPolicyBuilder_ = null; } if (retryPolicyBuilder_ == null) { retryPolicy_ = null; } else { retryPolicy_ = null; retryPolicyBuilder_ = null; } if (retryPolicyTypedConfigBuilder_ == null) { retryPolicyTypedConfig_ = null; } else { retryPolicyTypedConfig_ = null; retryPolicyTypedConfigBuilder_ = null; } if (requestMirrorPoliciesBuilder_ == null) { requestMirrorPolicies_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); } else { requestMirrorPoliciesBuilder_.clear(); } priority_ = 0; if (rateLimitsBuilder_ == null) { rateLimits_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000002); } else { rateLimitsBuilder_.clear(); } if (includeVhRateLimitsBuilder_ == null) { includeVhRateLimits_ = null; } else { includeVhRateLimits_ = null; includeVhRateLimitsBuilder_ = null; } if (hashPolicyBuilder_ == null) { hashPolicy_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000004); } else { hashPolicyBuilder_.clear(); } if (corsBuilder_ == null) { cors_ = null; } else { cors_ = null; corsBuilder_ = null; } if (maxGrpcTimeoutBuilder_ == null) { maxGrpcTimeout_ = null; } else { maxGrpcTimeout_ = null; maxGrpcTimeoutBuilder_ = null; } if (grpcTimeoutOffsetBuilder_ == null) { grpcTimeoutOffset_ = null; } else { grpcTimeoutOffset_ = null; grpcTimeoutOffsetBuilder_ = null; } if (upgradeConfigsBuilder_ == null) { upgradeConfigs_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000008); } else { upgradeConfigsBuilder_.clear(); } if (internalRedirectPolicyBuilder_ == null) { internalRedirectPolicy_ = null; } else { internalRedirectPolicy_ = null; internalRedirectPolicyBuilder_ = null; } internalRedirectAction_ = 0; if (maxInternalRedirectsBuilder_ == null) { maxInternalRedirects_ = null; } else { maxInternalRedirects_ = null; maxInternalRedirectsBuilder_ = null; } if (hedgePolicyBuilder_ == null) { hedgePolicy_ = null; } else { hedgePolicy_ = null; hedgePolicyBuilder_ = null; } if (maxStreamDurationBuilder_ == null) { maxStreamDuration_ = null; } else { maxStreamDuration_ = null; maxStreamDurationBuilder_ = null; } clusterSpecifierCase_ = 0; clusterSpecifier_ = null; hostRewriteSpecifierCase_ = 0; hostRewriteSpecifier_ = null; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteAction_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteAction.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction build() { io.envoyproxy.envoy.config.route.v3.RouteAction result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteAction result = new io.envoyproxy.envoy.config.route.v3.RouteAction(this); int from_bitField0_ = bitField0_; if (clusterSpecifierCase_ == 1) { result.clusterSpecifier_ = clusterSpecifier_; } if (clusterSpecifierCase_ == 2) { result.clusterSpecifier_ = clusterSpecifier_; } if (clusterSpecifierCase_ == 3) { if (weightedClustersBuilder_ == null) { result.clusterSpecifier_ = clusterSpecifier_; } else { result.clusterSpecifier_ = weightedClustersBuilder_.build(); } } if (clusterSpecifierCase_ == 37) { result.clusterSpecifier_ = clusterSpecifier_; } if (clusterSpecifierCase_ == 39) { if (inlineClusterSpecifierPluginBuilder_ == null) { result.clusterSpecifier_ = clusterSpecifier_; } else { result.clusterSpecifier_ = inlineClusterSpecifierPluginBuilder_.build(); } } result.clusterNotFoundResponseCode_ = clusterNotFoundResponseCode_; if (metadataMatchBuilder_ == null) { result.metadataMatch_ = metadataMatch_; } else { result.metadataMatch_ = metadataMatchBuilder_.build(); } result.prefixRewrite_ = prefixRewrite_; if (regexRewriteBuilder_ == null) { result.regexRewrite_ = regexRewrite_; } else { result.regexRewrite_ = regexRewriteBuilder_.build(); } if (pathRewritePolicyBuilder_ == null) { result.pathRewritePolicy_ = pathRewritePolicy_; } else { result.pathRewritePolicy_ = pathRewritePolicyBuilder_.build(); } if (hostRewriteSpecifierCase_ == 6) { result.hostRewriteSpecifier_ = hostRewriteSpecifier_; } if (hostRewriteSpecifierCase_ == 7) { if (autoHostRewriteBuilder_ == null) { result.hostRewriteSpecifier_ = hostRewriteSpecifier_; } else { result.hostRewriteSpecifier_ = autoHostRewriteBuilder_.build(); } } if (hostRewriteSpecifierCase_ == 29) { result.hostRewriteSpecifier_ = hostRewriteSpecifier_; } if (hostRewriteSpecifierCase_ == 35) { if (hostRewritePathRegexBuilder_ == null) { result.hostRewriteSpecifier_ = hostRewriteSpecifier_; } else { result.hostRewriteSpecifier_ = hostRewritePathRegexBuilder_.build(); } } result.appendXForwardedHost_ = appendXForwardedHost_; if (timeoutBuilder_ == null) { result.timeout_ = timeout_; } else { result.timeout_ = timeoutBuilder_.build(); } if (idleTimeoutBuilder_ == null) { result.idleTimeout_ = idleTimeout_; } else { result.idleTimeout_ = idleTimeoutBuilder_.build(); } if (earlyDataPolicyBuilder_ == null) { result.earlyDataPolicy_ = earlyDataPolicy_; } else { result.earlyDataPolicy_ = earlyDataPolicyBuilder_.build(); } if (retryPolicyBuilder_ == null) { result.retryPolicy_ = retryPolicy_; } else { result.retryPolicy_ = retryPolicyBuilder_.build(); } if (retryPolicyTypedConfigBuilder_ == null) { result.retryPolicyTypedConfig_ = retryPolicyTypedConfig_; } else { result.retryPolicyTypedConfig_ = retryPolicyTypedConfigBuilder_.build(); } if (requestMirrorPoliciesBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { requestMirrorPolicies_ = java.util.Collections.unmodifiableList(requestMirrorPolicies_); bitField0_ = (bitField0_ & ~0x00000001); } result.requestMirrorPolicies_ = requestMirrorPolicies_; } else { result.requestMirrorPolicies_ = requestMirrorPoliciesBuilder_.build(); } result.priority_ = priority_; if (rateLimitsBuilder_ == null) { if (((bitField0_ & 0x00000002) != 0)) { rateLimits_ = java.util.Collections.unmodifiableList(rateLimits_); bitField0_ = (bitField0_ & ~0x00000002); } result.rateLimits_ = rateLimits_; } else { result.rateLimits_ = rateLimitsBuilder_.build(); } if (includeVhRateLimitsBuilder_ == null) { result.includeVhRateLimits_ = includeVhRateLimits_; } else { result.includeVhRateLimits_ = includeVhRateLimitsBuilder_.build(); } if (hashPolicyBuilder_ == null) { if (((bitField0_ & 0x00000004) != 0)) { hashPolicy_ = java.util.Collections.unmodifiableList(hashPolicy_); bitField0_ = (bitField0_ & ~0x00000004); } result.hashPolicy_ = hashPolicy_; } else { result.hashPolicy_ = hashPolicyBuilder_.build(); } if (corsBuilder_ == null) { result.cors_ = cors_; } else { result.cors_ = corsBuilder_.build(); } if (maxGrpcTimeoutBuilder_ == null) { result.maxGrpcTimeout_ = maxGrpcTimeout_; } else { result.maxGrpcTimeout_ = maxGrpcTimeoutBuilder_.build(); } if (grpcTimeoutOffsetBuilder_ == null) { result.grpcTimeoutOffset_ = grpcTimeoutOffset_; } else { result.grpcTimeoutOffset_ = grpcTimeoutOffsetBuilder_.build(); } if (upgradeConfigsBuilder_ == null) { if (((bitField0_ & 0x00000008) != 0)) { upgradeConfigs_ = java.util.Collections.unmodifiableList(upgradeConfigs_); bitField0_ = (bitField0_ & ~0x00000008); } result.upgradeConfigs_ = upgradeConfigs_; } else { result.upgradeConfigs_ = upgradeConfigsBuilder_.build(); } if (internalRedirectPolicyBuilder_ == null) { result.internalRedirectPolicy_ = internalRedirectPolicy_; } else { result.internalRedirectPolicy_ = internalRedirectPolicyBuilder_.build(); } result.internalRedirectAction_ = internalRedirectAction_; if (maxInternalRedirectsBuilder_ == null) { result.maxInternalRedirects_ = maxInternalRedirects_; } else { result.maxInternalRedirects_ = maxInternalRedirectsBuilder_.build(); } if (hedgePolicyBuilder_ == null) { result.hedgePolicy_ = hedgePolicy_; } else { result.hedgePolicy_ = hedgePolicyBuilder_.build(); } if (maxStreamDurationBuilder_ == null) { result.maxStreamDuration_ = maxStreamDuration_; } else { result.maxStreamDuration_ = maxStreamDurationBuilder_.build(); } result.clusterSpecifierCase_ = clusterSpecifierCase_; result.hostRewriteSpecifierCase_ = hostRewriteSpecifierCase_; 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.route.v3.RouteAction) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteAction)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteAction other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteAction.getDefaultInstance()) return this; if (other.clusterNotFoundResponseCode_ != 0) { setClusterNotFoundResponseCodeValue(other.getClusterNotFoundResponseCodeValue()); } if (other.hasMetadataMatch()) { mergeMetadataMatch(other.getMetadataMatch()); } if (!other.getPrefixRewrite().isEmpty()) { prefixRewrite_ = other.prefixRewrite_; onChanged(); } if (other.hasRegexRewrite()) { mergeRegexRewrite(other.getRegexRewrite()); } if (other.hasPathRewritePolicy()) { mergePathRewritePolicy(other.getPathRewritePolicy()); } if (other.getAppendXForwardedHost() != false) { setAppendXForwardedHost(other.getAppendXForwardedHost()); } if (other.hasTimeout()) { mergeTimeout(other.getTimeout()); } if (other.hasIdleTimeout()) { mergeIdleTimeout(other.getIdleTimeout()); } if (other.hasEarlyDataPolicy()) { mergeEarlyDataPolicy(other.getEarlyDataPolicy()); } if (other.hasRetryPolicy()) { mergeRetryPolicy(other.getRetryPolicy()); } if (other.hasRetryPolicyTypedConfig()) { mergeRetryPolicyTypedConfig(other.getRetryPolicyTypedConfig()); } if (requestMirrorPoliciesBuilder_ == null) { if (!other.requestMirrorPolicies_.isEmpty()) { if (requestMirrorPolicies_.isEmpty()) { requestMirrorPolicies_ = other.requestMirrorPolicies_; bitField0_ = (bitField0_ & ~0x00000001); } else { ensureRequestMirrorPoliciesIsMutable(); requestMirrorPolicies_.addAll(other.requestMirrorPolicies_); } onChanged(); } } else { if (!other.requestMirrorPolicies_.isEmpty()) { if (requestMirrorPoliciesBuilder_.isEmpty()) { requestMirrorPoliciesBuilder_.dispose(); requestMirrorPoliciesBuilder_ = null; requestMirrorPolicies_ = other.requestMirrorPolicies_; bitField0_ = (bitField0_ & ~0x00000001); requestMirrorPoliciesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getRequestMirrorPoliciesFieldBuilder() : null; } else { requestMirrorPoliciesBuilder_.addAllMessages(other.requestMirrorPolicies_); } } } if (other.priority_ != 0) { setPriorityValue(other.getPriorityValue()); } if (rateLimitsBuilder_ == null) { if (!other.rateLimits_.isEmpty()) { if (rateLimits_.isEmpty()) { rateLimits_ = other.rateLimits_; bitField0_ = (bitField0_ & ~0x00000002); } else { ensureRateLimitsIsMutable(); rateLimits_.addAll(other.rateLimits_); } onChanged(); } } else { if (!other.rateLimits_.isEmpty()) { if (rateLimitsBuilder_.isEmpty()) { rateLimitsBuilder_.dispose(); rateLimitsBuilder_ = null; rateLimits_ = other.rateLimits_; bitField0_ = (bitField0_ & ~0x00000002); rateLimitsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getRateLimitsFieldBuilder() : null; } else { rateLimitsBuilder_.addAllMessages(other.rateLimits_); } } } if (other.hasIncludeVhRateLimits()) { mergeIncludeVhRateLimits(other.getIncludeVhRateLimits()); } if (hashPolicyBuilder_ == null) { if (!other.hashPolicy_.isEmpty()) { if (hashPolicy_.isEmpty()) { hashPolicy_ = other.hashPolicy_; bitField0_ = (bitField0_ & ~0x00000004); } else { ensureHashPolicyIsMutable(); hashPolicy_.addAll(other.hashPolicy_); } onChanged(); } } else { if (!other.hashPolicy_.isEmpty()) { if (hashPolicyBuilder_.isEmpty()) { hashPolicyBuilder_.dispose(); hashPolicyBuilder_ = null; hashPolicy_ = other.hashPolicy_; bitField0_ = (bitField0_ & ~0x00000004); hashPolicyBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getHashPolicyFieldBuilder() : null; } else { hashPolicyBuilder_.addAllMessages(other.hashPolicy_); } } } if (other.hasCors()) { mergeCors(other.getCors()); } if (other.hasMaxGrpcTimeout()) { mergeMaxGrpcTimeout(other.getMaxGrpcTimeout()); } if (other.hasGrpcTimeoutOffset()) { mergeGrpcTimeoutOffset(other.getGrpcTimeoutOffset()); } if (upgradeConfigsBuilder_ == null) { if (!other.upgradeConfigs_.isEmpty()) { if (upgradeConfigs_.isEmpty()) { upgradeConfigs_ = other.upgradeConfigs_; bitField0_ = (bitField0_ & ~0x00000008); } else { ensureUpgradeConfigsIsMutable(); upgradeConfigs_.addAll(other.upgradeConfigs_); } onChanged(); } } else { if (!other.upgradeConfigs_.isEmpty()) { if (upgradeConfigsBuilder_.isEmpty()) { upgradeConfigsBuilder_.dispose(); upgradeConfigsBuilder_ = null; upgradeConfigs_ = other.upgradeConfigs_; bitField0_ = (bitField0_ & ~0x00000008); upgradeConfigsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getUpgradeConfigsFieldBuilder() : null; } else { upgradeConfigsBuilder_.addAllMessages(other.upgradeConfigs_); } } } if (other.hasInternalRedirectPolicy()) { mergeInternalRedirectPolicy(other.getInternalRedirectPolicy()); } if (other.internalRedirectAction_ != 0) { setInternalRedirectActionValue(other.getInternalRedirectActionValue()); } if (other.hasMaxInternalRedirects()) { mergeMaxInternalRedirects(other.getMaxInternalRedirects()); } if (other.hasHedgePolicy()) { mergeHedgePolicy(other.getHedgePolicy()); } if (other.hasMaxStreamDuration()) { mergeMaxStreamDuration(other.getMaxStreamDuration()); } switch (other.getClusterSpecifierCase()) { case CLUSTER: { clusterSpecifierCase_ = 1; clusterSpecifier_ = other.clusterSpecifier_; onChanged(); break; } case CLUSTER_HEADER: { clusterSpecifierCase_ = 2; clusterSpecifier_ = other.clusterSpecifier_; onChanged(); break; } case WEIGHTED_CLUSTERS: { mergeWeightedClusters(other.getWeightedClusters()); break; } case CLUSTER_SPECIFIER_PLUGIN: { clusterSpecifierCase_ = 37; clusterSpecifier_ = other.clusterSpecifier_; onChanged(); break; } case INLINE_CLUSTER_SPECIFIER_PLUGIN: { mergeInlineClusterSpecifierPlugin(other.getInlineClusterSpecifierPlugin()); break; } case CLUSTERSPECIFIER_NOT_SET: { break; } } switch (other.getHostRewriteSpecifierCase()) { case HOST_REWRITE_LITERAL: { hostRewriteSpecifierCase_ = 6; hostRewriteSpecifier_ = other.hostRewriteSpecifier_; onChanged(); break; } case AUTO_HOST_REWRITE: { mergeAutoHostRewrite(other.getAutoHostRewrite()); break; } case HOST_REWRITE_HEADER: { hostRewriteSpecifierCase_ = 29; hostRewriteSpecifier_ = other.hostRewriteSpecifier_; onChanged(); break; } case HOST_REWRITE_PATH_REGEX: { mergeHostRewritePathRegex(other.getHostRewritePathRegex()); break; } case HOSTREWRITESPECIFIER_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.route.v3.RouteAction parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteAction) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int clusterSpecifierCase_ = 0; private java.lang.Object clusterSpecifier_; public ClusterSpecifierCase getClusterSpecifierCase() { return ClusterSpecifierCase.forNumber( clusterSpecifierCase_); } public Builder clearClusterSpecifier() { clusterSpecifierCase_ = 0; clusterSpecifier_ = null; onChanged(); return this; } private int hostRewriteSpecifierCase_ = 0; private java.lang.Object hostRewriteSpecifier_; public HostRewriteSpecifierCase getHostRewriteSpecifierCase() { return HostRewriteSpecifierCase.forNumber( hostRewriteSpecifierCase_); } public Builder clearHostRewriteSpecifier() { hostRewriteSpecifierCase_ = 0; hostRewriteSpecifier_ = null; onChanged(); return this; } private int bitField0_; /** *
     * Indicates the upstream cluster to which the request should be routed
     * to.
     * 
* * string cluster = 1 [(.validate.rules) = { ... } * @return Whether the cluster field is set. */ @java.lang.Override public boolean hasCluster() { return clusterSpecifierCase_ == 1; } /** *
     * Indicates the upstream cluster to which the request should be routed
     * to.
     * 
* * string cluster = 1 [(.validate.rules) = { ... } * @return The cluster. */ @java.lang.Override public java.lang.String getCluster() { java.lang.Object ref = ""; if (clusterSpecifierCase_ == 1) { ref = clusterSpecifier_; } if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (clusterSpecifierCase_ == 1) { clusterSpecifier_ = s; } return s; } else { return (java.lang.String) ref; } } /** *
     * Indicates the upstream cluster to which the request should be routed
     * to.
     * 
* * string cluster = 1 [(.validate.rules) = { ... } * @return The bytes for cluster. */ @java.lang.Override public com.google.protobuf.ByteString getClusterBytes() { java.lang.Object ref = ""; if (clusterSpecifierCase_ == 1) { ref = clusterSpecifier_; } if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (clusterSpecifierCase_ == 1) { clusterSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * Indicates the upstream cluster to which the request should be routed
     * to.
     * 
* * string cluster = 1 [(.validate.rules) = { ... } * @param value The cluster to set. * @return This builder for chaining. */ public Builder setCluster( java.lang.String value) { if (value == null) { throw new NullPointerException(); } clusterSpecifierCase_ = 1; clusterSpecifier_ = value; onChanged(); return this; } /** *
     * Indicates the upstream cluster to which the request should be routed
     * to.
     * 
* * string cluster = 1 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearCluster() { if (clusterSpecifierCase_ == 1) { clusterSpecifierCase_ = 0; clusterSpecifier_ = null; onChanged(); } return this; } /** *
     * Indicates the upstream cluster to which the request should be routed
     * to.
     * 
* * string cluster = 1 [(.validate.rules) = { ... } * @param value The bytes for cluster to set. * @return This builder for chaining. */ public Builder setClusterBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); clusterSpecifierCase_ = 1; clusterSpecifier_ = value; onChanged(); return this; } /** *
     * Envoy will determine the cluster to route to by reading the value of the
     * HTTP header named by cluster_header from the request headers. If the
     * header is not found or the referenced cluster does not exist, Envoy will
     * return a 404 response.
     * .. attention::
     *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
     *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string cluster_header = 2 [(.validate.rules) = { ... } * @return Whether the clusterHeader field is set. */ @java.lang.Override public boolean hasClusterHeader() { return clusterSpecifierCase_ == 2; } /** *
     * Envoy will determine the cluster to route to by reading the value of the
     * HTTP header named by cluster_header from the request headers. If the
     * header is not found or the referenced cluster does not exist, Envoy will
     * return a 404 response.
     * .. attention::
     *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
     *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string cluster_header = 2 [(.validate.rules) = { ... } * @return The clusterHeader. */ @java.lang.Override public java.lang.String getClusterHeader() { java.lang.Object ref = ""; if (clusterSpecifierCase_ == 2) { ref = clusterSpecifier_; } if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (clusterSpecifierCase_ == 2) { clusterSpecifier_ = s; } return s; } else { return (java.lang.String) ref; } } /** *
     * Envoy will determine the cluster to route to by reading the value of the
     * HTTP header named by cluster_header from the request headers. If the
     * header is not found or the referenced cluster does not exist, Envoy will
     * return a 404 response.
     * .. attention::
     *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
     *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string cluster_header = 2 [(.validate.rules) = { ... } * @return The bytes for clusterHeader. */ @java.lang.Override public com.google.protobuf.ByteString getClusterHeaderBytes() { java.lang.Object ref = ""; if (clusterSpecifierCase_ == 2) { ref = clusterSpecifier_; } if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (clusterSpecifierCase_ == 2) { clusterSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * Envoy will determine the cluster to route to by reading the value of the
     * HTTP header named by cluster_header from the request headers. If the
     * header is not found or the referenced cluster does not exist, Envoy will
     * return a 404 response.
     * .. attention::
     *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
     *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string cluster_header = 2 [(.validate.rules) = { ... } * @param value The clusterHeader to set. * @return This builder for chaining. */ public Builder setClusterHeader( java.lang.String value) { if (value == null) { throw new NullPointerException(); } clusterSpecifierCase_ = 2; clusterSpecifier_ = value; onChanged(); return this; } /** *
     * Envoy will determine the cluster to route to by reading the value of the
     * HTTP header named by cluster_header from the request headers. If the
     * header is not found or the referenced cluster does not exist, Envoy will
     * return a 404 response.
     * .. attention::
     *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
     *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string cluster_header = 2 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearClusterHeader() { if (clusterSpecifierCase_ == 2) { clusterSpecifierCase_ = 0; clusterSpecifier_ = null; onChanged(); } return this; } /** *
     * Envoy will determine the cluster to route to by reading the value of the
     * HTTP header named by cluster_header from the request headers. If the
     * header is not found or the referenced cluster does not exist, Envoy will
     * return a 404 response.
     * .. attention::
     *   Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
     *   ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string cluster_header = 2 [(.validate.rules) = { ... } * @param value The bytes for clusterHeader to set. * @return This builder for chaining. */ public Builder setClusterHeaderBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); clusterSpecifierCase_ = 2; clusterSpecifier_ = value; onChanged(); return this; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.WeightedCluster, io.envoyproxy.envoy.config.route.v3.WeightedCluster.Builder, io.envoyproxy.envoy.config.route.v3.WeightedClusterOrBuilder> weightedClustersBuilder_; /** *
     * Multiple upstream clusters can be specified for a given route. The
     * request is routed to one of the upstream clusters based on weights
     * assigned to each cluster. See
     * :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
     * for additional documentation.
     * 
* * .envoy.config.route.v3.WeightedCluster weighted_clusters = 3; * @return Whether the weightedClusters field is set. */ @java.lang.Override public boolean hasWeightedClusters() { return clusterSpecifierCase_ == 3; } /** *
     * Multiple upstream clusters can be specified for a given route. The
     * request is routed to one of the upstream clusters based on weights
     * assigned to each cluster. See
     * :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
     * for additional documentation.
     * 
* * .envoy.config.route.v3.WeightedCluster weighted_clusters = 3; * @return The weightedClusters. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.WeightedCluster getWeightedClusters() { if (weightedClustersBuilder_ == null) { if (clusterSpecifierCase_ == 3) { return (io.envoyproxy.envoy.config.route.v3.WeightedCluster) clusterSpecifier_; } return io.envoyproxy.envoy.config.route.v3.WeightedCluster.getDefaultInstance(); } else { if (clusterSpecifierCase_ == 3) { return weightedClustersBuilder_.getMessage(); } return io.envoyproxy.envoy.config.route.v3.WeightedCluster.getDefaultInstance(); } } /** *
     * Multiple upstream clusters can be specified for a given route. The
     * request is routed to one of the upstream clusters based on weights
     * assigned to each cluster. See
     * :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
     * for additional documentation.
     * 
* * .envoy.config.route.v3.WeightedCluster weighted_clusters = 3; */ public Builder setWeightedClusters(io.envoyproxy.envoy.config.route.v3.WeightedCluster value) { if (weightedClustersBuilder_ == null) { if (value == null) { throw new NullPointerException(); } clusterSpecifier_ = value; onChanged(); } else { weightedClustersBuilder_.setMessage(value); } clusterSpecifierCase_ = 3; return this; } /** *
     * Multiple upstream clusters can be specified for a given route. The
     * request is routed to one of the upstream clusters based on weights
     * assigned to each cluster. See
     * :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
     * for additional documentation.
     * 
* * .envoy.config.route.v3.WeightedCluster weighted_clusters = 3; */ public Builder setWeightedClusters( io.envoyproxy.envoy.config.route.v3.WeightedCluster.Builder builderForValue) { if (weightedClustersBuilder_ == null) { clusterSpecifier_ = builderForValue.build(); onChanged(); } else { weightedClustersBuilder_.setMessage(builderForValue.build()); } clusterSpecifierCase_ = 3; return this; } /** *
     * Multiple upstream clusters can be specified for a given route. The
     * request is routed to one of the upstream clusters based on weights
     * assigned to each cluster. See
     * :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
     * for additional documentation.
     * 
* * .envoy.config.route.v3.WeightedCluster weighted_clusters = 3; */ public Builder mergeWeightedClusters(io.envoyproxy.envoy.config.route.v3.WeightedCluster value) { if (weightedClustersBuilder_ == null) { if (clusterSpecifierCase_ == 3 && clusterSpecifier_ != io.envoyproxy.envoy.config.route.v3.WeightedCluster.getDefaultInstance()) { clusterSpecifier_ = io.envoyproxy.envoy.config.route.v3.WeightedCluster.newBuilder((io.envoyproxy.envoy.config.route.v3.WeightedCluster) clusterSpecifier_) .mergeFrom(value).buildPartial(); } else { clusterSpecifier_ = value; } onChanged(); } else { if (clusterSpecifierCase_ == 3) { weightedClustersBuilder_.mergeFrom(value); } else { weightedClustersBuilder_.setMessage(value); } } clusterSpecifierCase_ = 3; return this; } /** *
     * Multiple upstream clusters can be specified for a given route. The
     * request is routed to one of the upstream clusters based on weights
     * assigned to each cluster. See
     * :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
     * for additional documentation.
     * 
* * .envoy.config.route.v3.WeightedCluster weighted_clusters = 3; */ public Builder clearWeightedClusters() { if (weightedClustersBuilder_ == null) { if (clusterSpecifierCase_ == 3) { clusterSpecifierCase_ = 0; clusterSpecifier_ = null; onChanged(); } } else { if (clusterSpecifierCase_ == 3) { clusterSpecifierCase_ = 0; clusterSpecifier_ = null; } weightedClustersBuilder_.clear(); } return this; } /** *
     * Multiple upstream clusters can be specified for a given route. The
     * request is routed to one of the upstream clusters based on weights
     * assigned to each cluster. See
     * :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
     * for additional documentation.
     * 
* * .envoy.config.route.v3.WeightedCluster weighted_clusters = 3; */ public io.envoyproxy.envoy.config.route.v3.WeightedCluster.Builder getWeightedClustersBuilder() { return getWeightedClustersFieldBuilder().getBuilder(); } /** *
     * Multiple upstream clusters can be specified for a given route. The
     * request is routed to one of the upstream clusters based on weights
     * assigned to each cluster. See
     * :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
     * for additional documentation.
     * 
* * .envoy.config.route.v3.WeightedCluster weighted_clusters = 3; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.WeightedClusterOrBuilder getWeightedClustersOrBuilder() { if ((clusterSpecifierCase_ == 3) && (weightedClustersBuilder_ != null)) { return weightedClustersBuilder_.getMessageOrBuilder(); } else { if (clusterSpecifierCase_ == 3) { return (io.envoyproxy.envoy.config.route.v3.WeightedCluster) clusterSpecifier_; } return io.envoyproxy.envoy.config.route.v3.WeightedCluster.getDefaultInstance(); } } /** *
     * Multiple upstream clusters can be specified for a given route. The
     * request is routed to one of the upstream clusters based on weights
     * assigned to each cluster. See
     * :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
     * for additional documentation.
     * 
* * .envoy.config.route.v3.WeightedCluster weighted_clusters = 3; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.WeightedCluster, io.envoyproxy.envoy.config.route.v3.WeightedCluster.Builder, io.envoyproxy.envoy.config.route.v3.WeightedClusterOrBuilder> getWeightedClustersFieldBuilder() { if (weightedClustersBuilder_ == null) { if (!(clusterSpecifierCase_ == 3)) { clusterSpecifier_ = io.envoyproxy.envoy.config.route.v3.WeightedCluster.getDefaultInstance(); } weightedClustersBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.WeightedCluster, io.envoyproxy.envoy.config.route.v3.WeightedCluster.Builder, io.envoyproxy.envoy.config.route.v3.WeightedClusterOrBuilder>( (io.envoyproxy.envoy.config.route.v3.WeightedCluster) clusterSpecifier_, getParentForChildren(), isClean()); clusterSpecifier_ = null; } clusterSpecifierCase_ = 3; onChanged();; return weightedClustersBuilder_; } /** *
     * Name of the cluster specifier plugin to use to determine the cluster for requests on this route.
     * The cluster specifier plugin name must be defined in the associated
     * :ref:`cluster specifier plugins <envoy_v3_api_field_config.route.v3.RouteConfiguration.cluster_specifier_plugins>`
     * in the :ref:`name <envoy_v3_api_field_config.core.v3.TypedExtensionConfig.name>` field.
     * 
* * string cluster_specifier_plugin = 37; * @return Whether the clusterSpecifierPlugin field is set. */ @java.lang.Override public boolean hasClusterSpecifierPlugin() { return clusterSpecifierCase_ == 37; } /** *
     * Name of the cluster specifier plugin to use to determine the cluster for requests on this route.
     * The cluster specifier plugin name must be defined in the associated
     * :ref:`cluster specifier plugins <envoy_v3_api_field_config.route.v3.RouteConfiguration.cluster_specifier_plugins>`
     * in the :ref:`name <envoy_v3_api_field_config.core.v3.TypedExtensionConfig.name>` field.
     * 
* * string cluster_specifier_plugin = 37; * @return The clusterSpecifierPlugin. */ @java.lang.Override public java.lang.String getClusterSpecifierPlugin() { java.lang.Object ref = ""; if (clusterSpecifierCase_ == 37) { ref = clusterSpecifier_; } if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (clusterSpecifierCase_ == 37) { clusterSpecifier_ = s; } return s; } else { return (java.lang.String) ref; } } /** *
     * Name of the cluster specifier plugin to use to determine the cluster for requests on this route.
     * The cluster specifier plugin name must be defined in the associated
     * :ref:`cluster specifier plugins <envoy_v3_api_field_config.route.v3.RouteConfiguration.cluster_specifier_plugins>`
     * in the :ref:`name <envoy_v3_api_field_config.core.v3.TypedExtensionConfig.name>` field.
     * 
* * string cluster_specifier_plugin = 37; * @return The bytes for clusterSpecifierPlugin. */ @java.lang.Override public com.google.protobuf.ByteString getClusterSpecifierPluginBytes() { java.lang.Object ref = ""; if (clusterSpecifierCase_ == 37) { ref = clusterSpecifier_; } if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (clusterSpecifierCase_ == 37) { clusterSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * Name of the cluster specifier plugin to use to determine the cluster for requests on this route.
     * The cluster specifier plugin name must be defined in the associated
     * :ref:`cluster specifier plugins <envoy_v3_api_field_config.route.v3.RouteConfiguration.cluster_specifier_plugins>`
     * in the :ref:`name <envoy_v3_api_field_config.core.v3.TypedExtensionConfig.name>` field.
     * 
* * string cluster_specifier_plugin = 37; * @param value The clusterSpecifierPlugin to set. * @return This builder for chaining. */ public Builder setClusterSpecifierPlugin( java.lang.String value) { if (value == null) { throw new NullPointerException(); } clusterSpecifierCase_ = 37; clusterSpecifier_ = value; onChanged(); return this; } /** *
     * Name of the cluster specifier plugin to use to determine the cluster for requests on this route.
     * The cluster specifier plugin name must be defined in the associated
     * :ref:`cluster specifier plugins <envoy_v3_api_field_config.route.v3.RouteConfiguration.cluster_specifier_plugins>`
     * in the :ref:`name <envoy_v3_api_field_config.core.v3.TypedExtensionConfig.name>` field.
     * 
* * string cluster_specifier_plugin = 37; * @return This builder for chaining. */ public Builder clearClusterSpecifierPlugin() { if (clusterSpecifierCase_ == 37) { clusterSpecifierCase_ = 0; clusterSpecifier_ = null; onChanged(); } return this; } /** *
     * Name of the cluster specifier plugin to use to determine the cluster for requests on this route.
     * The cluster specifier plugin name must be defined in the associated
     * :ref:`cluster specifier plugins <envoy_v3_api_field_config.route.v3.RouteConfiguration.cluster_specifier_plugins>`
     * in the :ref:`name <envoy_v3_api_field_config.core.v3.TypedExtensionConfig.name>` field.
     * 
* * string cluster_specifier_plugin = 37; * @param value The bytes for clusterSpecifierPlugin to set. * @return This builder for chaining. */ public Builder setClusterSpecifierPluginBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); clusterSpecifierCase_ = 37; clusterSpecifier_ = value; onChanged(); return this; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin, io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.Builder, io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPluginOrBuilder> inlineClusterSpecifierPluginBuilder_; /** *
     * Custom cluster specifier plugin configuration to use to determine the cluster for requests
     * on this route.
     * 
* * .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39; * @return Whether the inlineClusterSpecifierPlugin field is set. */ @java.lang.Override public boolean hasInlineClusterSpecifierPlugin() { return clusterSpecifierCase_ == 39; } /** *
     * Custom cluster specifier plugin configuration to use to determine the cluster for requests
     * on this route.
     * 
* * .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39; * @return The inlineClusterSpecifierPlugin. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin getInlineClusterSpecifierPlugin() { if (inlineClusterSpecifierPluginBuilder_ == null) { if (clusterSpecifierCase_ == 39) { return (io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin) clusterSpecifier_; } return io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.getDefaultInstance(); } else { if (clusterSpecifierCase_ == 39) { return inlineClusterSpecifierPluginBuilder_.getMessage(); } return io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.getDefaultInstance(); } } /** *
     * Custom cluster specifier plugin configuration to use to determine the cluster for requests
     * on this route.
     * 
* * .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39; */ public Builder setInlineClusterSpecifierPlugin(io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin value) { if (inlineClusterSpecifierPluginBuilder_ == null) { if (value == null) { throw new NullPointerException(); } clusterSpecifier_ = value; onChanged(); } else { inlineClusterSpecifierPluginBuilder_.setMessage(value); } clusterSpecifierCase_ = 39; return this; } /** *
     * Custom cluster specifier plugin configuration to use to determine the cluster for requests
     * on this route.
     * 
* * .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39; */ public Builder setInlineClusterSpecifierPlugin( io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.Builder builderForValue) { if (inlineClusterSpecifierPluginBuilder_ == null) { clusterSpecifier_ = builderForValue.build(); onChanged(); } else { inlineClusterSpecifierPluginBuilder_.setMessage(builderForValue.build()); } clusterSpecifierCase_ = 39; return this; } /** *
     * Custom cluster specifier plugin configuration to use to determine the cluster for requests
     * on this route.
     * 
* * .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39; */ public Builder mergeInlineClusterSpecifierPlugin(io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin value) { if (inlineClusterSpecifierPluginBuilder_ == null) { if (clusterSpecifierCase_ == 39 && clusterSpecifier_ != io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.getDefaultInstance()) { clusterSpecifier_ = io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.newBuilder((io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin) clusterSpecifier_) .mergeFrom(value).buildPartial(); } else { clusterSpecifier_ = value; } onChanged(); } else { if (clusterSpecifierCase_ == 39) { inlineClusterSpecifierPluginBuilder_.mergeFrom(value); } else { inlineClusterSpecifierPluginBuilder_.setMessage(value); } } clusterSpecifierCase_ = 39; return this; } /** *
     * Custom cluster specifier plugin configuration to use to determine the cluster for requests
     * on this route.
     * 
* * .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39; */ public Builder clearInlineClusterSpecifierPlugin() { if (inlineClusterSpecifierPluginBuilder_ == null) { if (clusterSpecifierCase_ == 39) { clusterSpecifierCase_ = 0; clusterSpecifier_ = null; onChanged(); } } else { if (clusterSpecifierCase_ == 39) { clusterSpecifierCase_ = 0; clusterSpecifier_ = null; } inlineClusterSpecifierPluginBuilder_.clear(); } return this; } /** *
     * Custom cluster specifier plugin configuration to use to determine the cluster for requests
     * on this route.
     * 
* * .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39; */ public io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.Builder getInlineClusterSpecifierPluginBuilder() { return getInlineClusterSpecifierPluginFieldBuilder().getBuilder(); } /** *
     * Custom cluster specifier plugin configuration to use to determine the cluster for requests
     * on this route.
     * 
* * .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPluginOrBuilder getInlineClusterSpecifierPluginOrBuilder() { if ((clusterSpecifierCase_ == 39) && (inlineClusterSpecifierPluginBuilder_ != null)) { return inlineClusterSpecifierPluginBuilder_.getMessageOrBuilder(); } else { if (clusterSpecifierCase_ == 39) { return (io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin) clusterSpecifier_; } return io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.getDefaultInstance(); } } /** *
     * Custom cluster specifier plugin configuration to use to determine the cluster for requests
     * on this route.
     * 
* * .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin, io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.Builder, io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPluginOrBuilder> getInlineClusterSpecifierPluginFieldBuilder() { if (inlineClusterSpecifierPluginBuilder_ == null) { if (!(clusterSpecifierCase_ == 39)) { clusterSpecifier_ = io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.getDefaultInstance(); } inlineClusterSpecifierPluginBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin, io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin.Builder, io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPluginOrBuilder>( (io.envoyproxy.envoy.config.route.v3.ClusterSpecifierPlugin) clusterSpecifier_, getParentForChildren(), isClean()); clusterSpecifier_ = null; } clusterSpecifierCase_ = 39; onChanged();; return inlineClusterSpecifierPluginBuilder_; } private int clusterNotFoundResponseCode_ = 0; /** *
     * The HTTP status code to use when configured cluster is not found.
     * The default response code is 503 Service Unavailable.
     * 
* * .envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode cluster_not_found_response_code = 20 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for clusterNotFoundResponseCode. */ @java.lang.Override public int getClusterNotFoundResponseCodeValue() { return clusterNotFoundResponseCode_; } /** *
     * The HTTP status code to use when configured cluster is not found.
     * The default response code is 503 Service Unavailable.
     * 
* * .envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode cluster_not_found_response_code = 20 [(.validate.rules) = { ... } * @param value The enum numeric value on the wire for clusterNotFoundResponseCode to set. * @return This builder for chaining. */ public Builder setClusterNotFoundResponseCodeValue(int value) { clusterNotFoundResponseCode_ = value; onChanged(); return this; } /** *
     * The HTTP status code to use when configured cluster is not found.
     * The default response code is 503 Service Unavailable.
     * 
* * .envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode cluster_not_found_response_code = 20 [(.validate.rules) = { ... } * @return The clusterNotFoundResponseCode. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode getClusterNotFoundResponseCode() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode result = io.envoyproxy.envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode.valueOf(clusterNotFoundResponseCode_); return result == null ? io.envoyproxy.envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode.UNRECOGNIZED : result; } /** *
     * The HTTP status code to use when configured cluster is not found.
     * The default response code is 503 Service Unavailable.
     * 
* * .envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode cluster_not_found_response_code = 20 [(.validate.rules) = { ... } * @param value The clusterNotFoundResponseCode to set. * @return This builder for chaining. */ public Builder setClusterNotFoundResponseCode(io.envoyproxy.envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode value) { if (value == null) { throw new NullPointerException(); } clusterNotFoundResponseCode_ = value.getNumber(); onChanged(); return this; } /** *
     * The HTTP status code to use when configured cluster is not found.
     * The default response code is 503 Service Unavailable.
     * 
* * .envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode cluster_not_found_response_code = 20 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearClusterNotFoundResponseCode() { clusterNotFoundResponseCode_ = 0; onChanged(); return this; } private io.envoyproxy.envoy.config.core.v3.Metadata metadataMatch_; 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> metadataMatchBuilder_; /** *
     * Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
     * in the upstream cluster with metadata matching what's set in this field will be considered
     * for load balancing. If using :ref:`weighted_clusters
     * <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
     * provided there taking precedence. The filter name should be specified as ``envoy.lb``.
     * 
* * .envoy.config.core.v3.Metadata metadata_match = 4; * @return Whether the metadataMatch field is set. */ public boolean hasMetadataMatch() { return metadataMatchBuilder_ != null || metadataMatch_ != null; } /** *
     * Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
     * in the upstream cluster with metadata matching what's set in this field will be considered
     * for load balancing. If using :ref:`weighted_clusters
     * <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
     * provided there taking precedence. The filter name should be specified as ``envoy.lb``.
     * 
* * .envoy.config.core.v3.Metadata metadata_match = 4; * @return The metadataMatch. */ public io.envoyproxy.envoy.config.core.v3.Metadata getMetadataMatch() { if (metadataMatchBuilder_ == null) { return metadataMatch_ == null ? io.envoyproxy.envoy.config.core.v3.Metadata.getDefaultInstance() : metadataMatch_; } else { return metadataMatchBuilder_.getMessage(); } } /** *
     * Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
     * in the upstream cluster with metadata matching what's set in this field will be considered
     * for load balancing. If using :ref:`weighted_clusters
     * <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
     * provided there taking precedence. The filter name should be specified as ``envoy.lb``.
     * 
* * .envoy.config.core.v3.Metadata metadata_match = 4; */ public Builder setMetadataMatch(io.envoyproxy.envoy.config.core.v3.Metadata value) { if (metadataMatchBuilder_ == null) { if (value == null) { throw new NullPointerException(); } metadataMatch_ = value; onChanged(); } else { metadataMatchBuilder_.setMessage(value); } return this; } /** *
     * Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
     * in the upstream cluster with metadata matching what's set in this field will be considered
     * for load balancing. If using :ref:`weighted_clusters
     * <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
     * provided there taking precedence. The filter name should be specified as ``envoy.lb``.
     * 
* * .envoy.config.core.v3.Metadata metadata_match = 4; */ public Builder setMetadataMatch( io.envoyproxy.envoy.config.core.v3.Metadata.Builder builderForValue) { if (metadataMatchBuilder_ == null) { metadataMatch_ = builderForValue.build(); onChanged(); } else { metadataMatchBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
     * in the upstream cluster with metadata matching what's set in this field will be considered
     * for load balancing. If using :ref:`weighted_clusters
     * <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
     * provided there taking precedence. The filter name should be specified as ``envoy.lb``.
     * 
* * .envoy.config.core.v3.Metadata metadata_match = 4; */ public Builder mergeMetadataMatch(io.envoyproxy.envoy.config.core.v3.Metadata value) { if (metadataMatchBuilder_ == null) { if (metadataMatch_ != null) { metadataMatch_ = io.envoyproxy.envoy.config.core.v3.Metadata.newBuilder(metadataMatch_).mergeFrom(value).buildPartial(); } else { metadataMatch_ = value; } onChanged(); } else { metadataMatchBuilder_.mergeFrom(value); } return this; } /** *
     * Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
     * in the upstream cluster with metadata matching what's set in this field will be considered
     * for load balancing. If using :ref:`weighted_clusters
     * <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
     * provided there taking precedence. The filter name should be specified as ``envoy.lb``.
     * 
* * .envoy.config.core.v3.Metadata metadata_match = 4; */ public Builder clearMetadataMatch() { if (metadataMatchBuilder_ == null) { metadataMatch_ = null; onChanged(); } else { metadataMatch_ = null; metadataMatchBuilder_ = null; } return this; } /** *
     * Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
     * in the upstream cluster with metadata matching what's set in this field will be considered
     * for load balancing. If using :ref:`weighted_clusters
     * <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
     * provided there taking precedence. The filter name should be specified as ``envoy.lb``.
     * 
* * .envoy.config.core.v3.Metadata metadata_match = 4; */ public io.envoyproxy.envoy.config.core.v3.Metadata.Builder getMetadataMatchBuilder() { onChanged(); return getMetadataMatchFieldBuilder().getBuilder(); } /** *
     * Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
     * in the upstream cluster with metadata matching what's set in this field will be considered
     * for load balancing. If using :ref:`weighted_clusters
     * <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
     * provided there taking precedence. The filter name should be specified as ``envoy.lb``.
     * 
* * .envoy.config.core.v3.Metadata metadata_match = 4; */ public io.envoyproxy.envoy.config.core.v3.MetadataOrBuilder getMetadataMatchOrBuilder() { if (metadataMatchBuilder_ != null) { return metadataMatchBuilder_.getMessageOrBuilder(); } else { return metadataMatch_ == null ? io.envoyproxy.envoy.config.core.v3.Metadata.getDefaultInstance() : metadataMatch_; } } /** *
     * Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
     * in the upstream cluster with metadata matching what's set in this field will be considered
     * for load balancing. If using :ref:`weighted_clusters
     * <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
     * provided there taking precedence. The filter name should be specified as ``envoy.lb``.
     * 
* * .envoy.config.core.v3.Metadata metadata_match = 4; */ 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> getMetadataMatchFieldBuilder() { if (metadataMatchBuilder_ == null) { metadataMatchBuilder_ = 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>( getMetadataMatch(), getParentForChildren(), isClean()); metadataMatch_ = null; } return metadataMatchBuilder_; } private java.lang.Object prefixRewrite_ = ""; /** *
     * Indicates that during forwarding, the matched prefix (or path) should be
     * swapped with this value. This option allows application URLs to be rooted
     * at a different path from those exposed at the reverse proxy layer. The router filter will
     * place the original path before rewrite into the :ref:`x-envoy-original-path
     * <config_http_filters_router_x-envoy-original-path>` header.
     * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`
     * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`,
     * or :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>` may be specified.
     * .. attention::
     *   Pay careful attention to the use of trailing slashes in the
     *   :ref:`route's match <envoy_v3_api_field_config.route.v3.Route.match>` prefix value.
     *   Stripping a prefix from a path requires multiple Routes to handle all cases. For example,
     *   rewriting ``/prefix`` to ``/`` and ``/prefix/etc`` to ``/etc`` cannot be done in a single
     *   :ref:`Route <envoy_v3_api_msg_config.route.v3.Route>`, as shown by the below config entries:
     *   .. code-block:: yaml
     *     - match:
     *         prefix: "/prefix/"
     *       route:
     *         prefix_rewrite: "/"
     *     - match:
     *         prefix: "/prefix"
     *       route:
     *         prefix_rewrite: "/"
     *   Having above entries in the config, requests to ``/prefix`` will be stripped to ``/``, while
     *   requests to ``/prefix/etc`` will be stripped to ``/etc``.
     * 
* * string prefix_rewrite = 5 [(.validate.rules) = { ... } * @return The prefixRewrite. */ public java.lang.String getPrefixRewrite() { java.lang.Object ref = prefixRewrite_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); prefixRewrite_ = s; return s; } else { return (java.lang.String) ref; } } /** *
     * Indicates that during forwarding, the matched prefix (or path) should be
     * swapped with this value. This option allows application URLs to be rooted
     * at a different path from those exposed at the reverse proxy layer. The router filter will
     * place the original path before rewrite into the :ref:`x-envoy-original-path
     * <config_http_filters_router_x-envoy-original-path>` header.
     * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`
     * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`,
     * or :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>` may be specified.
     * .. attention::
     *   Pay careful attention to the use of trailing slashes in the
     *   :ref:`route's match <envoy_v3_api_field_config.route.v3.Route.match>` prefix value.
     *   Stripping a prefix from a path requires multiple Routes to handle all cases. For example,
     *   rewriting ``/prefix`` to ``/`` and ``/prefix/etc`` to ``/etc`` cannot be done in a single
     *   :ref:`Route <envoy_v3_api_msg_config.route.v3.Route>`, as shown by the below config entries:
     *   .. code-block:: yaml
     *     - match:
     *         prefix: "/prefix/"
     *       route:
     *         prefix_rewrite: "/"
     *     - match:
     *         prefix: "/prefix"
     *       route:
     *         prefix_rewrite: "/"
     *   Having above entries in the config, requests to ``/prefix`` will be stripped to ``/``, while
     *   requests to ``/prefix/etc`` will be stripped to ``/etc``.
     * 
* * string prefix_rewrite = 5 [(.validate.rules) = { ... } * @return The bytes for prefixRewrite. */ public com.google.protobuf.ByteString getPrefixRewriteBytes() { java.lang.Object ref = prefixRewrite_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); prefixRewrite_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * Indicates that during forwarding, the matched prefix (or path) should be
     * swapped with this value. This option allows application URLs to be rooted
     * at a different path from those exposed at the reverse proxy layer. The router filter will
     * place the original path before rewrite into the :ref:`x-envoy-original-path
     * <config_http_filters_router_x-envoy-original-path>` header.
     * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`
     * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`,
     * or :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>` may be specified.
     * .. attention::
     *   Pay careful attention to the use of trailing slashes in the
     *   :ref:`route's match <envoy_v3_api_field_config.route.v3.Route.match>` prefix value.
     *   Stripping a prefix from a path requires multiple Routes to handle all cases. For example,
     *   rewriting ``/prefix`` to ``/`` and ``/prefix/etc`` to ``/etc`` cannot be done in a single
     *   :ref:`Route <envoy_v3_api_msg_config.route.v3.Route>`, as shown by the below config entries:
     *   .. code-block:: yaml
     *     - match:
     *         prefix: "/prefix/"
     *       route:
     *         prefix_rewrite: "/"
     *     - match:
     *         prefix: "/prefix"
     *       route:
     *         prefix_rewrite: "/"
     *   Having above entries in the config, requests to ``/prefix`` will be stripped to ``/``, while
     *   requests to ``/prefix/etc`` will be stripped to ``/etc``.
     * 
* * string prefix_rewrite = 5 [(.validate.rules) = { ... } * @param value The prefixRewrite to set. * @return This builder for chaining. */ public Builder setPrefixRewrite( java.lang.String value) { if (value == null) { throw new NullPointerException(); } prefixRewrite_ = value; onChanged(); return this; } /** *
     * Indicates that during forwarding, the matched prefix (or path) should be
     * swapped with this value. This option allows application URLs to be rooted
     * at a different path from those exposed at the reverse proxy layer. The router filter will
     * place the original path before rewrite into the :ref:`x-envoy-original-path
     * <config_http_filters_router_x-envoy-original-path>` header.
     * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`
     * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`,
     * or :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>` may be specified.
     * .. attention::
     *   Pay careful attention to the use of trailing slashes in the
     *   :ref:`route's match <envoy_v3_api_field_config.route.v3.Route.match>` prefix value.
     *   Stripping a prefix from a path requires multiple Routes to handle all cases. For example,
     *   rewriting ``/prefix`` to ``/`` and ``/prefix/etc`` to ``/etc`` cannot be done in a single
     *   :ref:`Route <envoy_v3_api_msg_config.route.v3.Route>`, as shown by the below config entries:
     *   .. code-block:: yaml
     *     - match:
     *         prefix: "/prefix/"
     *       route:
     *         prefix_rewrite: "/"
     *     - match:
     *         prefix: "/prefix"
     *       route:
     *         prefix_rewrite: "/"
     *   Having above entries in the config, requests to ``/prefix`` will be stripped to ``/``, while
     *   requests to ``/prefix/etc`` will be stripped to ``/etc``.
     * 
* * string prefix_rewrite = 5 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearPrefixRewrite() { prefixRewrite_ = getDefaultInstance().getPrefixRewrite(); onChanged(); return this; } /** *
     * Indicates that during forwarding, the matched prefix (or path) should be
     * swapped with this value. This option allows application URLs to be rooted
     * at a different path from those exposed at the reverse proxy layer. The router filter will
     * place the original path before rewrite into the :ref:`x-envoy-original-path
     * <config_http_filters_router_x-envoy-original-path>` header.
     * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`
     * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`,
     * or :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>` may be specified.
     * .. attention::
     *   Pay careful attention to the use of trailing slashes in the
     *   :ref:`route's match <envoy_v3_api_field_config.route.v3.Route.match>` prefix value.
     *   Stripping a prefix from a path requires multiple Routes to handle all cases. For example,
     *   rewriting ``/prefix`` to ``/`` and ``/prefix/etc`` to ``/etc`` cannot be done in a single
     *   :ref:`Route <envoy_v3_api_msg_config.route.v3.Route>`, as shown by the below config entries:
     *   .. code-block:: yaml
     *     - match:
     *         prefix: "/prefix/"
     *       route:
     *         prefix_rewrite: "/"
     *     - match:
     *         prefix: "/prefix"
     *       route:
     *         prefix_rewrite: "/"
     *   Having above entries in the config, requests to ``/prefix`` will be stripped to ``/``, while
     *   requests to ``/prefix/etc`` will be stripped to ``/etc``.
     * 
* * string prefix_rewrite = 5 [(.validate.rules) = { ... } * @param value The bytes for prefixRewrite to set. * @return This builder for chaining. */ public Builder setPrefixRewriteBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); prefixRewrite_ = value; onChanged(); return this; } private io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute regexRewrite_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder> regexRewriteBuilder_; /** *
     * Indicates that during forwarding, portions of the path that match the
     * pattern should be rewritten, even allowing the substitution of capture
     * groups from the pattern into the new path as specified by the rewrite
     * substitution string. This is useful to allow application paths to be
     * rewritten in a way that is aware of segments with variable content like
     * identifiers. The router filter will place the original path as it was
     * before the rewrite into the :ref:`x-envoy-original-path
     * <config_http_filters_router_x-envoy-original-path>` header.
     * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
     * :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
     * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
     * may be specified.
     * Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
     * * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
     *   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
     *   into ``/v1/api/instance/foo``.
     * * The pattern ``one`` paired with a substitution string of ``two`` would
     *   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
     * * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
     *   ``\1two\2`` would replace only the first occurrence of ``one``,
     *   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
     * * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
     *   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
     *   ``/aaa/yyy/bbb``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32; * @return Whether the regexRewrite field is set. */ public boolean hasRegexRewrite() { return regexRewriteBuilder_ != null || regexRewrite_ != null; } /** *
     * Indicates that during forwarding, portions of the path that match the
     * pattern should be rewritten, even allowing the substitution of capture
     * groups from the pattern into the new path as specified by the rewrite
     * substitution string. This is useful to allow application paths to be
     * rewritten in a way that is aware of segments with variable content like
     * identifiers. The router filter will place the original path as it was
     * before the rewrite into the :ref:`x-envoy-original-path
     * <config_http_filters_router_x-envoy-original-path>` header.
     * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
     * :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
     * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
     * may be specified.
     * Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
     * * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
     *   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
     *   into ``/v1/api/instance/foo``.
     * * The pattern ``one`` paired with a substitution string of ``two`` would
     *   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
     * * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
     *   ``\1two\2`` would replace only the first occurrence of ``one``,
     *   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
     * * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
     *   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
     *   ``/aaa/yyy/bbb``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32; * @return The regexRewrite. */ public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute getRegexRewrite() { if (regexRewriteBuilder_ == null) { return regexRewrite_ == null ? io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.getDefaultInstance() : regexRewrite_; } else { return regexRewriteBuilder_.getMessage(); } } /** *
     * Indicates that during forwarding, portions of the path that match the
     * pattern should be rewritten, even allowing the substitution of capture
     * groups from the pattern into the new path as specified by the rewrite
     * substitution string. This is useful to allow application paths to be
     * rewritten in a way that is aware of segments with variable content like
     * identifiers. The router filter will place the original path as it was
     * before the rewrite into the :ref:`x-envoy-original-path
     * <config_http_filters_router_x-envoy-original-path>` header.
     * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
     * :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
     * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
     * may be specified.
     * Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
     * * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
     *   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
     *   into ``/v1/api/instance/foo``.
     * * The pattern ``one`` paired with a substitution string of ``two`` would
     *   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
     * * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
     *   ``\1two\2`` would replace only the first occurrence of ``one``,
     *   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
     * * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
     *   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
     *   ``/aaa/yyy/bbb``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32; */ public Builder setRegexRewrite(io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute value) { if (regexRewriteBuilder_ == null) { if (value == null) { throw new NullPointerException(); } regexRewrite_ = value; onChanged(); } else { regexRewriteBuilder_.setMessage(value); } return this; } /** *
     * Indicates that during forwarding, portions of the path that match the
     * pattern should be rewritten, even allowing the substitution of capture
     * groups from the pattern into the new path as specified by the rewrite
     * substitution string. This is useful to allow application paths to be
     * rewritten in a way that is aware of segments with variable content like
     * identifiers. The router filter will place the original path as it was
     * before the rewrite into the :ref:`x-envoy-original-path
     * <config_http_filters_router_x-envoy-original-path>` header.
     * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
     * :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
     * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
     * may be specified.
     * Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
     * * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
     *   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
     *   into ``/v1/api/instance/foo``.
     * * The pattern ``one`` paired with a substitution string of ``two`` would
     *   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
     * * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
     *   ``\1two\2`` would replace only the first occurrence of ``one``,
     *   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
     * * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
     *   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
     *   ``/aaa/yyy/bbb``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32; */ public Builder setRegexRewrite( io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder builderForValue) { if (regexRewriteBuilder_ == null) { regexRewrite_ = builderForValue.build(); onChanged(); } else { regexRewriteBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Indicates that during forwarding, portions of the path that match the
     * pattern should be rewritten, even allowing the substitution of capture
     * groups from the pattern into the new path as specified by the rewrite
     * substitution string. This is useful to allow application paths to be
     * rewritten in a way that is aware of segments with variable content like
     * identifiers. The router filter will place the original path as it was
     * before the rewrite into the :ref:`x-envoy-original-path
     * <config_http_filters_router_x-envoy-original-path>` header.
     * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
     * :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
     * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
     * may be specified.
     * Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
     * * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
     *   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
     *   into ``/v1/api/instance/foo``.
     * * The pattern ``one`` paired with a substitution string of ``two`` would
     *   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
     * * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
     *   ``\1two\2`` would replace only the first occurrence of ``one``,
     *   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
     * * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
     *   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
     *   ``/aaa/yyy/bbb``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32; */ public Builder mergeRegexRewrite(io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute value) { if (regexRewriteBuilder_ == null) { if (regexRewrite_ != null) { regexRewrite_ = io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.newBuilder(regexRewrite_).mergeFrom(value).buildPartial(); } else { regexRewrite_ = value; } onChanged(); } else { regexRewriteBuilder_.mergeFrom(value); } return this; } /** *
     * Indicates that during forwarding, portions of the path that match the
     * pattern should be rewritten, even allowing the substitution of capture
     * groups from the pattern into the new path as specified by the rewrite
     * substitution string. This is useful to allow application paths to be
     * rewritten in a way that is aware of segments with variable content like
     * identifiers. The router filter will place the original path as it was
     * before the rewrite into the :ref:`x-envoy-original-path
     * <config_http_filters_router_x-envoy-original-path>` header.
     * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
     * :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
     * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
     * may be specified.
     * Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
     * * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
     *   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
     *   into ``/v1/api/instance/foo``.
     * * The pattern ``one`` paired with a substitution string of ``two`` would
     *   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
     * * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
     *   ``\1two\2`` would replace only the first occurrence of ``one``,
     *   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
     * * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
     *   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
     *   ``/aaa/yyy/bbb``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32; */ public Builder clearRegexRewrite() { if (regexRewriteBuilder_ == null) { regexRewrite_ = null; onChanged(); } else { regexRewrite_ = null; regexRewriteBuilder_ = null; } return this; } /** *
     * Indicates that during forwarding, portions of the path that match the
     * pattern should be rewritten, even allowing the substitution of capture
     * groups from the pattern into the new path as specified by the rewrite
     * substitution string. This is useful to allow application paths to be
     * rewritten in a way that is aware of segments with variable content like
     * identifiers. The router filter will place the original path as it was
     * before the rewrite into the :ref:`x-envoy-original-path
     * <config_http_filters_router_x-envoy-original-path>` header.
     * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
     * :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
     * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
     * may be specified.
     * Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
     * * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
     *   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
     *   into ``/v1/api/instance/foo``.
     * * The pattern ``one`` paired with a substitution string of ``two`` would
     *   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
     * * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
     *   ``\1two\2`` would replace only the first occurrence of ``one``,
     *   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
     * * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
     *   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
     *   ``/aaa/yyy/bbb``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32; */ public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder getRegexRewriteBuilder() { onChanged(); return getRegexRewriteFieldBuilder().getBuilder(); } /** *
     * Indicates that during forwarding, portions of the path that match the
     * pattern should be rewritten, even allowing the substitution of capture
     * groups from the pattern into the new path as specified by the rewrite
     * substitution string. This is useful to allow application paths to be
     * rewritten in a way that is aware of segments with variable content like
     * identifiers. The router filter will place the original path as it was
     * before the rewrite into the :ref:`x-envoy-original-path
     * <config_http_filters_router_x-envoy-original-path>` header.
     * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
     * :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
     * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
     * may be specified.
     * Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
     * * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
     *   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
     *   into ``/v1/api/instance/foo``.
     * * The pattern ``one`` paired with a substitution string of ``two`` would
     *   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
     * * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
     *   ``\1two\2`` would replace only the first occurrence of ``one``,
     *   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
     * * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
     *   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
     *   ``/aaa/yyy/bbb``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32; */ public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder getRegexRewriteOrBuilder() { if (regexRewriteBuilder_ != null) { return regexRewriteBuilder_.getMessageOrBuilder(); } else { return regexRewrite_ == null ? io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.getDefaultInstance() : regexRewrite_; } } /** *
     * Indicates that during forwarding, portions of the path that match the
     * pattern should be rewritten, even allowing the substitution of capture
     * groups from the pattern into the new path as specified by the rewrite
     * substitution string. This is useful to allow application paths to be
     * rewritten in a way that is aware of segments with variable content like
     * identifiers. The router filter will place the original path as it was
     * before the rewrite into the :ref:`x-envoy-original-path
     * <config_http_filters_router_x-envoy-original-path>` header.
     * Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
     * :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
     * :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
     * may be specified.
     * Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
     * * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
     *   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
     *   into ``/v1/api/instance/foo``.
     * * The pattern ``one`` paired with a substitution string of ``two`` would
     *   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
     * * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
     *   ``\1two\2`` would replace only the first occurrence of ``one``,
     *   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
     * * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
     *   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
     *   ``/aaa/yyy/bbb``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder> getRegexRewriteFieldBuilder() { if (regexRewriteBuilder_ == null) { regexRewriteBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder>( getRegexRewrite(), getParentForChildren(), isClean()); regexRewrite_ = null; } return regexRewriteBuilder_; } private io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig pathRewritePolicy_; 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> pathRewritePolicyBuilder_; /** *
     * [#extension-category: envoy.path.rewrite]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41; * @return Whether the pathRewritePolicy field is set. */ public boolean hasPathRewritePolicy() { return pathRewritePolicyBuilder_ != null || pathRewritePolicy_ != null; } /** *
     * [#extension-category: envoy.path.rewrite]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41; * @return The pathRewritePolicy. */ public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig getPathRewritePolicy() { if (pathRewritePolicyBuilder_ == null) { return pathRewritePolicy_ == null ? io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance() : pathRewritePolicy_; } else { return pathRewritePolicyBuilder_.getMessage(); } } /** *
     * [#extension-category: envoy.path.rewrite]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41; */ public Builder setPathRewritePolicy(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig value) { if (pathRewritePolicyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } pathRewritePolicy_ = value; onChanged(); } else { pathRewritePolicyBuilder_.setMessage(value); } return this; } /** *
     * [#extension-category: envoy.path.rewrite]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41; */ public Builder setPathRewritePolicy( io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder builderForValue) { if (pathRewritePolicyBuilder_ == null) { pathRewritePolicy_ = builderForValue.build(); onChanged(); } else { pathRewritePolicyBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * [#extension-category: envoy.path.rewrite]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41; */ public Builder mergePathRewritePolicy(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig value) { if (pathRewritePolicyBuilder_ == null) { if (pathRewritePolicy_ != null) { pathRewritePolicy_ = io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.newBuilder(pathRewritePolicy_).mergeFrom(value).buildPartial(); } else { pathRewritePolicy_ = value; } onChanged(); } else { pathRewritePolicyBuilder_.mergeFrom(value); } return this; } /** *
     * [#extension-category: envoy.path.rewrite]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41; */ public Builder clearPathRewritePolicy() { if (pathRewritePolicyBuilder_ == null) { pathRewritePolicy_ = null; onChanged(); } else { pathRewritePolicy_ = null; pathRewritePolicyBuilder_ = null; } return this; } /** *
     * [#extension-category: envoy.path.rewrite]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41; */ public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder getPathRewritePolicyBuilder() { onChanged(); return getPathRewritePolicyFieldBuilder().getBuilder(); } /** *
     * [#extension-category: envoy.path.rewrite]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41; */ public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder getPathRewritePolicyOrBuilder() { if (pathRewritePolicyBuilder_ != null) { return pathRewritePolicyBuilder_.getMessageOrBuilder(); } else { return pathRewritePolicy_ == null ? io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance() : pathRewritePolicy_; } } /** *
     * [#extension-category: envoy.path.rewrite]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41; */ 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> getPathRewritePolicyFieldBuilder() { if (pathRewritePolicyBuilder_ == null) { pathRewritePolicyBuilder_ = 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>( getPathRewritePolicy(), getParentForChildren(), isClean()); pathRewritePolicy_ = null; } return pathRewritePolicyBuilder_; } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * this value. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * string host_rewrite_literal = 6 [(.validate.rules) = { ... } * @return Whether the hostRewriteLiteral field is set. */ @java.lang.Override public boolean hasHostRewriteLiteral() { return hostRewriteSpecifierCase_ == 6; } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * this value. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * string host_rewrite_literal = 6 [(.validate.rules) = { ... } * @return The hostRewriteLiteral. */ @java.lang.Override public java.lang.String getHostRewriteLiteral() { java.lang.Object ref = ""; if (hostRewriteSpecifierCase_ == 6) { ref = hostRewriteSpecifier_; } if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (hostRewriteSpecifierCase_ == 6) { hostRewriteSpecifier_ = s; } return s; } else { return (java.lang.String) ref; } } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * this value. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * string host_rewrite_literal = 6 [(.validate.rules) = { ... } * @return The bytes for hostRewriteLiteral. */ @java.lang.Override public com.google.protobuf.ByteString getHostRewriteLiteralBytes() { java.lang.Object ref = ""; if (hostRewriteSpecifierCase_ == 6) { ref = hostRewriteSpecifier_; } if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (hostRewriteSpecifierCase_ == 6) { hostRewriteSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * this value. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * string host_rewrite_literal = 6 [(.validate.rules) = { ... } * @param value The hostRewriteLiteral to set. * @return This builder for chaining. */ public Builder setHostRewriteLiteral( java.lang.String value) { if (value == null) { throw new NullPointerException(); } hostRewriteSpecifierCase_ = 6; hostRewriteSpecifier_ = value; onChanged(); return this; } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * this value. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * string host_rewrite_literal = 6 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearHostRewriteLiteral() { if (hostRewriteSpecifierCase_ == 6) { hostRewriteSpecifierCase_ = 0; hostRewriteSpecifier_ = null; onChanged(); } return this; } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * this value. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * string host_rewrite_literal = 6 [(.validate.rules) = { ... } * @param value The bytes for hostRewriteLiteral to set. * @return This builder for chaining. */ public Builder setHostRewriteLiteralBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); hostRewriteSpecifierCase_ = 6; hostRewriteSpecifier_ = value; onChanged(); return this; } private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> autoHostRewriteBuilder_; /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the hostname of the upstream host chosen by the cluster manager. This
     * option is applicable only when the destination cluster for a route is of
     * type ``strict_dns`` or ``logical_dns``,
     * or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
     * field is not empty. Setting this to true with other cluster types
     * has no effect. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * .google.protobuf.BoolValue auto_host_rewrite = 7; * @return Whether the autoHostRewrite field is set. */ @java.lang.Override public boolean hasAutoHostRewrite() { return hostRewriteSpecifierCase_ == 7; } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the hostname of the upstream host chosen by the cluster manager. This
     * option is applicable only when the destination cluster for a route is of
     * type ``strict_dns`` or ``logical_dns``,
     * or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
     * field is not empty. Setting this to true with other cluster types
     * has no effect. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * .google.protobuf.BoolValue auto_host_rewrite = 7; * @return The autoHostRewrite. */ @java.lang.Override public com.google.protobuf.BoolValue getAutoHostRewrite() { if (autoHostRewriteBuilder_ == null) { if (hostRewriteSpecifierCase_ == 7) { return (com.google.protobuf.BoolValue) hostRewriteSpecifier_; } return com.google.protobuf.BoolValue.getDefaultInstance(); } else { if (hostRewriteSpecifierCase_ == 7) { return autoHostRewriteBuilder_.getMessage(); } return com.google.protobuf.BoolValue.getDefaultInstance(); } } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the hostname of the upstream host chosen by the cluster manager. This
     * option is applicable only when the destination cluster for a route is of
     * type ``strict_dns`` or ``logical_dns``,
     * or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
     * field is not empty. Setting this to true with other cluster types
     * has no effect. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * .google.protobuf.BoolValue auto_host_rewrite = 7; */ public Builder setAutoHostRewrite(com.google.protobuf.BoolValue value) { if (autoHostRewriteBuilder_ == null) { if (value == null) { throw new NullPointerException(); } hostRewriteSpecifier_ = value; onChanged(); } else { autoHostRewriteBuilder_.setMessage(value); } hostRewriteSpecifierCase_ = 7; return this; } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the hostname of the upstream host chosen by the cluster manager. This
     * option is applicable only when the destination cluster for a route is of
     * type ``strict_dns`` or ``logical_dns``,
     * or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
     * field is not empty. Setting this to true with other cluster types
     * has no effect. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * .google.protobuf.BoolValue auto_host_rewrite = 7; */ public Builder setAutoHostRewrite( com.google.protobuf.BoolValue.Builder builderForValue) { if (autoHostRewriteBuilder_ == null) { hostRewriteSpecifier_ = builderForValue.build(); onChanged(); } else { autoHostRewriteBuilder_.setMessage(builderForValue.build()); } hostRewriteSpecifierCase_ = 7; return this; } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the hostname of the upstream host chosen by the cluster manager. This
     * option is applicable only when the destination cluster for a route is of
     * type ``strict_dns`` or ``logical_dns``,
     * or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
     * field is not empty. Setting this to true with other cluster types
     * has no effect. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * .google.protobuf.BoolValue auto_host_rewrite = 7; */ public Builder mergeAutoHostRewrite(com.google.protobuf.BoolValue value) { if (autoHostRewriteBuilder_ == null) { if (hostRewriteSpecifierCase_ == 7 && hostRewriteSpecifier_ != com.google.protobuf.BoolValue.getDefaultInstance()) { hostRewriteSpecifier_ = com.google.protobuf.BoolValue.newBuilder((com.google.protobuf.BoolValue) hostRewriteSpecifier_) .mergeFrom(value).buildPartial(); } else { hostRewriteSpecifier_ = value; } onChanged(); } else { if (hostRewriteSpecifierCase_ == 7) { autoHostRewriteBuilder_.mergeFrom(value); } else { autoHostRewriteBuilder_.setMessage(value); } } hostRewriteSpecifierCase_ = 7; return this; } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the hostname of the upstream host chosen by the cluster manager. This
     * option is applicable only when the destination cluster for a route is of
     * type ``strict_dns`` or ``logical_dns``,
     * or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
     * field is not empty. Setting this to true with other cluster types
     * has no effect. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * .google.protobuf.BoolValue auto_host_rewrite = 7; */ public Builder clearAutoHostRewrite() { if (autoHostRewriteBuilder_ == null) { if (hostRewriteSpecifierCase_ == 7) { hostRewriteSpecifierCase_ = 0; hostRewriteSpecifier_ = null; onChanged(); } } else { if (hostRewriteSpecifierCase_ == 7) { hostRewriteSpecifierCase_ = 0; hostRewriteSpecifier_ = null; } autoHostRewriteBuilder_.clear(); } return this; } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the hostname of the upstream host chosen by the cluster manager. This
     * option is applicable only when the destination cluster for a route is of
     * type ``strict_dns`` or ``logical_dns``,
     * or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
     * field is not empty. Setting this to true with other cluster types
     * has no effect. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * .google.protobuf.BoolValue auto_host_rewrite = 7; */ public com.google.protobuf.BoolValue.Builder getAutoHostRewriteBuilder() { return getAutoHostRewriteFieldBuilder().getBuilder(); } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the hostname of the upstream host chosen by the cluster manager. This
     * option is applicable only when the destination cluster for a route is of
     * type ``strict_dns`` or ``logical_dns``,
     * or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
     * field is not empty. Setting this to true with other cluster types
     * has no effect. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * .google.protobuf.BoolValue auto_host_rewrite = 7; */ @java.lang.Override public com.google.protobuf.BoolValueOrBuilder getAutoHostRewriteOrBuilder() { if ((hostRewriteSpecifierCase_ == 7) && (autoHostRewriteBuilder_ != null)) { return autoHostRewriteBuilder_.getMessageOrBuilder(); } else { if (hostRewriteSpecifierCase_ == 7) { return (com.google.protobuf.BoolValue) hostRewriteSpecifier_; } return com.google.protobuf.BoolValue.getDefaultInstance(); } } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the hostname of the upstream host chosen by the cluster manager. This
     * option is applicable only when the destination cluster for a route is of
     * type ``strict_dns`` or ``logical_dns``,
     * or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
     * field is not empty. Setting this to true with other cluster types
     * has no effect. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * 
* * .google.protobuf.BoolValue auto_host_rewrite = 7; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> getAutoHostRewriteFieldBuilder() { if (autoHostRewriteBuilder_ == null) { if (!(hostRewriteSpecifierCase_ == 7)) { hostRewriteSpecifier_ = com.google.protobuf.BoolValue.getDefaultInstance(); } autoHostRewriteBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>( (com.google.protobuf.BoolValue) hostRewriteSpecifier_, getParentForChildren(), isClean()); hostRewriteSpecifier_ = null; } hostRewriteSpecifierCase_ = 7; onChanged();; return autoHostRewriteBuilder_; } /** *
     * Indicates that during forwarding, the host header will be swapped with the content of given
     * downstream or :ref:`custom <config_http_conn_man_headers_custom_request_headers>` header.
     * If header value is empty, host header is left intact. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * .. attention::
     *   Pay attention to the potential security implications of using this option. Provided header
     *   must come from trusted source.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string host_rewrite_header = 29 [(.validate.rules) = { ... } * @return Whether the hostRewriteHeader field is set. */ @java.lang.Override public boolean hasHostRewriteHeader() { return hostRewriteSpecifierCase_ == 29; } /** *
     * Indicates that during forwarding, the host header will be swapped with the content of given
     * downstream or :ref:`custom <config_http_conn_man_headers_custom_request_headers>` header.
     * If header value is empty, host header is left intact. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * .. attention::
     *   Pay attention to the potential security implications of using this option. Provided header
     *   must come from trusted source.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string host_rewrite_header = 29 [(.validate.rules) = { ... } * @return The hostRewriteHeader. */ @java.lang.Override public java.lang.String getHostRewriteHeader() { java.lang.Object ref = ""; if (hostRewriteSpecifierCase_ == 29) { ref = hostRewriteSpecifier_; } if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (hostRewriteSpecifierCase_ == 29) { hostRewriteSpecifier_ = s; } return s; } else { return (java.lang.String) ref; } } /** *
     * Indicates that during forwarding, the host header will be swapped with the content of given
     * downstream or :ref:`custom <config_http_conn_man_headers_custom_request_headers>` header.
     * If header value is empty, host header is left intact. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * .. attention::
     *   Pay attention to the potential security implications of using this option. Provided header
     *   must come from trusted source.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string host_rewrite_header = 29 [(.validate.rules) = { ... } * @return The bytes for hostRewriteHeader. */ @java.lang.Override public com.google.protobuf.ByteString getHostRewriteHeaderBytes() { java.lang.Object ref = ""; if (hostRewriteSpecifierCase_ == 29) { ref = hostRewriteSpecifier_; } if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (hostRewriteSpecifierCase_ == 29) { hostRewriteSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * Indicates that during forwarding, the host header will be swapped with the content of given
     * downstream or :ref:`custom <config_http_conn_man_headers_custom_request_headers>` header.
     * If header value is empty, host header is left intact. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * .. attention::
     *   Pay attention to the potential security implications of using this option. Provided header
     *   must come from trusted source.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string host_rewrite_header = 29 [(.validate.rules) = { ... } * @param value The hostRewriteHeader to set. * @return This builder for chaining. */ public Builder setHostRewriteHeader( java.lang.String value) { if (value == null) { throw new NullPointerException(); } hostRewriteSpecifierCase_ = 29; hostRewriteSpecifier_ = value; onChanged(); return this; } /** *
     * Indicates that during forwarding, the host header will be swapped with the content of given
     * downstream or :ref:`custom <config_http_conn_man_headers_custom_request_headers>` header.
     * If header value is empty, host header is left intact. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * .. attention::
     *   Pay attention to the potential security implications of using this option. Provided header
     *   must come from trusted source.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string host_rewrite_header = 29 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearHostRewriteHeader() { if (hostRewriteSpecifierCase_ == 29) { hostRewriteSpecifierCase_ = 0; hostRewriteSpecifier_ = null; onChanged(); } return this; } /** *
     * Indicates that during forwarding, the host header will be swapped with the content of given
     * downstream or :ref:`custom <config_http_conn_man_headers_custom_request_headers>` header.
     * If header value is empty, host header is left intact. Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * .. attention::
     *   Pay attention to the potential security implications of using this option. Provided header
     *   must come from trusted source.
     * .. note::
     *   If the header appears multiple times only the first value is used.
     * 
* * string host_rewrite_header = 29 [(.validate.rules) = { ... } * @param value The bytes for hostRewriteHeader to set. * @return This builder for chaining. */ public Builder setHostRewriteHeaderBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); hostRewriteSpecifierCase_ = 29; hostRewriteSpecifier_ = value; onChanged(); return this; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder> hostRewritePathRegexBuilder_; /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the result of the regex substitution executed on path value with query and fragment removed.
     * This is useful for transitioning variable content between path segment and subdomain.
     * Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * For example with the following config:
     *   .. code-block:: yaml
     *     host_rewrite_path_regex:
     *       pattern:
     *         google_re2: {}
     *         regex: "^/(.+)/.+$"
     *       substitution: \1
     * Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35; * @return Whether the hostRewritePathRegex field is set. */ @java.lang.Override public boolean hasHostRewritePathRegex() { return hostRewriteSpecifierCase_ == 35; } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the result of the regex substitution executed on path value with query and fragment removed.
     * This is useful for transitioning variable content between path segment and subdomain.
     * Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * For example with the following config:
     *   .. code-block:: yaml
     *     host_rewrite_path_regex:
     *       pattern:
     *         google_re2: {}
     *         regex: "^/(.+)/.+$"
     *       substitution: \1
     * Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35; * @return The hostRewritePathRegex. */ @java.lang.Override public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute getHostRewritePathRegex() { if (hostRewritePathRegexBuilder_ == null) { if (hostRewriteSpecifierCase_ == 35) { return (io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute) hostRewriteSpecifier_; } return io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.getDefaultInstance(); } else { if (hostRewriteSpecifierCase_ == 35) { return hostRewritePathRegexBuilder_.getMessage(); } return io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.getDefaultInstance(); } } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the result of the regex substitution executed on path value with query and fragment removed.
     * This is useful for transitioning variable content between path segment and subdomain.
     * Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * For example with the following config:
     *   .. code-block:: yaml
     *     host_rewrite_path_regex:
     *       pattern:
     *         google_re2: {}
     *         regex: "^/(.+)/.+$"
     *       substitution: \1
     * Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35; */ public Builder setHostRewritePathRegex(io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute value) { if (hostRewritePathRegexBuilder_ == null) { if (value == null) { throw new NullPointerException(); } hostRewriteSpecifier_ = value; onChanged(); } else { hostRewritePathRegexBuilder_.setMessage(value); } hostRewriteSpecifierCase_ = 35; return this; } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the result of the regex substitution executed on path value with query and fragment removed.
     * This is useful for transitioning variable content between path segment and subdomain.
     * Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * For example with the following config:
     *   .. code-block:: yaml
     *     host_rewrite_path_regex:
     *       pattern:
     *         google_re2: {}
     *         regex: "^/(.+)/.+$"
     *       substitution: \1
     * Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35; */ public Builder setHostRewritePathRegex( io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder builderForValue) { if (hostRewritePathRegexBuilder_ == null) { hostRewriteSpecifier_ = builderForValue.build(); onChanged(); } else { hostRewritePathRegexBuilder_.setMessage(builderForValue.build()); } hostRewriteSpecifierCase_ = 35; return this; } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the result of the regex substitution executed on path value with query and fragment removed.
     * This is useful for transitioning variable content between path segment and subdomain.
     * Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * For example with the following config:
     *   .. code-block:: yaml
     *     host_rewrite_path_regex:
     *       pattern:
     *         google_re2: {}
     *         regex: "^/(.+)/.+$"
     *       substitution: \1
     * Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35; */ public Builder mergeHostRewritePathRegex(io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute value) { if (hostRewritePathRegexBuilder_ == null) { if (hostRewriteSpecifierCase_ == 35 && hostRewriteSpecifier_ != io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.getDefaultInstance()) { hostRewriteSpecifier_ = io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.newBuilder((io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute) hostRewriteSpecifier_) .mergeFrom(value).buildPartial(); } else { hostRewriteSpecifier_ = value; } onChanged(); } else { if (hostRewriteSpecifierCase_ == 35) { hostRewritePathRegexBuilder_.mergeFrom(value); } else { hostRewritePathRegexBuilder_.setMessage(value); } } hostRewriteSpecifierCase_ = 35; return this; } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the result of the regex substitution executed on path value with query and fragment removed.
     * This is useful for transitioning variable content between path segment and subdomain.
     * Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * For example with the following config:
     *   .. code-block:: yaml
     *     host_rewrite_path_regex:
     *       pattern:
     *         google_re2: {}
     *         regex: "^/(.+)/.+$"
     *       substitution: \1
     * Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35; */ public Builder clearHostRewritePathRegex() { if (hostRewritePathRegexBuilder_ == null) { if (hostRewriteSpecifierCase_ == 35) { hostRewriteSpecifierCase_ = 0; hostRewriteSpecifier_ = null; onChanged(); } } else { if (hostRewriteSpecifierCase_ == 35) { hostRewriteSpecifierCase_ = 0; hostRewriteSpecifier_ = null; } hostRewritePathRegexBuilder_.clear(); } return this; } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the result of the regex substitution executed on path value with query and fragment removed.
     * This is useful for transitioning variable content between path segment and subdomain.
     * Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * For example with the following config:
     *   .. code-block:: yaml
     *     host_rewrite_path_regex:
     *       pattern:
     *         google_re2: {}
     *         regex: "^/(.+)/.+$"
     *       substitution: \1
     * Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35; */ public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder getHostRewritePathRegexBuilder() { return getHostRewritePathRegexFieldBuilder().getBuilder(); } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the result of the regex substitution executed on path value with query and fragment removed.
     * This is useful for transitioning variable content between path segment and subdomain.
     * Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * For example with the following config:
     *   .. code-block:: yaml
     *     host_rewrite_path_regex:
     *       pattern:
     *         google_re2: {}
     *         regex: "^/(.+)/.+$"
     *       substitution: \1
     * Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35; */ @java.lang.Override public io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder getHostRewritePathRegexOrBuilder() { if ((hostRewriteSpecifierCase_ == 35) && (hostRewritePathRegexBuilder_ != null)) { return hostRewritePathRegexBuilder_.getMessageOrBuilder(); } else { if (hostRewriteSpecifierCase_ == 35) { return (io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute) hostRewriteSpecifier_; } return io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.getDefaultInstance(); } } /** *
     * Indicates that during forwarding, the host header will be swapped with
     * the result of the regex substitution executed on path value with query and fragment removed.
     * This is useful for transitioning variable content between path segment and subdomain.
     * Using this option will append the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` header if
     * :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
     * is set.
     * For example with the following config:
     *   .. code-block:: yaml
     *     host_rewrite_path_regex:
     *       pattern:
     *         google_re2: {}
     *         regex: "^/(.+)/.+$"
     *       substitution: \1
     * Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
     * 
* * .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder> getHostRewritePathRegexFieldBuilder() { if (hostRewritePathRegexBuilder_ == null) { if (!(hostRewriteSpecifierCase_ == 35)) { hostRewriteSpecifier_ = io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.getDefaultInstance(); } hostRewritePathRegexBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute.Builder, io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstituteOrBuilder>( (io.envoyproxy.envoy.type.matcher.v3.RegexMatchAndSubstitute) hostRewriteSpecifier_, getParentForChildren(), isClean()); hostRewriteSpecifier_ = null; } hostRewriteSpecifierCase_ = 35; onChanged();; return hostRewritePathRegexBuilder_; } private boolean appendXForwardedHost_ ; /** *
     * If set, then a host rewrite action (one of
     * :ref:`host_rewrite_literal <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_literal>`,
     * :ref:`auto_host_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.auto_host_rewrite>`,
     * :ref:`host_rewrite_header <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_header>`, or
     * :ref:`host_rewrite_path_regex <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_path_regex>`)
     * causes the original value of the host header, if any, to be appended to the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` HTTP header if it is different to the last value appended.
     * This can be disabled by setting the runtime guard ``envoy_reloadable_features_append_xfh_idempotent`` to false.
     * 
* * bool append_x_forwarded_host = 38; * @return The appendXForwardedHost. */ @java.lang.Override public boolean getAppendXForwardedHost() { return appendXForwardedHost_; } /** *
     * If set, then a host rewrite action (one of
     * :ref:`host_rewrite_literal <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_literal>`,
     * :ref:`auto_host_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.auto_host_rewrite>`,
     * :ref:`host_rewrite_header <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_header>`, or
     * :ref:`host_rewrite_path_regex <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_path_regex>`)
     * causes the original value of the host header, if any, to be appended to the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` HTTP header if it is different to the last value appended.
     * This can be disabled by setting the runtime guard ``envoy_reloadable_features_append_xfh_idempotent`` to false.
     * 
* * bool append_x_forwarded_host = 38; * @param value The appendXForwardedHost to set. * @return This builder for chaining. */ public Builder setAppendXForwardedHost(boolean value) { appendXForwardedHost_ = value; onChanged(); return this; } /** *
     * If set, then a host rewrite action (one of
     * :ref:`host_rewrite_literal <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_literal>`,
     * :ref:`auto_host_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.auto_host_rewrite>`,
     * :ref:`host_rewrite_header <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_header>`, or
     * :ref:`host_rewrite_path_regex <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_path_regex>`)
     * causes the original value of the host header, if any, to be appended to the
     * :ref:`config_http_conn_man_headers_x-forwarded-host` HTTP header if it is different to the last value appended.
     * This can be disabled by setting the runtime guard ``envoy_reloadable_features_append_xfh_idempotent`` to false.
     * 
* * bool append_x_forwarded_host = 38; * @return This builder for chaining. */ public Builder clearAppendXForwardedHost() { appendXForwardedHost_ = false; onChanged(); return this; } private com.google.protobuf.Duration timeout_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> timeoutBuilder_; /** *
     * Specifies the upstream timeout for the route. If not specified, the default is 15s. This
     * spans between the point at which the entire downstream request (i.e. end-of-stream) has been
     * processed and when the upstream response has been completely processed. A value of 0 will
     * disable the route's timeout.
     * .. note::
     *   This timeout includes all retries. See also
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *   :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration timeout = 8; * @return Whether the timeout field is set. */ public boolean hasTimeout() { return timeoutBuilder_ != null || timeout_ != null; } /** *
     * Specifies the upstream timeout for the route. If not specified, the default is 15s. This
     * spans between the point at which the entire downstream request (i.e. end-of-stream) has been
     * processed and when the upstream response has been completely processed. A value of 0 will
     * disable the route's timeout.
     * .. note::
     *   This timeout includes all retries. See also
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *   :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration timeout = 8; * @return The timeout. */ public com.google.protobuf.Duration getTimeout() { if (timeoutBuilder_ == null) { return timeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeout_; } else { return timeoutBuilder_.getMessage(); } } /** *
     * Specifies the upstream timeout for the route. If not specified, the default is 15s. This
     * spans between the point at which the entire downstream request (i.e. end-of-stream) has been
     * processed and when the upstream response has been completely processed. A value of 0 will
     * disable the route's timeout.
     * .. note::
     *   This timeout includes all retries. See also
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *   :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration timeout = 8; */ public Builder setTimeout(com.google.protobuf.Duration value) { if (timeoutBuilder_ == null) { if (value == null) { throw new NullPointerException(); } timeout_ = value; onChanged(); } else { timeoutBuilder_.setMessage(value); } return this; } /** *
     * Specifies the upstream timeout for the route. If not specified, the default is 15s. This
     * spans between the point at which the entire downstream request (i.e. end-of-stream) has been
     * processed and when the upstream response has been completely processed. A value of 0 will
     * disable the route's timeout.
     * .. note::
     *   This timeout includes all retries. See also
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *   :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration timeout = 8; */ public Builder setTimeout( com.google.protobuf.Duration.Builder builderForValue) { if (timeoutBuilder_ == null) { timeout_ = builderForValue.build(); onChanged(); } else { timeoutBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Specifies the upstream timeout for the route. If not specified, the default is 15s. This
     * spans between the point at which the entire downstream request (i.e. end-of-stream) has been
     * processed and when the upstream response has been completely processed. A value of 0 will
     * disable the route's timeout.
     * .. note::
     *   This timeout includes all retries. See also
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *   :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration timeout = 8; */ public Builder mergeTimeout(com.google.protobuf.Duration value) { if (timeoutBuilder_ == null) { if (timeout_ != null) { timeout_ = com.google.protobuf.Duration.newBuilder(timeout_).mergeFrom(value).buildPartial(); } else { timeout_ = value; } onChanged(); } else { timeoutBuilder_.mergeFrom(value); } return this; } /** *
     * Specifies the upstream timeout for the route. If not specified, the default is 15s. This
     * spans between the point at which the entire downstream request (i.e. end-of-stream) has been
     * processed and when the upstream response has been completely processed. A value of 0 will
     * disable the route's timeout.
     * .. note::
     *   This timeout includes all retries. See also
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *   :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration timeout = 8; */ public Builder clearTimeout() { if (timeoutBuilder_ == null) { timeout_ = null; onChanged(); } else { timeout_ = null; timeoutBuilder_ = null; } return this; } /** *
     * Specifies the upstream timeout for the route. If not specified, the default is 15s. This
     * spans between the point at which the entire downstream request (i.e. end-of-stream) has been
     * processed and when the upstream response has been completely processed. A value of 0 will
     * disable the route's timeout.
     * .. note::
     *   This timeout includes all retries. See also
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *   :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration timeout = 8; */ public com.google.protobuf.Duration.Builder getTimeoutBuilder() { onChanged(); return getTimeoutFieldBuilder().getBuilder(); } /** *
     * Specifies the upstream timeout for the route. If not specified, the default is 15s. This
     * spans between the point at which the entire downstream request (i.e. end-of-stream) has been
     * processed and when the upstream response has been completely processed. A value of 0 will
     * disable the route's timeout.
     * .. note::
     *   This timeout includes all retries. See also
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *   :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration timeout = 8; */ public com.google.protobuf.DurationOrBuilder getTimeoutOrBuilder() { if (timeoutBuilder_ != null) { return timeoutBuilder_.getMessageOrBuilder(); } else { return timeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeout_; } } /** *
     * Specifies the upstream timeout for the route. If not specified, the default is 15s. This
     * spans between the point at which the entire downstream request (i.e. end-of-stream) has been
     * processed and when the upstream response has been completely processed. A value of 0 will
     * disable the route's timeout.
     * .. note::
     *   This timeout includes all retries. See also
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *   :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *   :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration timeout = 8; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getTimeoutFieldBuilder() { if (timeoutBuilder_ == null) { timeoutBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getTimeout(), getParentForChildren(), isClean()); timeout_ = null; } return timeoutBuilder_; } private com.google.protobuf.Duration idleTimeout_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> idleTimeoutBuilder_; /** *
     * Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
     * although the connection manager wide :ref:`stream_idle_timeout
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
     * will still apply. A value of 0 will completely disable the route's idle timeout, even if a
     * connection manager stream idle timeout is configured.
     * The idle timeout is distinct to :ref:`timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
     * on the upstream response time; :ref:`idle_timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
     * of time the request's stream may be idle.
     * After header decoding, the idle timeout will apply on downstream and
     * upstream request events. Each time an encode/decode event for headers or
     * data is processed for the stream, the timer will be reset. If the timeout
     * fires, the stream is terminated with a 408 Request Timeout error code if no
     * upstream response header has been received, otherwise a stream reset
     * occurs.
     * If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
     * is configured, this timeout is scaled according to the value for
     * :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
     * 
* * .google.protobuf.Duration idle_timeout = 24; * @return Whether the idleTimeout field is set. */ public boolean hasIdleTimeout() { return idleTimeoutBuilder_ != null || idleTimeout_ != null; } /** *
     * Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
     * although the connection manager wide :ref:`stream_idle_timeout
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
     * will still apply. A value of 0 will completely disable the route's idle timeout, even if a
     * connection manager stream idle timeout is configured.
     * The idle timeout is distinct to :ref:`timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
     * on the upstream response time; :ref:`idle_timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
     * of time the request's stream may be idle.
     * After header decoding, the idle timeout will apply on downstream and
     * upstream request events. Each time an encode/decode event for headers or
     * data is processed for the stream, the timer will be reset. If the timeout
     * fires, the stream is terminated with a 408 Request Timeout error code if no
     * upstream response header has been received, otherwise a stream reset
     * occurs.
     * If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
     * is configured, this timeout is scaled according to the value for
     * :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
     * 
* * .google.protobuf.Duration idle_timeout = 24; * @return The idleTimeout. */ public com.google.protobuf.Duration getIdleTimeout() { if (idleTimeoutBuilder_ == null) { return idleTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : idleTimeout_; } else { return idleTimeoutBuilder_.getMessage(); } } /** *
     * Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
     * although the connection manager wide :ref:`stream_idle_timeout
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
     * will still apply. A value of 0 will completely disable the route's idle timeout, even if a
     * connection manager stream idle timeout is configured.
     * The idle timeout is distinct to :ref:`timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
     * on the upstream response time; :ref:`idle_timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
     * of time the request's stream may be idle.
     * After header decoding, the idle timeout will apply on downstream and
     * upstream request events. Each time an encode/decode event for headers or
     * data is processed for the stream, the timer will be reset. If the timeout
     * fires, the stream is terminated with a 408 Request Timeout error code if no
     * upstream response header has been received, otherwise a stream reset
     * occurs.
     * If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
     * is configured, this timeout is scaled according to the value for
     * :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
     * 
* * .google.protobuf.Duration idle_timeout = 24; */ public Builder setIdleTimeout(com.google.protobuf.Duration value) { if (idleTimeoutBuilder_ == null) { if (value == null) { throw new NullPointerException(); } idleTimeout_ = value; onChanged(); } else { idleTimeoutBuilder_.setMessage(value); } return this; } /** *
     * Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
     * although the connection manager wide :ref:`stream_idle_timeout
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
     * will still apply. A value of 0 will completely disable the route's idle timeout, even if a
     * connection manager stream idle timeout is configured.
     * The idle timeout is distinct to :ref:`timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
     * on the upstream response time; :ref:`idle_timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
     * of time the request's stream may be idle.
     * After header decoding, the idle timeout will apply on downstream and
     * upstream request events. Each time an encode/decode event for headers or
     * data is processed for the stream, the timer will be reset. If the timeout
     * fires, the stream is terminated with a 408 Request Timeout error code if no
     * upstream response header has been received, otherwise a stream reset
     * occurs.
     * If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
     * is configured, this timeout is scaled according to the value for
     * :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
     * 
* * .google.protobuf.Duration idle_timeout = 24; */ public Builder setIdleTimeout( com.google.protobuf.Duration.Builder builderForValue) { if (idleTimeoutBuilder_ == null) { idleTimeout_ = builderForValue.build(); onChanged(); } else { idleTimeoutBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
     * although the connection manager wide :ref:`stream_idle_timeout
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
     * will still apply. A value of 0 will completely disable the route's idle timeout, even if a
     * connection manager stream idle timeout is configured.
     * The idle timeout is distinct to :ref:`timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
     * on the upstream response time; :ref:`idle_timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
     * of time the request's stream may be idle.
     * After header decoding, the idle timeout will apply on downstream and
     * upstream request events. Each time an encode/decode event for headers or
     * data is processed for the stream, the timer will be reset. If the timeout
     * fires, the stream is terminated with a 408 Request Timeout error code if no
     * upstream response header has been received, otherwise a stream reset
     * occurs.
     * If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
     * is configured, this timeout is scaled according to the value for
     * :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
     * 
* * .google.protobuf.Duration idle_timeout = 24; */ public Builder mergeIdleTimeout(com.google.protobuf.Duration value) { if (idleTimeoutBuilder_ == null) { if (idleTimeout_ != null) { idleTimeout_ = com.google.protobuf.Duration.newBuilder(idleTimeout_).mergeFrom(value).buildPartial(); } else { idleTimeout_ = value; } onChanged(); } else { idleTimeoutBuilder_.mergeFrom(value); } return this; } /** *
     * Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
     * although the connection manager wide :ref:`stream_idle_timeout
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
     * will still apply. A value of 0 will completely disable the route's idle timeout, even if a
     * connection manager stream idle timeout is configured.
     * The idle timeout is distinct to :ref:`timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
     * on the upstream response time; :ref:`idle_timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
     * of time the request's stream may be idle.
     * After header decoding, the idle timeout will apply on downstream and
     * upstream request events. Each time an encode/decode event for headers or
     * data is processed for the stream, the timer will be reset. If the timeout
     * fires, the stream is terminated with a 408 Request Timeout error code if no
     * upstream response header has been received, otherwise a stream reset
     * occurs.
     * If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
     * is configured, this timeout is scaled according to the value for
     * :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
     * 
* * .google.protobuf.Duration idle_timeout = 24; */ public Builder clearIdleTimeout() { if (idleTimeoutBuilder_ == null) { idleTimeout_ = null; onChanged(); } else { idleTimeout_ = null; idleTimeoutBuilder_ = null; } return this; } /** *
     * Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
     * although the connection manager wide :ref:`stream_idle_timeout
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
     * will still apply. A value of 0 will completely disable the route's idle timeout, even if a
     * connection manager stream idle timeout is configured.
     * The idle timeout is distinct to :ref:`timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
     * on the upstream response time; :ref:`idle_timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
     * of time the request's stream may be idle.
     * After header decoding, the idle timeout will apply on downstream and
     * upstream request events. Each time an encode/decode event for headers or
     * data is processed for the stream, the timer will be reset. If the timeout
     * fires, the stream is terminated with a 408 Request Timeout error code if no
     * upstream response header has been received, otherwise a stream reset
     * occurs.
     * If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
     * is configured, this timeout is scaled according to the value for
     * :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
     * 
* * .google.protobuf.Duration idle_timeout = 24; */ public com.google.protobuf.Duration.Builder getIdleTimeoutBuilder() { onChanged(); return getIdleTimeoutFieldBuilder().getBuilder(); } /** *
     * Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
     * although the connection manager wide :ref:`stream_idle_timeout
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
     * will still apply. A value of 0 will completely disable the route's idle timeout, even if a
     * connection manager stream idle timeout is configured.
     * The idle timeout is distinct to :ref:`timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
     * on the upstream response time; :ref:`idle_timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
     * of time the request's stream may be idle.
     * After header decoding, the idle timeout will apply on downstream and
     * upstream request events. Each time an encode/decode event for headers or
     * data is processed for the stream, the timer will be reset. If the timeout
     * fires, the stream is terminated with a 408 Request Timeout error code if no
     * upstream response header has been received, otherwise a stream reset
     * occurs.
     * If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
     * is configured, this timeout is scaled according to the value for
     * :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
     * 
* * .google.protobuf.Duration idle_timeout = 24; */ public com.google.protobuf.DurationOrBuilder getIdleTimeoutOrBuilder() { if (idleTimeoutBuilder_ != null) { return idleTimeoutBuilder_.getMessageOrBuilder(); } else { return idleTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : idleTimeout_; } } /** *
     * Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
     * although the connection manager wide :ref:`stream_idle_timeout
     * <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
     * will still apply. A value of 0 will completely disable the route's idle timeout, even if a
     * connection manager stream idle timeout is configured.
     * The idle timeout is distinct to :ref:`timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
     * on the upstream response time; :ref:`idle_timeout
     * <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
     * of time the request's stream may be idle.
     * After header decoding, the idle timeout will apply on downstream and
     * upstream request events. Each time an encode/decode event for headers or
     * data is processed for the stream, the timer will be reset. If the timeout
     * fires, the stream is terminated with a 408 Request Timeout error code if no
     * upstream response header has been received, otherwise a stream reset
     * occurs.
     * If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
     * is configured, this timeout is scaled according to the value for
     * :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
     * 
* * .google.protobuf.Duration idle_timeout = 24; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getIdleTimeoutFieldBuilder() { if (idleTimeoutBuilder_ == null) { idleTimeoutBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getIdleTimeout(), getParentForChildren(), isClean()); idleTimeout_ = null; } return idleTimeoutBuilder_; } private io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig earlyDataPolicy_; 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> earlyDataPolicyBuilder_; /** *
     * Specifies how to send request over TLS early data.
     * If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
     * [#extension-category: envoy.route.early_data_policy]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40; * @return Whether the earlyDataPolicy field is set. */ public boolean hasEarlyDataPolicy() { return earlyDataPolicyBuilder_ != null || earlyDataPolicy_ != null; } /** *
     * Specifies how to send request over TLS early data.
     * If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
     * [#extension-category: envoy.route.early_data_policy]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40; * @return The earlyDataPolicy. */ public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig getEarlyDataPolicy() { if (earlyDataPolicyBuilder_ == null) { return earlyDataPolicy_ == null ? io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance() : earlyDataPolicy_; } else { return earlyDataPolicyBuilder_.getMessage(); } } /** *
     * Specifies how to send request over TLS early data.
     * If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
     * [#extension-category: envoy.route.early_data_policy]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40; */ public Builder setEarlyDataPolicy(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig value) { if (earlyDataPolicyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } earlyDataPolicy_ = value; onChanged(); } else { earlyDataPolicyBuilder_.setMessage(value); } return this; } /** *
     * Specifies how to send request over TLS early data.
     * If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
     * [#extension-category: envoy.route.early_data_policy]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40; */ public Builder setEarlyDataPolicy( io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder builderForValue) { if (earlyDataPolicyBuilder_ == null) { earlyDataPolicy_ = builderForValue.build(); onChanged(); } else { earlyDataPolicyBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Specifies how to send request over TLS early data.
     * If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
     * [#extension-category: envoy.route.early_data_policy]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40; */ public Builder mergeEarlyDataPolicy(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig value) { if (earlyDataPolicyBuilder_ == null) { if (earlyDataPolicy_ != null) { earlyDataPolicy_ = io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.newBuilder(earlyDataPolicy_).mergeFrom(value).buildPartial(); } else { earlyDataPolicy_ = value; } onChanged(); } else { earlyDataPolicyBuilder_.mergeFrom(value); } return this; } /** *
     * Specifies how to send request over TLS early data.
     * If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
     * [#extension-category: envoy.route.early_data_policy]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40; */ public Builder clearEarlyDataPolicy() { if (earlyDataPolicyBuilder_ == null) { earlyDataPolicy_ = null; onChanged(); } else { earlyDataPolicy_ = null; earlyDataPolicyBuilder_ = null; } return this; } /** *
     * Specifies how to send request over TLS early data.
     * If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
     * [#extension-category: envoy.route.early_data_policy]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40; */ public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder getEarlyDataPolicyBuilder() { onChanged(); return getEarlyDataPolicyFieldBuilder().getBuilder(); } /** *
     * Specifies how to send request over TLS early data.
     * If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
     * [#extension-category: envoy.route.early_data_policy]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40; */ public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder getEarlyDataPolicyOrBuilder() { if (earlyDataPolicyBuilder_ != null) { return earlyDataPolicyBuilder_.getMessageOrBuilder(); } else { return earlyDataPolicy_ == null ? io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance() : earlyDataPolicy_; } } /** *
     * Specifies how to send request over TLS early data.
     * If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
     * [#extension-category: envoy.route.early_data_policy]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40; */ 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> getEarlyDataPolicyFieldBuilder() { if (earlyDataPolicyBuilder_ == null) { earlyDataPolicyBuilder_ = 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>( getEarlyDataPolicy(), getParentForChildren(), isClean()); earlyDataPolicy_ = null; } return earlyDataPolicyBuilder_; } private io.envoyproxy.envoy.config.route.v3.RetryPolicy retryPolicy_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RetryPolicy, io.envoyproxy.envoy.config.route.v3.RetryPolicy.Builder, io.envoyproxy.envoy.config.route.v3.RetryPolicyOrBuilder> retryPolicyBuilder_; /** *
     * Indicates that the route has a retry policy. Note that if this is set,
     * it'll take precedence over the virtual host level retry policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.RetryPolicy retry_policy = 9; * @return Whether the retryPolicy field is set. */ public boolean hasRetryPolicy() { return retryPolicyBuilder_ != null || retryPolicy_ != null; } /** *
     * Indicates that the route has a retry policy. Note that if this is set,
     * it'll take precedence over the virtual host level retry policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.RetryPolicy retry_policy = 9; * @return The retryPolicy. */ public io.envoyproxy.envoy.config.route.v3.RetryPolicy getRetryPolicy() { if (retryPolicyBuilder_ == null) { return retryPolicy_ == null ? io.envoyproxy.envoy.config.route.v3.RetryPolicy.getDefaultInstance() : retryPolicy_; } else { return retryPolicyBuilder_.getMessage(); } } /** *
     * Indicates that the route has a retry policy. Note that if this is set,
     * it'll take precedence over the virtual host level retry policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.RetryPolicy retry_policy = 9; */ public Builder setRetryPolicy(io.envoyproxy.envoy.config.route.v3.RetryPolicy value) { if (retryPolicyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } retryPolicy_ = value; onChanged(); } else { retryPolicyBuilder_.setMessage(value); } return this; } /** *
     * Indicates that the route has a retry policy. Note that if this is set,
     * it'll take precedence over the virtual host level retry policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.RetryPolicy retry_policy = 9; */ public Builder setRetryPolicy( io.envoyproxy.envoy.config.route.v3.RetryPolicy.Builder builderForValue) { if (retryPolicyBuilder_ == null) { retryPolicy_ = builderForValue.build(); onChanged(); } else { retryPolicyBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Indicates that the route has a retry policy. Note that if this is set,
     * it'll take precedence over the virtual host level retry policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.RetryPolicy retry_policy = 9; */ public Builder mergeRetryPolicy(io.envoyproxy.envoy.config.route.v3.RetryPolicy value) { if (retryPolicyBuilder_ == null) { if (retryPolicy_ != null) { retryPolicy_ = io.envoyproxy.envoy.config.route.v3.RetryPolicy.newBuilder(retryPolicy_).mergeFrom(value).buildPartial(); } else { retryPolicy_ = value; } onChanged(); } else { retryPolicyBuilder_.mergeFrom(value); } return this; } /** *
     * Indicates that the route has a retry policy. Note that if this is set,
     * it'll take precedence over the virtual host level retry policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.RetryPolicy retry_policy = 9; */ public Builder clearRetryPolicy() { if (retryPolicyBuilder_ == null) { retryPolicy_ = null; onChanged(); } else { retryPolicy_ = null; retryPolicyBuilder_ = null; } return this; } /** *
     * Indicates that the route has a retry policy. Note that if this is set,
     * it'll take precedence over the virtual host level retry policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.RetryPolicy retry_policy = 9; */ public io.envoyproxy.envoy.config.route.v3.RetryPolicy.Builder getRetryPolicyBuilder() { onChanged(); return getRetryPolicyFieldBuilder().getBuilder(); } /** *
     * Indicates that the route has a retry policy. Note that if this is set,
     * it'll take precedence over the virtual host level retry policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.RetryPolicy retry_policy = 9; */ public io.envoyproxy.envoy.config.route.v3.RetryPolicyOrBuilder getRetryPolicyOrBuilder() { if (retryPolicyBuilder_ != null) { return retryPolicyBuilder_.getMessageOrBuilder(); } else { return retryPolicy_ == null ? io.envoyproxy.envoy.config.route.v3.RetryPolicy.getDefaultInstance() : retryPolicy_; } } /** *
     * Indicates that the route has a retry policy. Note that if this is set,
     * it'll take precedence over the virtual host level retry policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.RetryPolicy retry_policy = 9; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RetryPolicy, io.envoyproxy.envoy.config.route.v3.RetryPolicy.Builder, io.envoyproxy.envoy.config.route.v3.RetryPolicyOrBuilder> getRetryPolicyFieldBuilder() { if (retryPolicyBuilder_ == null) { retryPolicyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RetryPolicy, io.envoyproxy.envoy.config.route.v3.RetryPolicy.Builder, io.envoyproxy.envoy.config.route.v3.RetryPolicyOrBuilder>( getRetryPolicy(), getParentForChildren(), isClean()); retryPolicy_ = null; } return retryPolicyBuilder_; } private com.google.protobuf.Any retryPolicyTypedConfig_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> retryPolicyTypedConfigBuilder_; /** *
     * [#not-implemented-hide:]
     * Specifies the configuration for retry policy extension. Note that if this is set, it'll take
     * precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
     * most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
     * should not be set if this field is used.
     * 
* * .google.protobuf.Any retry_policy_typed_config = 33; * @return Whether the retryPolicyTypedConfig field is set. */ public boolean hasRetryPolicyTypedConfig() { return retryPolicyTypedConfigBuilder_ != null || retryPolicyTypedConfig_ != null; } /** *
     * [#not-implemented-hide:]
     * Specifies the configuration for retry policy extension. Note that if this is set, it'll take
     * precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
     * most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
     * should not be set if this field is used.
     * 
* * .google.protobuf.Any retry_policy_typed_config = 33; * @return The retryPolicyTypedConfig. */ public com.google.protobuf.Any getRetryPolicyTypedConfig() { if (retryPolicyTypedConfigBuilder_ == null) { return retryPolicyTypedConfig_ == null ? com.google.protobuf.Any.getDefaultInstance() : retryPolicyTypedConfig_; } else { return retryPolicyTypedConfigBuilder_.getMessage(); } } /** *
     * [#not-implemented-hide:]
     * Specifies the configuration for retry policy extension. Note that if this is set, it'll take
     * precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
     * most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
     * should not be set if this field is used.
     * 
* * .google.protobuf.Any retry_policy_typed_config = 33; */ public Builder setRetryPolicyTypedConfig(com.google.protobuf.Any value) { if (retryPolicyTypedConfigBuilder_ == null) { if (value == null) { throw new NullPointerException(); } retryPolicyTypedConfig_ = value; onChanged(); } else { retryPolicyTypedConfigBuilder_.setMessage(value); } return this; } /** *
     * [#not-implemented-hide:]
     * Specifies the configuration for retry policy extension. Note that if this is set, it'll take
     * precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
     * most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
     * should not be set if this field is used.
     * 
* * .google.protobuf.Any retry_policy_typed_config = 33; */ public Builder setRetryPolicyTypedConfig( com.google.protobuf.Any.Builder builderForValue) { if (retryPolicyTypedConfigBuilder_ == null) { retryPolicyTypedConfig_ = builderForValue.build(); onChanged(); } else { retryPolicyTypedConfigBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * [#not-implemented-hide:]
     * Specifies the configuration for retry policy extension. Note that if this is set, it'll take
     * precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
     * most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
     * should not be set if this field is used.
     * 
* * .google.protobuf.Any retry_policy_typed_config = 33; */ public Builder mergeRetryPolicyTypedConfig(com.google.protobuf.Any value) { if (retryPolicyTypedConfigBuilder_ == null) { if (retryPolicyTypedConfig_ != null) { retryPolicyTypedConfig_ = com.google.protobuf.Any.newBuilder(retryPolicyTypedConfig_).mergeFrom(value).buildPartial(); } else { retryPolicyTypedConfig_ = value; } onChanged(); } else { retryPolicyTypedConfigBuilder_.mergeFrom(value); } return this; } /** *
     * [#not-implemented-hide:]
     * Specifies the configuration for retry policy extension. Note that if this is set, it'll take
     * precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
     * most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
     * should not be set if this field is used.
     * 
* * .google.protobuf.Any retry_policy_typed_config = 33; */ public Builder clearRetryPolicyTypedConfig() { if (retryPolicyTypedConfigBuilder_ == null) { retryPolicyTypedConfig_ = null; onChanged(); } else { retryPolicyTypedConfig_ = null; retryPolicyTypedConfigBuilder_ = null; } return this; } /** *
     * [#not-implemented-hide:]
     * Specifies the configuration for retry policy extension. Note that if this is set, it'll take
     * precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
     * most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
     * should not be set if this field is used.
     * 
* * .google.protobuf.Any retry_policy_typed_config = 33; */ public com.google.protobuf.Any.Builder getRetryPolicyTypedConfigBuilder() { onChanged(); return getRetryPolicyTypedConfigFieldBuilder().getBuilder(); } /** *
     * [#not-implemented-hide:]
     * Specifies the configuration for retry policy extension. Note that if this is set, it'll take
     * precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
     * most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
     * should not be set if this field is used.
     * 
* * .google.protobuf.Any retry_policy_typed_config = 33; */ public com.google.protobuf.AnyOrBuilder getRetryPolicyTypedConfigOrBuilder() { if (retryPolicyTypedConfigBuilder_ != null) { return retryPolicyTypedConfigBuilder_.getMessageOrBuilder(); } else { return retryPolicyTypedConfig_ == null ? com.google.protobuf.Any.getDefaultInstance() : retryPolicyTypedConfig_; } } /** *
     * [#not-implemented-hide:]
     * Specifies the configuration for retry policy extension. Note that if this is set, it'll take
     * precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
     * most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
     * should not be set if this field is used.
     * 
* * .google.protobuf.Any retry_policy_typed_config = 33; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> getRetryPolicyTypedConfigFieldBuilder() { if (retryPolicyTypedConfigBuilder_ == null) { retryPolicyTypedConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder>( getRetryPolicyTypedConfig(), getParentForChildren(), isClean()); retryPolicyTypedConfig_ = null; } return retryPolicyTypedConfigBuilder_; } private java.util.List requestMirrorPolicies_ = java.util.Collections.emptyList(); private void ensureRequestMirrorPoliciesIsMutable() { if (!((bitField0_ & 0x00000001) != 0)) { requestMirrorPolicies_ = new java.util.ArrayList(requestMirrorPolicies_); bitField0_ |= 0x00000001; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy, io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicyOrBuilder> requestMirrorPoliciesBuilder_; /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public java.util.List getRequestMirrorPoliciesList() { if (requestMirrorPoliciesBuilder_ == null) { return java.util.Collections.unmodifiableList(requestMirrorPolicies_); } else { return requestMirrorPoliciesBuilder_.getMessageList(); } } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public int getRequestMirrorPoliciesCount() { if (requestMirrorPoliciesBuilder_ == null) { return requestMirrorPolicies_.size(); } else { return requestMirrorPoliciesBuilder_.getCount(); } } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy getRequestMirrorPolicies(int index) { if (requestMirrorPoliciesBuilder_ == null) { return requestMirrorPolicies_.get(index); } else { return requestMirrorPoliciesBuilder_.getMessage(index); } } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public Builder setRequestMirrorPolicies( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy value) { if (requestMirrorPoliciesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureRequestMirrorPoliciesIsMutable(); requestMirrorPolicies_.set(index, value); onChanged(); } else { requestMirrorPoliciesBuilder_.setMessage(index, value); } return this; } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public Builder setRequestMirrorPolicies( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.Builder builderForValue) { if (requestMirrorPoliciesBuilder_ == null) { ensureRequestMirrorPoliciesIsMutable(); requestMirrorPolicies_.set(index, builderForValue.build()); onChanged(); } else { requestMirrorPoliciesBuilder_.setMessage(index, builderForValue.build()); } return this; } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public Builder addRequestMirrorPolicies(io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy value) { if (requestMirrorPoliciesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureRequestMirrorPoliciesIsMutable(); requestMirrorPolicies_.add(value); onChanged(); } else { requestMirrorPoliciesBuilder_.addMessage(value); } return this; } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public Builder addRequestMirrorPolicies( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy value) { if (requestMirrorPoliciesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureRequestMirrorPoliciesIsMutable(); requestMirrorPolicies_.add(index, value); onChanged(); } else { requestMirrorPoliciesBuilder_.addMessage(index, value); } return this; } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public Builder addRequestMirrorPolicies( io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.Builder builderForValue) { if (requestMirrorPoliciesBuilder_ == null) { ensureRequestMirrorPoliciesIsMutable(); requestMirrorPolicies_.add(builderForValue.build()); onChanged(); } else { requestMirrorPoliciesBuilder_.addMessage(builderForValue.build()); } return this; } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public Builder addRequestMirrorPolicies( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.Builder builderForValue) { if (requestMirrorPoliciesBuilder_ == null) { ensureRequestMirrorPoliciesIsMutable(); requestMirrorPolicies_.add(index, builderForValue.build()); onChanged(); } else { requestMirrorPoliciesBuilder_.addMessage(index, builderForValue.build()); } return this; } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public Builder addAllRequestMirrorPolicies( java.lang.Iterable values) { if (requestMirrorPoliciesBuilder_ == null) { ensureRequestMirrorPoliciesIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, requestMirrorPolicies_); onChanged(); } else { requestMirrorPoliciesBuilder_.addAllMessages(values); } return this; } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public Builder clearRequestMirrorPolicies() { if (requestMirrorPoliciesBuilder_ == null) { requestMirrorPolicies_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); } else { requestMirrorPoliciesBuilder_.clear(); } return this; } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public Builder removeRequestMirrorPolicies(int index) { if (requestMirrorPoliciesBuilder_ == null) { ensureRequestMirrorPoliciesIsMutable(); requestMirrorPolicies_.remove(index); onChanged(); } else { requestMirrorPoliciesBuilder_.remove(index); } return this; } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.Builder getRequestMirrorPoliciesBuilder( int index) { return getRequestMirrorPoliciesFieldBuilder().getBuilder(index); } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicyOrBuilder getRequestMirrorPoliciesOrBuilder( int index) { if (requestMirrorPoliciesBuilder_ == null) { return requestMirrorPolicies_.get(index); } else { return requestMirrorPoliciesBuilder_.getMessageOrBuilder(index); } } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public java.util.List getRequestMirrorPoliciesOrBuilderList() { if (requestMirrorPoliciesBuilder_ != null) { return requestMirrorPoliciesBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(requestMirrorPolicies_); } } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.Builder addRequestMirrorPoliciesBuilder() { return getRequestMirrorPoliciesFieldBuilder().addBuilder( io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.getDefaultInstance()); } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.Builder addRequestMirrorPoliciesBuilder( int index) { return getRequestMirrorPoliciesFieldBuilder().addBuilder( index, io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.getDefaultInstance()); } /** *
     * Specify a set of route request mirroring policies.
     * It takes precedence over the virtual host and route config mirror policy entirely.
     * That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
     * 
* * repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30; */ public java.util.List getRequestMirrorPoliciesBuilderList() { return getRequestMirrorPoliciesFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy, io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicyOrBuilder> getRequestMirrorPoliciesFieldBuilder() { if (requestMirrorPoliciesBuilder_ == null) { requestMirrorPoliciesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy, io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicy.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.RequestMirrorPolicyOrBuilder>( requestMirrorPolicies_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); requestMirrorPolicies_ = null; } return requestMirrorPoliciesBuilder_; } private int priority_ = 0; /** *
     * Optionally specifies the :ref:`routing priority <arch_overview_http_routing_priority>`.
     * 
* * .envoy.config.core.v3.RoutingPriority priority = 11 [(.validate.rules) = { ... } * @return The enum numeric value on the wire for priority. */ @java.lang.Override public int getPriorityValue() { return priority_; } /** *
     * Optionally specifies the :ref:`routing priority <arch_overview_http_routing_priority>`.
     * 
* * .envoy.config.core.v3.RoutingPriority priority = 11 [(.validate.rules) = { ... } * @param value The enum numeric value on the wire for priority to set. * @return This builder for chaining. */ public Builder setPriorityValue(int value) { priority_ = value; onChanged(); return this; } /** *
     * Optionally specifies the :ref:`routing priority <arch_overview_http_routing_priority>`.
     * 
* * .envoy.config.core.v3.RoutingPriority priority = 11 [(.validate.rules) = { ... } * @return The priority. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.RoutingPriority getPriority() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.core.v3.RoutingPriority result = io.envoyproxy.envoy.config.core.v3.RoutingPriority.valueOf(priority_); return result == null ? io.envoyproxy.envoy.config.core.v3.RoutingPriority.UNRECOGNIZED : result; } /** *
     * Optionally specifies the :ref:`routing priority <arch_overview_http_routing_priority>`.
     * 
* * .envoy.config.core.v3.RoutingPriority priority = 11 [(.validate.rules) = { ... } * @param value The priority to set. * @return This builder for chaining. */ public Builder setPriority(io.envoyproxy.envoy.config.core.v3.RoutingPriority value) { if (value == null) { throw new NullPointerException(); } priority_ = value.getNumber(); onChanged(); return this; } /** *
     * Optionally specifies the :ref:`routing priority <arch_overview_http_routing_priority>`.
     * 
* * .envoy.config.core.v3.RoutingPriority priority = 11 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearPriority() { priority_ = 0; onChanged(); return this; } private java.util.List rateLimits_ = java.util.Collections.emptyList(); private void ensureRateLimitsIsMutable() { if (!((bitField0_ & 0x00000002) != 0)) { rateLimits_ = new java.util.ArrayList(rateLimits_); bitField0_ |= 0x00000002; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RateLimit, io.envoyproxy.envoy.config.route.v3.RateLimit.Builder, io.envoyproxy.envoy.config.route.v3.RateLimitOrBuilder> rateLimitsBuilder_; /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public java.util.List getRateLimitsList() { if (rateLimitsBuilder_ == null) { return java.util.Collections.unmodifiableList(rateLimits_); } else { return rateLimitsBuilder_.getMessageList(); } } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public int getRateLimitsCount() { if (rateLimitsBuilder_ == null) { return rateLimits_.size(); } else { return rateLimitsBuilder_.getCount(); } } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public io.envoyproxy.envoy.config.route.v3.RateLimit getRateLimits(int index) { if (rateLimitsBuilder_ == null) { return rateLimits_.get(index); } else { return rateLimitsBuilder_.getMessage(index); } } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public Builder setRateLimits( int index, io.envoyproxy.envoy.config.route.v3.RateLimit value) { if (rateLimitsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureRateLimitsIsMutable(); rateLimits_.set(index, value); onChanged(); } else { rateLimitsBuilder_.setMessage(index, value); } return this; } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public Builder setRateLimits( int index, io.envoyproxy.envoy.config.route.v3.RateLimit.Builder builderForValue) { if (rateLimitsBuilder_ == null) { ensureRateLimitsIsMutable(); rateLimits_.set(index, builderForValue.build()); onChanged(); } else { rateLimitsBuilder_.setMessage(index, builderForValue.build()); } return this; } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public Builder addRateLimits(io.envoyproxy.envoy.config.route.v3.RateLimit value) { if (rateLimitsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureRateLimitsIsMutable(); rateLimits_.add(value); onChanged(); } else { rateLimitsBuilder_.addMessage(value); } return this; } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public Builder addRateLimits( int index, io.envoyproxy.envoy.config.route.v3.RateLimit value) { if (rateLimitsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureRateLimitsIsMutable(); rateLimits_.add(index, value); onChanged(); } else { rateLimitsBuilder_.addMessage(index, value); } return this; } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public Builder addRateLimits( io.envoyproxy.envoy.config.route.v3.RateLimit.Builder builderForValue) { if (rateLimitsBuilder_ == null) { ensureRateLimitsIsMutable(); rateLimits_.add(builderForValue.build()); onChanged(); } else { rateLimitsBuilder_.addMessage(builderForValue.build()); } return this; } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public Builder addRateLimits( int index, io.envoyproxy.envoy.config.route.v3.RateLimit.Builder builderForValue) { if (rateLimitsBuilder_ == null) { ensureRateLimitsIsMutable(); rateLimits_.add(index, builderForValue.build()); onChanged(); } else { rateLimitsBuilder_.addMessage(index, builderForValue.build()); } return this; } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public Builder addAllRateLimits( java.lang.Iterable values) { if (rateLimitsBuilder_ == null) { ensureRateLimitsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, rateLimits_); onChanged(); } else { rateLimitsBuilder_.addAllMessages(values); } return this; } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public Builder clearRateLimits() { if (rateLimitsBuilder_ == null) { rateLimits_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000002); onChanged(); } else { rateLimitsBuilder_.clear(); } return this; } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public Builder removeRateLimits(int index) { if (rateLimitsBuilder_ == null) { ensureRateLimitsIsMutable(); rateLimits_.remove(index); onChanged(); } else { rateLimitsBuilder_.remove(index); } return this; } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public io.envoyproxy.envoy.config.route.v3.RateLimit.Builder getRateLimitsBuilder( int index) { return getRateLimitsFieldBuilder().getBuilder(index); } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public io.envoyproxy.envoy.config.route.v3.RateLimitOrBuilder getRateLimitsOrBuilder( int index) { if (rateLimitsBuilder_ == null) { return rateLimits_.get(index); } else { return rateLimitsBuilder_.getMessageOrBuilder(index); } } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public java.util.List getRateLimitsOrBuilderList() { if (rateLimitsBuilder_ != null) { return rateLimitsBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(rateLimits_); } } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public io.envoyproxy.envoy.config.route.v3.RateLimit.Builder addRateLimitsBuilder() { return getRateLimitsFieldBuilder().addBuilder( io.envoyproxy.envoy.config.route.v3.RateLimit.getDefaultInstance()); } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public io.envoyproxy.envoy.config.route.v3.RateLimit.Builder addRateLimitsBuilder( int index) { return getRateLimitsFieldBuilder().addBuilder( index, io.envoyproxy.envoy.config.route.v3.RateLimit.getDefaultInstance()); } /** *
     * Specifies a set of rate limit configurations that could be applied to the
     * route.
     * 
* * repeated .envoy.config.route.v3.RateLimit rate_limits = 13; */ public java.util.List getRateLimitsBuilderList() { return getRateLimitsFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RateLimit, io.envoyproxy.envoy.config.route.v3.RateLimit.Builder, io.envoyproxy.envoy.config.route.v3.RateLimitOrBuilder> getRateLimitsFieldBuilder() { if (rateLimitsBuilder_ == null) { rateLimitsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RateLimit, io.envoyproxy.envoy.config.route.v3.RateLimit.Builder, io.envoyproxy.envoy.config.route.v3.RateLimitOrBuilder>( rateLimits_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); rateLimits_ = null; } return rateLimitsBuilder_; } private com.google.protobuf.BoolValue includeVhRateLimits_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> includeVhRateLimitsBuilder_; /** *
     * Specifies if the rate limit filter should include the virtual host rate
     * limits. By default, if the route configured rate limits, the virtual host
     * :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
     * request.
     * This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
     * 
* * .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.include_vh_rate_limits is deprecated. * See envoy/config/route/v3/route_components.proto;l=1288 * @return Whether the includeVhRateLimits field is set. */ @java.lang.Deprecated public boolean hasIncludeVhRateLimits() { return includeVhRateLimitsBuilder_ != null || includeVhRateLimits_ != null; } /** *
     * Specifies if the rate limit filter should include the virtual host rate
     * limits. By default, if the route configured rate limits, the virtual host
     * :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
     * request.
     * This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
     * 
* * .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.include_vh_rate_limits is deprecated. * See envoy/config/route/v3/route_components.proto;l=1288 * @return The includeVhRateLimits. */ @java.lang.Deprecated public com.google.protobuf.BoolValue getIncludeVhRateLimits() { if (includeVhRateLimitsBuilder_ == null) { return includeVhRateLimits_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : includeVhRateLimits_; } else { return includeVhRateLimitsBuilder_.getMessage(); } } /** *
     * Specifies if the rate limit filter should include the virtual host rate
     * limits. By default, if the route configured rate limits, the virtual host
     * :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
     * request.
     * This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
     * 
* * .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setIncludeVhRateLimits(com.google.protobuf.BoolValue value) { if (includeVhRateLimitsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } includeVhRateLimits_ = value; onChanged(); } else { includeVhRateLimitsBuilder_.setMessage(value); } return this; } /** *
     * Specifies if the rate limit filter should include the virtual host rate
     * limits. By default, if the route configured rate limits, the virtual host
     * :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
     * request.
     * This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
     * 
* * .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setIncludeVhRateLimits( com.google.protobuf.BoolValue.Builder builderForValue) { if (includeVhRateLimitsBuilder_ == null) { includeVhRateLimits_ = builderForValue.build(); onChanged(); } else { includeVhRateLimitsBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Specifies if the rate limit filter should include the virtual host rate
     * limits. By default, if the route configured rate limits, the virtual host
     * :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
     * request.
     * This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
     * 
* * .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder mergeIncludeVhRateLimits(com.google.protobuf.BoolValue value) { if (includeVhRateLimitsBuilder_ == null) { if (includeVhRateLimits_ != null) { includeVhRateLimits_ = com.google.protobuf.BoolValue.newBuilder(includeVhRateLimits_).mergeFrom(value).buildPartial(); } else { includeVhRateLimits_ = value; } onChanged(); } else { includeVhRateLimitsBuilder_.mergeFrom(value); } return this; } /** *
     * Specifies if the rate limit filter should include the virtual host rate
     * limits. By default, if the route configured rate limits, the virtual host
     * :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
     * request.
     * This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
     * 
* * .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder clearIncludeVhRateLimits() { if (includeVhRateLimitsBuilder_ == null) { includeVhRateLimits_ = null; onChanged(); } else { includeVhRateLimits_ = null; includeVhRateLimitsBuilder_ = null; } return this; } /** *
     * Specifies if the rate limit filter should include the virtual host rate
     * limits. By default, if the route configured rate limits, the virtual host
     * :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
     * request.
     * This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
     * 
* * .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public com.google.protobuf.BoolValue.Builder getIncludeVhRateLimitsBuilder() { onChanged(); return getIncludeVhRateLimitsFieldBuilder().getBuilder(); } /** *
     * Specifies if the rate limit filter should include the virtual host rate
     * limits. By default, if the route configured rate limits, the virtual host
     * :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
     * request.
     * This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
     * 
* * .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public com.google.protobuf.BoolValueOrBuilder getIncludeVhRateLimitsOrBuilder() { if (includeVhRateLimitsBuilder_ != null) { return includeVhRateLimitsBuilder_.getMessageOrBuilder(); } else { return includeVhRateLimits_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : includeVhRateLimits_; } } /** *
     * Specifies if the rate limit filter should include the virtual host rate
     * limits. By default, if the route configured rate limits, the virtual host
     * :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
     * request.
     * This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
     * 
* * .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> getIncludeVhRateLimitsFieldBuilder() { if (includeVhRateLimitsBuilder_ == null) { includeVhRateLimitsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>( getIncludeVhRateLimits(), getParentForChildren(), isClean()); includeVhRateLimits_ = null; } return includeVhRateLimitsBuilder_; } private java.util.List hashPolicy_ = java.util.Collections.emptyList(); private void ensureHashPolicyIsMutable() { if (!((bitField0_ & 0x00000004) != 0)) { hashPolicy_ = new java.util.ArrayList(hashPolicy_); bitField0_ |= 0x00000004; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicyOrBuilder> hashPolicyBuilder_; /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public java.util.List getHashPolicyList() { if (hashPolicyBuilder_ == null) { return java.util.Collections.unmodifiableList(hashPolicy_); } else { return hashPolicyBuilder_.getMessageList(); } } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public int getHashPolicyCount() { if (hashPolicyBuilder_ == null) { return hashPolicy_.size(); } else { return hashPolicyBuilder_.getCount(); } } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy getHashPolicy(int index) { if (hashPolicyBuilder_ == null) { return hashPolicy_.get(index); } else { return hashPolicyBuilder_.getMessage(index); } } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public Builder setHashPolicy( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy value) { if (hashPolicyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureHashPolicyIsMutable(); hashPolicy_.set(index, value); onChanged(); } else { hashPolicyBuilder_.setMessage(index, value); } return this; } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public Builder setHashPolicy( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Builder builderForValue) { if (hashPolicyBuilder_ == null) { ensureHashPolicyIsMutable(); hashPolicy_.set(index, builderForValue.build()); onChanged(); } else { hashPolicyBuilder_.setMessage(index, builderForValue.build()); } return this; } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public Builder addHashPolicy(io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy value) { if (hashPolicyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureHashPolicyIsMutable(); hashPolicy_.add(value); onChanged(); } else { hashPolicyBuilder_.addMessage(value); } return this; } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public Builder addHashPolicy( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy value) { if (hashPolicyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureHashPolicyIsMutable(); hashPolicy_.add(index, value); onChanged(); } else { hashPolicyBuilder_.addMessage(index, value); } return this; } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public Builder addHashPolicy( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Builder builderForValue) { if (hashPolicyBuilder_ == null) { ensureHashPolicyIsMutable(); hashPolicy_.add(builderForValue.build()); onChanged(); } else { hashPolicyBuilder_.addMessage(builderForValue.build()); } return this; } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public Builder addHashPolicy( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Builder builderForValue) { if (hashPolicyBuilder_ == null) { ensureHashPolicyIsMutable(); hashPolicy_.add(index, builderForValue.build()); onChanged(); } else { hashPolicyBuilder_.addMessage(index, builderForValue.build()); } return this; } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public Builder addAllHashPolicy( java.lang.Iterable values) { if (hashPolicyBuilder_ == null) { ensureHashPolicyIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, hashPolicy_); onChanged(); } else { hashPolicyBuilder_.addAllMessages(values); } return this; } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public Builder clearHashPolicy() { if (hashPolicyBuilder_ == null) { hashPolicy_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000004); onChanged(); } else { hashPolicyBuilder_.clear(); } return this; } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public Builder removeHashPolicy(int index) { if (hashPolicyBuilder_ == null) { ensureHashPolicyIsMutable(); hashPolicy_.remove(index); onChanged(); } else { hashPolicyBuilder_.remove(index); } return this; } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Builder getHashPolicyBuilder( int index) { return getHashPolicyFieldBuilder().getBuilder(index); } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicyOrBuilder getHashPolicyOrBuilder( int index) { if (hashPolicyBuilder_ == null) { return hashPolicy_.get(index); } else { return hashPolicyBuilder_.getMessageOrBuilder(index); } } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public java.util.List getHashPolicyOrBuilderList() { if (hashPolicyBuilder_ != null) { return hashPolicyBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(hashPolicy_); } } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Builder addHashPolicyBuilder() { return getHashPolicyFieldBuilder().addBuilder( io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.getDefaultInstance()); } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Builder addHashPolicyBuilder( int index) { return getHashPolicyFieldBuilder().addBuilder( index, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.getDefaultInstance()); } /** *
     * Specifies a list of hash policies to use for ring hash load balancing. Each
     * hash policy is evaluated individually and the combined result is used to
     * route the request. The method of combination is deterministic such that
     * identical lists of hash policies will produce the same hash. Since a hash
     * policy examines specific parts of a request, it can fail to produce a hash
     * (i.e. if the hashed header is not present). If (and only if) all configured
     * hash policies fail to generate a hash, no hash will be produced for
     * the route. In this case, the behavior is the same as if no hash policies
     * were specified (i.e. the ring hash load balancer will choose a random
     * backend). If a hash policy has the "terminal" attribute set to true, and
     * there is already a hash generated, the hash is returned immediately,
     * ignoring the rest of the hash policy list.
     * 
* * repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15; */ public java.util.List getHashPolicyBuilderList() { return getHashPolicyFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicyOrBuilder> getHashPolicyFieldBuilder() { if (hashPolicyBuilder_ == null) { hashPolicyBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicy.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.HashPolicyOrBuilder>( hashPolicy_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); hashPolicy_ = null; } return hashPolicyBuilder_; } private io.envoyproxy.envoy.config.route.v3.CorsPolicy cors_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.CorsPolicy, io.envoyproxy.envoy.config.route.v3.CorsPolicy.Builder, io.envoyproxy.envoy.config.route.v3.CorsPolicyOrBuilder> corsBuilder_; /** *
     * Indicates that the route has a CORS policy. This field is ignored if related cors policy is
     * found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     * :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
     * .. attention::
     *   This option has been deprecated. Please use
     *   :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     *   :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
     *   to configure the CORS HTTP filter.
     * 
* * .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.cors is deprecated. * See envoy/config/route/v3/route_components.proto;l=1315 * @return Whether the cors field is set. */ @java.lang.Deprecated public boolean hasCors() { return corsBuilder_ != null || cors_ != null; } /** *
     * Indicates that the route has a CORS policy. This field is ignored if related cors policy is
     * found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     * :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
     * .. attention::
     *   This option has been deprecated. Please use
     *   :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     *   :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
     *   to configure the CORS HTTP filter.
     * 
* * .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.cors is deprecated. * See envoy/config/route/v3/route_components.proto;l=1315 * @return The cors. */ @java.lang.Deprecated public io.envoyproxy.envoy.config.route.v3.CorsPolicy getCors() { if (corsBuilder_ == null) { return cors_ == null ? io.envoyproxy.envoy.config.route.v3.CorsPolicy.getDefaultInstance() : cors_; } else { return corsBuilder_.getMessage(); } } /** *
     * Indicates that the route has a CORS policy. This field is ignored if related cors policy is
     * found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     * :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
     * .. attention::
     *   This option has been deprecated. Please use
     *   :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     *   :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
     *   to configure the CORS HTTP filter.
     * 
* * .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setCors(io.envoyproxy.envoy.config.route.v3.CorsPolicy value) { if (corsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } cors_ = value; onChanged(); } else { corsBuilder_.setMessage(value); } return this; } /** *
     * Indicates that the route has a CORS policy. This field is ignored if related cors policy is
     * found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     * :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
     * .. attention::
     *   This option has been deprecated. Please use
     *   :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     *   :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
     *   to configure the CORS HTTP filter.
     * 
* * .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setCors( io.envoyproxy.envoy.config.route.v3.CorsPolicy.Builder builderForValue) { if (corsBuilder_ == null) { cors_ = builderForValue.build(); onChanged(); } else { corsBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Indicates that the route has a CORS policy. This field is ignored if related cors policy is
     * found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     * :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
     * .. attention::
     *   This option has been deprecated. Please use
     *   :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     *   :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
     *   to configure the CORS HTTP filter.
     * 
* * .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder mergeCors(io.envoyproxy.envoy.config.route.v3.CorsPolicy value) { if (corsBuilder_ == null) { if (cors_ != null) { cors_ = io.envoyproxy.envoy.config.route.v3.CorsPolicy.newBuilder(cors_).mergeFrom(value).buildPartial(); } else { cors_ = value; } onChanged(); } else { corsBuilder_.mergeFrom(value); } return this; } /** *
     * Indicates that the route has a CORS policy. This field is ignored if related cors policy is
     * found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     * :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
     * .. attention::
     *   This option has been deprecated. Please use
     *   :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     *   :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
     *   to configure the CORS HTTP filter.
     * 
* * .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder clearCors() { if (corsBuilder_ == null) { cors_ = null; onChanged(); } else { cors_ = null; corsBuilder_ = null; } return this; } /** *
     * Indicates that the route has a CORS policy. This field is ignored if related cors policy is
     * found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     * :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
     * .. attention::
     *   This option has been deprecated. Please use
     *   :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     *   :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
     *   to configure the CORS HTTP filter.
     * 
* * .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.route.v3.CorsPolicy.Builder getCorsBuilder() { onChanged(); return getCorsFieldBuilder().getBuilder(); } /** *
     * Indicates that the route has a CORS policy. This field is ignored if related cors policy is
     * found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     * :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
     * .. attention::
     *   This option has been deprecated. Please use
     *   :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     *   :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
     *   to configure the CORS HTTP filter.
     * 
* * .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public io.envoyproxy.envoy.config.route.v3.CorsPolicyOrBuilder getCorsOrBuilder() { if (corsBuilder_ != null) { return corsBuilder_.getMessageOrBuilder(); } else { return cors_ == null ? io.envoyproxy.envoy.config.route.v3.CorsPolicy.getDefaultInstance() : cors_; } } /** *
     * Indicates that the route has a CORS policy. This field is ignored if related cors policy is
     * found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     * :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
     * .. attention::
     *   This option has been deprecated. Please use
     *   :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
     *   :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
     *   to configure the CORS HTTP filter.
     * 
* * .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.CorsPolicy, io.envoyproxy.envoy.config.route.v3.CorsPolicy.Builder, io.envoyproxy.envoy.config.route.v3.CorsPolicyOrBuilder> getCorsFieldBuilder() { if (corsBuilder_ == null) { corsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.CorsPolicy, io.envoyproxy.envoy.config.route.v3.CorsPolicy.Builder, io.envoyproxy.envoy.config.route.v3.CorsPolicyOrBuilder>( getCors(), getParentForChildren(), isClean()); cors_ = null; } return corsBuilder_; } private com.google.protobuf.Duration maxGrpcTimeout_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> maxGrpcTimeoutBuilder_; /** *
     * Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
     * If present, and the request is a gRPC request, use the
     * `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
     * or its default value (infinity) instead of
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
     * to the maximum value specified here. If configured as 0, the maximum allowed timeout for
     * gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
     * and gRPC requests time out like any other requests using
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
     * This can be used to prevent unexpected upstream request timeouts due to potentially long
     * time gaps between gRPC request and response in gRPC streaming mode.
     * .. note::
     *    If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
     *    precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
     *    both are present. See also
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *    :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.max_grpc_timeout is deprecated. * See envoy/config/route/v3/route_components.proto;l=1337 * @return Whether the maxGrpcTimeout field is set. */ @java.lang.Deprecated public boolean hasMaxGrpcTimeout() { return maxGrpcTimeoutBuilder_ != null || maxGrpcTimeout_ != null; } /** *
     * Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
     * If present, and the request is a gRPC request, use the
     * `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
     * or its default value (infinity) instead of
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
     * to the maximum value specified here. If configured as 0, the maximum allowed timeout for
     * gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
     * and gRPC requests time out like any other requests using
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
     * This can be used to prevent unexpected upstream request timeouts due to potentially long
     * time gaps between gRPC request and response in gRPC streaming mode.
     * .. note::
     *    If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
     *    precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
     *    both are present. See also
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *    :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.max_grpc_timeout is deprecated. * See envoy/config/route/v3/route_components.proto;l=1337 * @return The maxGrpcTimeout. */ @java.lang.Deprecated public com.google.protobuf.Duration getMaxGrpcTimeout() { if (maxGrpcTimeoutBuilder_ == null) { return maxGrpcTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : maxGrpcTimeout_; } else { return maxGrpcTimeoutBuilder_.getMessage(); } } /** *
     * Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
     * If present, and the request is a gRPC request, use the
     * `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
     * or its default value (infinity) instead of
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
     * to the maximum value specified here. If configured as 0, the maximum allowed timeout for
     * gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
     * and gRPC requests time out like any other requests using
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
     * This can be used to prevent unexpected upstream request timeouts due to potentially long
     * time gaps between gRPC request and response in gRPC streaming mode.
     * .. note::
     *    If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
     *    precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
     *    both are present. See also
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *    :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setMaxGrpcTimeout(com.google.protobuf.Duration value) { if (maxGrpcTimeoutBuilder_ == null) { if (value == null) { throw new NullPointerException(); } maxGrpcTimeout_ = value; onChanged(); } else { maxGrpcTimeoutBuilder_.setMessage(value); } return this; } /** *
     * Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
     * If present, and the request is a gRPC request, use the
     * `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
     * or its default value (infinity) instead of
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
     * to the maximum value specified here. If configured as 0, the maximum allowed timeout for
     * gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
     * and gRPC requests time out like any other requests using
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
     * This can be used to prevent unexpected upstream request timeouts due to potentially long
     * time gaps between gRPC request and response in gRPC streaming mode.
     * .. note::
     *    If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
     *    precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
     *    both are present. See also
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *    :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setMaxGrpcTimeout( com.google.protobuf.Duration.Builder builderForValue) { if (maxGrpcTimeoutBuilder_ == null) { maxGrpcTimeout_ = builderForValue.build(); onChanged(); } else { maxGrpcTimeoutBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
     * If present, and the request is a gRPC request, use the
     * `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
     * or its default value (infinity) instead of
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
     * to the maximum value specified here. If configured as 0, the maximum allowed timeout for
     * gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
     * and gRPC requests time out like any other requests using
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
     * This can be used to prevent unexpected upstream request timeouts due to potentially long
     * time gaps between gRPC request and response in gRPC streaming mode.
     * .. note::
     *    If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
     *    precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
     *    both are present. See also
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *    :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder mergeMaxGrpcTimeout(com.google.protobuf.Duration value) { if (maxGrpcTimeoutBuilder_ == null) { if (maxGrpcTimeout_ != null) { maxGrpcTimeout_ = com.google.protobuf.Duration.newBuilder(maxGrpcTimeout_).mergeFrom(value).buildPartial(); } else { maxGrpcTimeout_ = value; } onChanged(); } else { maxGrpcTimeoutBuilder_.mergeFrom(value); } return this; } /** *
     * Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
     * If present, and the request is a gRPC request, use the
     * `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
     * or its default value (infinity) instead of
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
     * to the maximum value specified here. If configured as 0, the maximum allowed timeout for
     * gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
     * and gRPC requests time out like any other requests using
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
     * This can be used to prevent unexpected upstream request timeouts due to potentially long
     * time gaps between gRPC request and response in gRPC streaming mode.
     * .. note::
     *    If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
     *    precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
     *    both are present. See also
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *    :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder clearMaxGrpcTimeout() { if (maxGrpcTimeoutBuilder_ == null) { maxGrpcTimeout_ = null; onChanged(); } else { maxGrpcTimeout_ = null; maxGrpcTimeoutBuilder_ = null; } return this; } /** *
     * Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
     * If present, and the request is a gRPC request, use the
     * `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
     * or its default value (infinity) instead of
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
     * to the maximum value specified here. If configured as 0, the maximum allowed timeout for
     * gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
     * and gRPC requests time out like any other requests using
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
     * This can be used to prevent unexpected upstream request timeouts due to potentially long
     * time gaps between gRPC request and response in gRPC streaming mode.
     * .. note::
     *    If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
     *    precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
     *    both are present. See also
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *    :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public com.google.protobuf.Duration.Builder getMaxGrpcTimeoutBuilder() { onChanged(); return getMaxGrpcTimeoutFieldBuilder().getBuilder(); } /** *
     * Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
     * If present, and the request is a gRPC request, use the
     * `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
     * or its default value (infinity) instead of
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
     * to the maximum value specified here. If configured as 0, the maximum allowed timeout for
     * gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
     * and gRPC requests time out like any other requests using
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
     * This can be used to prevent unexpected upstream request timeouts due to potentially long
     * time gaps between gRPC request and response in gRPC streaming mode.
     * .. note::
     *    If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
     *    precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
     *    both are present. See also
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *    :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public com.google.protobuf.DurationOrBuilder getMaxGrpcTimeoutOrBuilder() { if (maxGrpcTimeoutBuilder_ != null) { return maxGrpcTimeoutBuilder_.getMessageOrBuilder(); } else { return maxGrpcTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : maxGrpcTimeout_; } } /** *
     * Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
     * If present, and the request is a gRPC request, use the
     * `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
     * or its default value (infinity) instead of
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
     * to the maximum value specified here. If configured as 0, the maximum allowed timeout for
     * gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
     * and gRPC requests time out like any other requests using
     * :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
     * This can be used to prevent unexpected upstream request timeouts due to potentially long
     * time gaps between gRPC request and response in gRPC streaming mode.
     * .. note::
     *    If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
     *    precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
     *    both are present. See also
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
     *    :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
     *    :ref:`retry overview <arch_overview_http_routing_retry>`.
     * 
* * .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getMaxGrpcTimeoutFieldBuilder() { if (maxGrpcTimeoutBuilder_ == null) { maxGrpcTimeoutBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getMaxGrpcTimeout(), getParentForChildren(), isClean()); maxGrpcTimeout_ = null; } return maxGrpcTimeoutBuilder_; } private com.google.protobuf.Duration grpcTimeoutOffset_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> grpcTimeoutOffsetBuilder_; /** *
     * Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
     * the provided duration from the header. This is useful in allowing Envoy to set its global
     * timeout to be less than that of the deadline imposed by the calling client, which makes it more
     * likely that Envoy will handle the timeout instead of having the call canceled by the client.
     * The offset will only be applied if the provided grpc_timeout is greater than the offset. This
     * ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
     * infinity).
     * 
* * .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.grpc_timeout_offset is deprecated. * See envoy/config/route/v3/route_components.proto;l=1348 * @return Whether the grpcTimeoutOffset field is set. */ @java.lang.Deprecated public boolean hasGrpcTimeoutOffset() { return grpcTimeoutOffsetBuilder_ != null || grpcTimeoutOffset_ != null; } /** *
     * Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
     * the provided duration from the header. This is useful in allowing Envoy to set its global
     * timeout to be less than that of the deadline imposed by the calling client, which makes it more
     * likely that Envoy will handle the timeout instead of having the call canceled by the client.
     * The offset will only be applied if the provided grpc_timeout is greater than the offset. This
     * ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
     * infinity).
     * 
* * .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.grpc_timeout_offset is deprecated. * See envoy/config/route/v3/route_components.proto;l=1348 * @return The grpcTimeoutOffset. */ @java.lang.Deprecated public com.google.protobuf.Duration getGrpcTimeoutOffset() { if (grpcTimeoutOffsetBuilder_ == null) { return grpcTimeoutOffset_ == null ? com.google.protobuf.Duration.getDefaultInstance() : grpcTimeoutOffset_; } else { return grpcTimeoutOffsetBuilder_.getMessage(); } } /** *
     * Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
     * the provided duration from the header. This is useful in allowing Envoy to set its global
     * timeout to be less than that of the deadline imposed by the calling client, which makes it more
     * likely that Envoy will handle the timeout instead of having the call canceled by the client.
     * The offset will only be applied if the provided grpc_timeout is greater than the offset. This
     * ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
     * infinity).
     * 
* * .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setGrpcTimeoutOffset(com.google.protobuf.Duration value) { if (grpcTimeoutOffsetBuilder_ == null) { if (value == null) { throw new NullPointerException(); } grpcTimeoutOffset_ = value; onChanged(); } else { grpcTimeoutOffsetBuilder_.setMessage(value); } return this; } /** *
     * Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
     * the provided duration from the header. This is useful in allowing Envoy to set its global
     * timeout to be less than that of the deadline imposed by the calling client, which makes it more
     * likely that Envoy will handle the timeout instead of having the call canceled by the client.
     * The offset will only be applied if the provided grpc_timeout is greater than the offset. This
     * ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
     * infinity).
     * 
* * .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setGrpcTimeoutOffset( com.google.protobuf.Duration.Builder builderForValue) { if (grpcTimeoutOffsetBuilder_ == null) { grpcTimeoutOffset_ = builderForValue.build(); onChanged(); } else { grpcTimeoutOffsetBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
     * the provided duration from the header. This is useful in allowing Envoy to set its global
     * timeout to be less than that of the deadline imposed by the calling client, which makes it more
     * likely that Envoy will handle the timeout instead of having the call canceled by the client.
     * The offset will only be applied if the provided grpc_timeout is greater than the offset. This
     * ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
     * infinity).
     * 
* * .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder mergeGrpcTimeoutOffset(com.google.protobuf.Duration value) { if (grpcTimeoutOffsetBuilder_ == null) { if (grpcTimeoutOffset_ != null) { grpcTimeoutOffset_ = com.google.protobuf.Duration.newBuilder(grpcTimeoutOffset_).mergeFrom(value).buildPartial(); } else { grpcTimeoutOffset_ = value; } onChanged(); } else { grpcTimeoutOffsetBuilder_.mergeFrom(value); } return this; } /** *
     * Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
     * the provided duration from the header. This is useful in allowing Envoy to set its global
     * timeout to be less than that of the deadline imposed by the calling client, which makes it more
     * likely that Envoy will handle the timeout instead of having the call canceled by the client.
     * The offset will only be applied if the provided grpc_timeout is greater than the offset. This
     * ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
     * infinity).
     * 
* * .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder clearGrpcTimeoutOffset() { if (grpcTimeoutOffsetBuilder_ == null) { grpcTimeoutOffset_ = null; onChanged(); } else { grpcTimeoutOffset_ = null; grpcTimeoutOffsetBuilder_ = null; } return this; } /** *
     * Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
     * the provided duration from the header. This is useful in allowing Envoy to set its global
     * timeout to be less than that of the deadline imposed by the calling client, which makes it more
     * likely that Envoy will handle the timeout instead of having the call canceled by the client.
     * The offset will only be applied if the provided grpc_timeout is greater than the offset. This
     * ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
     * infinity).
     * 
* * .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public com.google.protobuf.Duration.Builder getGrpcTimeoutOffsetBuilder() { onChanged(); return getGrpcTimeoutOffsetFieldBuilder().getBuilder(); } /** *
     * Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
     * the provided duration from the header. This is useful in allowing Envoy to set its global
     * timeout to be less than that of the deadline imposed by the calling client, which makes it more
     * likely that Envoy will handle the timeout instead of having the call canceled by the client.
     * The offset will only be applied if the provided grpc_timeout is greater than the offset. This
     * ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
     * infinity).
     * 
* * .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public com.google.protobuf.DurationOrBuilder getGrpcTimeoutOffsetOrBuilder() { if (grpcTimeoutOffsetBuilder_ != null) { return grpcTimeoutOffsetBuilder_.getMessageOrBuilder(); } else { return grpcTimeoutOffset_ == null ? com.google.protobuf.Duration.getDefaultInstance() : grpcTimeoutOffset_; } } /** *
     * Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
     * If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
     * the provided duration from the header. This is useful in allowing Envoy to set its global
     * timeout to be less than that of the deadline imposed by the calling client, which makes it more
     * likely that Envoy will handle the timeout instead of having the call canceled by the client.
     * The offset will only be applied if the provided grpc_timeout is greater than the offset. This
     * ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
     * infinity).
     * 
* * .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> getGrpcTimeoutOffsetFieldBuilder() { if (grpcTimeoutOffsetBuilder_ == null) { grpcTimeoutOffsetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>( getGrpcTimeoutOffset(), getParentForChildren(), isClean()); grpcTimeoutOffset_ = null; } return grpcTimeoutOffsetBuilder_; } private java.util.List upgradeConfigs_ = java.util.Collections.emptyList(); private void ensureUpgradeConfigsIsMutable() { if (!((bitField0_ & 0x00000008) != 0)) { upgradeConfigs_ = new java.util.ArrayList(upgradeConfigs_); bitField0_ |= 0x00000008; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfigOrBuilder> upgradeConfigsBuilder_; /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public java.util.List getUpgradeConfigsList() { if (upgradeConfigsBuilder_ == null) { return java.util.Collections.unmodifiableList(upgradeConfigs_); } else { return upgradeConfigsBuilder_.getMessageList(); } } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public int getUpgradeConfigsCount() { if (upgradeConfigsBuilder_ == null) { return upgradeConfigs_.size(); } else { return upgradeConfigsBuilder_.getCount(); } } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig getUpgradeConfigs(int index) { if (upgradeConfigsBuilder_ == null) { return upgradeConfigs_.get(index); } else { return upgradeConfigsBuilder_.getMessage(index); } } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public Builder setUpgradeConfigs( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig value) { if (upgradeConfigsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureUpgradeConfigsIsMutable(); upgradeConfigs_.set(index, value); onChanged(); } else { upgradeConfigsBuilder_.setMessage(index, value); } return this; } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public Builder setUpgradeConfigs( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.Builder builderForValue) { if (upgradeConfigsBuilder_ == null) { ensureUpgradeConfigsIsMutable(); upgradeConfigs_.set(index, builderForValue.build()); onChanged(); } else { upgradeConfigsBuilder_.setMessage(index, builderForValue.build()); } return this; } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public Builder addUpgradeConfigs(io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig value) { if (upgradeConfigsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureUpgradeConfigsIsMutable(); upgradeConfigs_.add(value); onChanged(); } else { upgradeConfigsBuilder_.addMessage(value); } return this; } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public Builder addUpgradeConfigs( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig value) { if (upgradeConfigsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureUpgradeConfigsIsMutable(); upgradeConfigs_.add(index, value); onChanged(); } else { upgradeConfigsBuilder_.addMessage(index, value); } return this; } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public Builder addUpgradeConfigs( io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.Builder builderForValue) { if (upgradeConfigsBuilder_ == null) { ensureUpgradeConfigsIsMutable(); upgradeConfigs_.add(builderForValue.build()); onChanged(); } else { upgradeConfigsBuilder_.addMessage(builderForValue.build()); } return this; } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public Builder addUpgradeConfigs( int index, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.Builder builderForValue) { if (upgradeConfigsBuilder_ == null) { ensureUpgradeConfigsIsMutable(); upgradeConfigs_.add(index, builderForValue.build()); onChanged(); } else { upgradeConfigsBuilder_.addMessage(index, builderForValue.build()); } return this; } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public Builder addAllUpgradeConfigs( java.lang.Iterable values) { if (upgradeConfigsBuilder_ == null) { ensureUpgradeConfigsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, upgradeConfigs_); onChanged(); } else { upgradeConfigsBuilder_.addAllMessages(values); } return this; } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public Builder clearUpgradeConfigs() { if (upgradeConfigsBuilder_ == null) { upgradeConfigs_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { upgradeConfigsBuilder_.clear(); } return this; } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public Builder removeUpgradeConfigs(int index) { if (upgradeConfigsBuilder_ == null) { ensureUpgradeConfigsIsMutable(); upgradeConfigs_.remove(index); onChanged(); } else { upgradeConfigsBuilder_.remove(index); } return this; } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.Builder getUpgradeConfigsBuilder( int index) { return getUpgradeConfigsFieldBuilder().getBuilder(index); } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfigOrBuilder getUpgradeConfigsOrBuilder( int index) { if (upgradeConfigsBuilder_ == null) { return upgradeConfigs_.get(index); } else { return upgradeConfigsBuilder_.getMessageOrBuilder(index); } } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public java.util.List getUpgradeConfigsOrBuilderList() { if (upgradeConfigsBuilder_ != null) { return upgradeConfigsBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(upgradeConfigs_); } } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.Builder addUpgradeConfigsBuilder() { return getUpgradeConfigsFieldBuilder().addBuilder( io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.getDefaultInstance()); } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.Builder addUpgradeConfigsBuilder( int index) { return getUpgradeConfigsFieldBuilder().addBuilder( index, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.getDefaultInstance()); } /** * repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25; */ public java.util.List getUpgradeConfigsBuilderList() { return getUpgradeConfigsFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfigOrBuilder> getUpgradeConfigsFieldBuilder() { if (upgradeConfigsBuilder_ == null) { upgradeConfigsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfig.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.UpgradeConfigOrBuilder>( upgradeConfigs_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); upgradeConfigs_ = null; } return upgradeConfigsBuilder_; } private io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy internalRedirectPolicy_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy, io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy.Builder, io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicyOrBuilder> internalRedirectPolicyBuilder_; /** *
     * If present, Envoy will try to follow an upstream redirect response instead of proxying the
     * response back to the downstream. An upstream redirect response is defined
     * by :ref:`redirect_response_codes
     * <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
     * 
* * .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34; * @return Whether the internalRedirectPolicy field is set. */ public boolean hasInternalRedirectPolicy() { return internalRedirectPolicyBuilder_ != null || internalRedirectPolicy_ != null; } /** *
     * If present, Envoy will try to follow an upstream redirect response instead of proxying the
     * response back to the downstream. An upstream redirect response is defined
     * by :ref:`redirect_response_codes
     * <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
     * 
* * .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34; * @return The internalRedirectPolicy. */ public io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy getInternalRedirectPolicy() { if (internalRedirectPolicyBuilder_ == null) { return internalRedirectPolicy_ == null ? io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy.getDefaultInstance() : internalRedirectPolicy_; } else { return internalRedirectPolicyBuilder_.getMessage(); } } /** *
     * If present, Envoy will try to follow an upstream redirect response instead of proxying the
     * response back to the downstream. An upstream redirect response is defined
     * by :ref:`redirect_response_codes
     * <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
     * 
* * .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34; */ public Builder setInternalRedirectPolicy(io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy value) { if (internalRedirectPolicyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } internalRedirectPolicy_ = value; onChanged(); } else { internalRedirectPolicyBuilder_.setMessage(value); } return this; } /** *
     * If present, Envoy will try to follow an upstream redirect response instead of proxying the
     * response back to the downstream. An upstream redirect response is defined
     * by :ref:`redirect_response_codes
     * <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
     * 
* * .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34; */ public Builder setInternalRedirectPolicy( io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy.Builder builderForValue) { if (internalRedirectPolicyBuilder_ == null) { internalRedirectPolicy_ = builderForValue.build(); onChanged(); } else { internalRedirectPolicyBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * If present, Envoy will try to follow an upstream redirect response instead of proxying the
     * response back to the downstream. An upstream redirect response is defined
     * by :ref:`redirect_response_codes
     * <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
     * 
* * .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34; */ public Builder mergeInternalRedirectPolicy(io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy value) { if (internalRedirectPolicyBuilder_ == null) { if (internalRedirectPolicy_ != null) { internalRedirectPolicy_ = io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy.newBuilder(internalRedirectPolicy_).mergeFrom(value).buildPartial(); } else { internalRedirectPolicy_ = value; } onChanged(); } else { internalRedirectPolicyBuilder_.mergeFrom(value); } return this; } /** *
     * If present, Envoy will try to follow an upstream redirect response instead of proxying the
     * response back to the downstream. An upstream redirect response is defined
     * by :ref:`redirect_response_codes
     * <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
     * 
* * .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34; */ public Builder clearInternalRedirectPolicy() { if (internalRedirectPolicyBuilder_ == null) { internalRedirectPolicy_ = null; onChanged(); } else { internalRedirectPolicy_ = null; internalRedirectPolicyBuilder_ = null; } return this; } /** *
     * If present, Envoy will try to follow an upstream redirect response instead of proxying the
     * response back to the downstream. An upstream redirect response is defined
     * by :ref:`redirect_response_codes
     * <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
     * 
* * .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34; */ public io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy.Builder getInternalRedirectPolicyBuilder() { onChanged(); return getInternalRedirectPolicyFieldBuilder().getBuilder(); } /** *
     * If present, Envoy will try to follow an upstream redirect response instead of proxying the
     * response back to the downstream. An upstream redirect response is defined
     * by :ref:`redirect_response_codes
     * <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
     * 
* * .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34; */ public io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicyOrBuilder getInternalRedirectPolicyOrBuilder() { if (internalRedirectPolicyBuilder_ != null) { return internalRedirectPolicyBuilder_.getMessageOrBuilder(); } else { return internalRedirectPolicy_ == null ? io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy.getDefaultInstance() : internalRedirectPolicy_; } } /** *
     * If present, Envoy will try to follow an upstream redirect response instead of proxying the
     * response back to the downstream. An upstream redirect response is defined
     * by :ref:`redirect_response_codes
     * <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
     * 
* * .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy, io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy.Builder, io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicyOrBuilder> getInternalRedirectPolicyFieldBuilder() { if (internalRedirectPolicyBuilder_ == null) { internalRedirectPolicyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy, io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicy.Builder, io.envoyproxy.envoy.config.route.v3.InternalRedirectPolicyOrBuilder>( getInternalRedirectPolicy(), getParentForChildren(), isClean()); internalRedirectPolicy_ = null; } return internalRedirectPolicyBuilder_; } private int internalRedirectAction_ = 0; /** * .envoy.config.route.v3.RouteAction.InternalRedirectAction internal_redirect_action = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.internal_redirect_action is deprecated. * See envoy/config/route/v3/route_components.proto;l=1359 * @return The enum numeric value on the wire for internalRedirectAction. */ @java.lang.Override @java.lang.Deprecated public int getInternalRedirectActionValue() { return internalRedirectAction_; } /** * .envoy.config.route.v3.RouteAction.InternalRedirectAction internal_redirect_action = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.internal_redirect_action is deprecated. * See envoy/config/route/v3/route_components.proto;l=1359 * @param value The enum numeric value on the wire for internalRedirectAction to set. * @return This builder for chaining. */ @java.lang.Deprecated public Builder setInternalRedirectActionValue(int value) { internalRedirectAction_ = value; onChanged(); return this; } /** * .envoy.config.route.v3.RouteAction.InternalRedirectAction internal_redirect_action = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.internal_redirect_action is deprecated. * See envoy/config/route/v3/route_components.proto;l=1359 * @return The internalRedirectAction. */ @java.lang.Override @java.lang.Deprecated public io.envoyproxy.envoy.config.route.v3.RouteAction.InternalRedirectAction getInternalRedirectAction() { @SuppressWarnings("deprecation") io.envoyproxy.envoy.config.route.v3.RouteAction.InternalRedirectAction result = io.envoyproxy.envoy.config.route.v3.RouteAction.InternalRedirectAction.valueOf(internalRedirectAction_); return result == null ? io.envoyproxy.envoy.config.route.v3.RouteAction.InternalRedirectAction.UNRECOGNIZED : result; } /** * .envoy.config.route.v3.RouteAction.InternalRedirectAction internal_redirect_action = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.internal_redirect_action is deprecated. * See envoy/config/route/v3/route_components.proto;l=1359 * @param value The internalRedirectAction to set. * @return This builder for chaining. */ @java.lang.Deprecated public Builder setInternalRedirectAction(io.envoyproxy.envoy.config.route.v3.RouteAction.InternalRedirectAction value) { if (value == null) { throw new NullPointerException(); } internalRedirectAction_ = value.getNumber(); onChanged(); return this; } /** * .envoy.config.route.v3.RouteAction.InternalRedirectAction internal_redirect_action = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.internal_redirect_action is deprecated. * See envoy/config/route/v3/route_components.proto;l=1359 * @return This builder for chaining. */ @java.lang.Deprecated public Builder clearInternalRedirectAction() { internalRedirectAction_ = 0; onChanged(); return this; } private com.google.protobuf.UInt32Value maxInternalRedirects_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder> maxInternalRedirectsBuilder_; /** *
     * An internal redirect is handled, iff the number of previous internal redirects that a
     * downstream request has encountered is lower than this value, and
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * is set to :ref:`HANDLE_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
     * In the case where a downstream request is bounced among multiple routes by internal redirect,
     * the first route that hits this threshold, or has
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * set to
     * :ref:`PASS_THROUGH_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
     * will pass the redirect back to downstream.
     * If not specified, at most one redirect will be followed.
     * 
* * .google.protobuf.UInt32Value max_internal_redirects = 31 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.max_internal_redirects is deprecated. * See envoy/config/route/v3/route_components.proto;l=1376 * @return Whether the maxInternalRedirects field is set. */ @java.lang.Deprecated public boolean hasMaxInternalRedirects() { return maxInternalRedirectsBuilder_ != null || maxInternalRedirects_ != null; } /** *
     * An internal redirect is handled, iff the number of previous internal redirects that a
     * downstream request has encountered is lower than this value, and
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * is set to :ref:`HANDLE_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
     * In the case where a downstream request is bounced among multiple routes by internal redirect,
     * the first route that hits this threshold, or has
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * set to
     * :ref:`PASS_THROUGH_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
     * will pass the redirect back to downstream.
     * If not specified, at most one redirect will be followed.
     * 
* * .google.protobuf.UInt32Value max_internal_redirects = 31 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; * @deprecated envoy.config.route.v3.RouteAction.max_internal_redirects is deprecated. * See envoy/config/route/v3/route_components.proto;l=1376 * @return The maxInternalRedirects. */ @java.lang.Deprecated public com.google.protobuf.UInt32Value getMaxInternalRedirects() { if (maxInternalRedirectsBuilder_ == null) { return maxInternalRedirects_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : maxInternalRedirects_; } else { return maxInternalRedirectsBuilder_.getMessage(); } } /** *
     * An internal redirect is handled, iff the number of previous internal redirects that a
     * downstream request has encountered is lower than this value, and
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * is set to :ref:`HANDLE_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
     * In the case where a downstream request is bounced among multiple routes by internal redirect,
     * the first route that hits this threshold, or has
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * set to
     * :ref:`PASS_THROUGH_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
     * will pass the redirect back to downstream.
     * If not specified, at most one redirect will be followed.
     * 
* * .google.protobuf.UInt32Value max_internal_redirects = 31 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setMaxInternalRedirects(com.google.protobuf.UInt32Value value) { if (maxInternalRedirectsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } maxInternalRedirects_ = value; onChanged(); } else { maxInternalRedirectsBuilder_.setMessage(value); } return this; } /** *
     * An internal redirect is handled, iff the number of previous internal redirects that a
     * downstream request has encountered is lower than this value, and
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * is set to :ref:`HANDLE_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
     * In the case where a downstream request is bounced among multiple routes by internal redirect,
     * the first route that hits this threshold, or has
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * set to
     * :ref:`PASS_THROUGH_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
     * will pass the redirect back to downstream.
     * If not specified, at most one redirect will be followed.
     * 
* * .google.protobuf.UInt32Value max_internal_redirects = 31 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder setMaxInternalRedirects( com.google.protobuf.UInt32Value.Builder builderForValue) { if (maxInternalRedirectsBuilder_ == null) { maxInternalRedirects_ = builderForValue.build(); onChanged(); } else { maxInternalRedirectsBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * An internal redirect is handled, iff the number of previous internal redirects that a
     * downstream request has encountered is lower than this value, and
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * is set to :ref:`HANDLE_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
     * In the case where a downstream request is bounced among multiple routes by internal redirect,
     * the first route that hits this threshold, or has
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * set to
     * :ref:`PASS_THROUGH_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
     * will pass the redirect back to downstream.
     * If not specified, at most one redirect will be followed.
     * 
* * .google.protobuf.UInt32Value max_internal_redirects = 31 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder mergeMaxInternalRedirects(com.google.protobuf.UInt32Value value) { if (maxInternalRedirectsBuilder_ == null) { if (maxInternalRedirects_ != null) { maxInternalRedirects_ = com.google.protobuf.UInt32Value.newBuilder(maxInternalRedirects_).mergeFrom(value).buildPartial(); } else { maxInternalRedirects_ = value; } onChanged(); } else { maxInternalRedirectsBuilder_.mergeFrom(value); } return this; } /** *
     * An internal redirect is handled, iff the number of previous internal redirects that a
     * downstream request has encountered is lower than this value, and
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * is set to :ref:`HANDLE_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
     * In the case where a downstream request is bounced among multiple routes by internal redirect,
     * the first route that hits this threshold, or has
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * set to
     * :ref:`PASS_THROUGH_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
     * will pass the redirect back to downstream.
     * If not specified, at most one redirect will be followed.
     * 
* * .google.protobuf.UInt32Value max_internal_redirects = 31 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public Builder clearMaxInternalRedirects() { if (maxInternalRedirectsBuilder_ == null) { maxInternalRedirects_ = null; onChanged(); } else { maxInternalRedirects_ = null; maxInternalRedirectsBuilder_ = null; } return this; } /** *
     * An internal redirect is handled, iff the number of previous internal redirects that a
     * downstream request has encountered is lower than this value, and
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * is set to :ref:`HANDLE_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
     * In the case where a downstream request is bounced among multiple routes by internal redirect,
     * the first route that hits this threshold, or has
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * set to
     * :ref:`PASS_THROUGH_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
     * will pass the redirect back to downstream.
     * If not specified, at most one redirect will be followed.
     * 
* * .google.protobuf.UInt32Value max_internal_redirects = 31 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public com.google.protobuf.UInt32Value.Builder getMaxInternalRedirectsBuilder() { onChanged(); return getMaxInternalRedirectsFieldBuilder().getBuilder(); } /** *
     * An internal redirect is handled, iff the number of previous internal redirects that a
     * downstream request has encountered is lower than this value, and
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * is set to :ref:`HANDLE_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
     * In the case where a downstream request is bounced among multiple routes by internal redirect,
     * the first route that hits this threshold, or has
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * set to
     * :ref:`PASS_THROUGH_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
     * will pass the redirect back to downstream.
     * If not specified, at most one redirect will be followed.
     * 
* * .google.protobuf.UInt32Value max_internal_redirects = 31 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"]; */ @java.lang.Deprecated public com.google.protobuf.UInt32ValueOrBuilder getMaxInternalRedirectsOrBuilder() { if (maxInternalRedirectsBuilder_ != null) { return maxInternalRedirectsBuilder_.getMessageOrBuilder(); } else { return maxInternalRedirects_ == null ? com.google.protobuf.UInt32Value.getDefaultInstance() : maxInternalRedirects_; } } /** *
     * An internal redirect is handled, iff the number of previous internal redirects that a
     * downstream request has encountered is lower than this value, and
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * is set to :ref:`HANDLE_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
     * In the case where a downstream request is bounced among multiple routes by internal redirect,
     * the first route that hits this threshold, or has
     * :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
     * set to
     * :ref:`PASS_THROUGH_INTERNAL_REDIRECT
     * <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
     * will pass the redirect back to downstream.
     * If not specified, at most one redirect will be followed.
     * 
* * .google.protobuf.UInt32Value max_internal_redirects = 31 [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> getMaxInternalRedirectsFieldBuilder() { if (maxInternalRedirectsBuilder_ == null) { maxInternalRedirectsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.UInt32Value, com.google.protobuf.UInt32Value.Builder, com.google.protobuf.UInt32ValueOrBuilder>( getMaxInternalRedirects(), getParentForChildren(), isClean()); maxInternalRedirects_ = null; } return maxInternalRedirectsBuilder_; } private io.envoyproxy.envoy.config.route.v3.HedgePolicy hedgePolicy_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.HedgePolicy, io.envoyproxy.envoy.config.route.v3.HedgePolicy.Builder, io.envoyproxy.envoy.config.route.v3.HedgePolicyOrBuilder> hedgePolicyBuilder_; /** *
     * Indicates that the route has a hedge policy. Note that if this is set,
     * it'll take precedence over the virtual host level hedge policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.HedgePolicy hedge_policy = 27; * @return Whether the hedgePolicy field is set. */ public boolean hasHedgePolicy() { return hedgePolicyBuilder_ != null || hedgePolicy_ != null; } /** *
     * Indicates that the route has a hedge policy. Note that if this is set,
     * it'll take precedence over the virtual host level hedge policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.HedgePolicy hedge_policy = 27; * @return The hedgePolicy. */ public io.envoyproxy.envoy.config.route.v3.HedgePolicy getHedgePolicy() { if (hedgePolicyBuilder_ == null) { return hedgePolicy_ == null ? io.envoyproxy.envoy.config.route.v3.HedgePolicy.getDefaultInstance() : hedgePolicy_; } else { return hedgePolicyBuilder_.getMessage(); } } /** *
     * Indicates that the route has a hedge policy. Note that if this is set,
     * it'll take precedence over the virtual host level hedge policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.HedgePolicy hedge_policy = 27; */ public Builder setHedgePolicy(io.envoyproxy.envoy.config.route.v3.HedgePolicy value) { if (hedgePolicyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } hedgePolicy_ = value; onChanged(); } else { hedgePolicyBuilder_.setMessage(value); } return this; } /** *
     * Indicates that the route has a hedge policy. Note that if this is set,
     * it'll take precedence over the virtual host level hedge policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.HedgePolicy hedge_policy = 27; */ public Builder setHedgePolicy( io.envoyproxy.envoy.config.route.v3.HedgePolicy.Builder builderForValue) { if (hedgePolicyBuilder_ == null) { hedgePolicy_ = builderForValue.build(); onChanged(); } else { hedgePolicyBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Indicates that the route has a hedge policy. Note that if this is set,
     * it'll take precedence over the virtual host level hedge policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.HedgePolicy hedge_policy = 27; */ public Builder mergeHedgePolicy(io.envoyproxy.envoy.config.route.v3.HedgePolicy value) { if (hedgePolicyBuilder_ == null) { if (hedgePolicy_ != null) { hedgePolicy_ = io.envoyproxy.envoy.config.route.v3.HedgePolicy.newBuilder(hedgePolicy_).mergeFrom(value).buildPartial(); } else { hedgePolicy_ = value; } onChanged(); } else { hedgePolicyBuilder_.mergeFrom(value); } return this; } /** *
     * Indicates that the route has a hedge policy. Note that if this is set,
     * it'll take precedence over the virtual host level hedge policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.HedgePolicy hedge_policy = 27; */ public Builder clearHedgePolicy() { if (hedgePolicyBuilder_ == null) { hedgePolicy_ = null; onChanged(); } else { hedgePolicy_ = null; hedgePolicyBuilder_ = null; } return this; } /** *
     * Indicates that the route has a hedge policy. Note that if this is set,
     * it'll take precedence over the virtual host level hedge policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.HedgePolicy hedge_policy = 27; */ public io.envoyproxy.envoy.config.route.v3.HedgePolicy.Builder getHedgePolicyBuilder() { onChanged(); return getHedgePolicyFieldBuilder().getBuilder(); } /** *
     * Indicates that the route has a hedge policy. Note that if this is set,
     * it'll take precedence over the virtual host level hedge policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.HedgePolicy hedge_policy = 27; */ public io.envoyproxy.envoy.config.route.v3.HedgePolicyOrBuilder getHedgePolicyOrBuilder() { if (hedgePolicyBuilder_ != null) { return hedgePolicyBuilder_.getMessageOrBuilder(); } else { return hedgePolicy_ == null ? io.envoyproxy.envoy.config.route.v3.HedgePolicy.getDefaultInstance() : hedgePolicy_; } } /** *
     * Indicates that the route has a hedge policy. Note that if this is set,
     * it'll take precedence over the virtual host level hedge policy entirely
     * (e.g.: policies are not merged, most internal one becomes the enforced policy).
     * 
* * .envoy.config.route.v3.HedgePolicy hedge_policy = 27; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.HedgePolicy, io.envoyproxy.envoy.config.route.v3.HedgePolicy.Builder, io.envoyproxy.envoy.config.route.v3.HedgePolicyOrBuilder> getHedgePolicyFieldBuilder() { if (hedgePolicyBuilder_ == null) { hedgePolicyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.HedgePolicy, io.envoyproxy.envoy.config.route.v3.HedgePolicy.Builder, io.envoyproxy.envoy.config.route.v3.HedgePolicyOrBuilder>( getHedgePolicy(), getParentForChildren(), isClean()); hedgePolicy_ = null; } return hedgePolicyBuilder_; } private io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration maxStreamDuration_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration, io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDurationOrBuilder> maxStreamDurationBuilder_; /** *
     * Specifies the maximum stream duration for this route.
     * 
* * .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36; * @return Whether the maxStreamDuration field is set. */ public boolean hasMaxStreamDuration() { return maxStreamDurationBuilder_ != null || maxStreamDuration_ != null; } /** *
     * Specifies the maximum stream duration for this route.
     * 
* * .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36; * @return The maxStreamDuration. */ public io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration getMaxStreamDuration() { if (maxStreamDurationBuilder_ == null) { return maxStreamDuration_ == null ? io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.getDefaultInstance() : maxStreamDuration_; } else { return maxStreamDurationBuilder_.getMessage(); } } /** *
     * Specifies the maximum stream duration for this route.
     * 
* * .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36; */ public Builder setMaxStreamDuration(io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration value) { if (maxStreamDurationBuilder_ == null) { if (value == null) { throw new NullPointerException(); } maxStreamDuration_ = value; onChanged(); } else { maxStreamDurationBuilder_.setMessage(value); } return this; } /** *
     * Specifies the maximum stream duration for this route.
     * 
* * .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36; */ public Builder setMaxStreamDuration( io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.Builder builderForValue) { if (maxStreamDurationBuilder_ == null) { maxStreamDuration_ = builderForValue.build(); onChanged(); } else { maxStreamDurationBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Specifies the maximum stream duration for this route.
     * 
* * .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36; */ public Builder mergeMaxStreamDuration(io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration value) { if (maxStreamDurationBuilder_ == null) { if (maxStreamDuration_ != null) { maxStreamDuration_ = io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.newBuilder(maxStreamDuration_).mergeFrom(value).buildPartial(); } else { maxStreamDuration_ = value; } onChanged(); } else { maxStreamDurationBuilder_.mergeFrom(value); } return this; } /** *
     * Specifies the maximum stream duration for this route.
     * 
* * .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36; */ public Builder clearMaxStreamDuration() { if (maxStreamDurationBuilder_ == null) { maxStreamDuration_ = null; onChanged(); } else { maxStreamDuration_ = null; maxStreamDurationBuilder_ = null; } return this; } /** *
     * Specifies the maximum stream duration for this route.
     * 
* * .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.Builder getMaxStreamDurationBuilder() { onChanged(); return getMaxStreamDurationFieldBuilder().getBuilder(); } /** *
     * Specifies the maximum stream duration for this route.
     * 
* * .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36; */ public io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDurationOrBuilder getMaxStreamDurationOrBuilder() { if (maxStreamDurationBuilder_ != null) { return maxStreamDurationBuilder_.getMessageOrBuilder(); } else { return maxStreamDuration_ == null ? io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.getDefaultInstance() : maxStreamDuration_; } } /** *
     * Specifies the maximum stream duration for this route.
     * 
* * .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration, io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDurationOrBuilder> getMaxStreamDurationFieldBuilder() { if (maxStreamDurationBuilder_ == null) { maxStreamDurationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration, io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDuration.Builder, io.envoyproxy.envoy.config.route.v3.RouteAction.MaxStreamDurationOrBuilder>( getMaxStreamDuration(), getParentForChildren(), isClean()); maxStreamDuration_ = null; } return maxStreamDurationBuilder_; } @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.route.v3.RouteAction) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteAction) private static final io.envoyproxy.envoy.config.route.v3.RouteAction DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteAction(); } public static io.envoyproxy.envoy.config.route.v3.RouteAction getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public RouteAction parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new RouteAction(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.route.v3.RouteAction getDefaultInstanceForType() { return DEFAULT_INSTANCE; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy