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

io.envoyproxy.envoy.config.route.v3.RouteMatch 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: 16]
 * 
* * Protobuf type {@code envoy.config.route.v3.RouteMatch} */ public final class RouteMatch extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteMatch) RouteMatchOrBuilder { private static final long serialVersionUID = 0L; // Use RouteMatch.newBuilder() to construct. private RouteMatch(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private RouteMatch() { headers_ = java.util.Collections.emptyList(); queryParameters_ = java.util.Collections.emptyList(); dynamicMetadata_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new RouteMatch(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private RouteMatch( 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(); pathSpecifierCase_ = 1; pathSpecifier_ = s; break; } case 18: { java.lang.String s = input.readStringRequireUtf8(); pathSpecifierCase_ = 2; pathSpecifier_ = s; break; } case 34: { com.google.protobuf.BoolValue.Builder subBuilder = null; if (caseSensitive_ != null) { subBuilder = caseSensitive_.toBuilder(); } caseSensitive_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(caseSensitive_); caseSensitive_ = subBuilder.buildPartial(); } break; } case 50: { if (!((mutable_bitField0_ & 0x00000001) != 0)) { headers_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000001; } headers_.add( input.readMessage(io.envoyproxy.envoy.config.route.v3.HeaderMatcher.parser(), extensionRegistry)); break; } case 58: { if (!((mutable_bitField0_ & 0x00000002) != 0)) { queryParameters_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000002; } queryParameters_.add( input.readMessage(io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher.parser(), extensionRegistry)); break; } case 66: { io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.Builder subBuilder = null; if (grpc_ != null) { subBuilder = grpc_.toBuilder(); } grpc_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(grpc_); grpc_ = subBuilder.buildPartial(); } break; } case 74: { 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 82: { io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.Builder subBuilder = null; if (pathSpecifierCase_ == 10) { subBuilder = ((io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_).toBuilder(); } pathSpecifier_ = input.readMessage(io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_); pathSpecifier_ = subBuilder.buildPartial(); } pathSpecifierCase_ = 10; break; } case 90: { io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.Builder subBuilder = null; if (tlsContext_ != null) { subBuilder = tlsContext_.toBuilder(); } tlsContext_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(tlsContext_); tlsContext_ = subBuilder.buildPartial(); } break; } case 98: { io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.Builder subBuilder = null; if (pathSpecifierCase_ == 12) { subBuilder = ((io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) pathSpecifier_).toBuilder(); } pathSpecifier_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) pathSpecifier_); pathSpecifier_ = subBuilder.buildPartial(); } pathSpecifierCase_ = 12; break; } case 106: { if (!((mutable_bitField0_ & 0x00000004) != 0)) { dynamicMetadata_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000004; } dynamicMetadata_.add( input.readMessage(io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.parser(), extensionRegistry)); break; } case 114: { java.lang.String s = input.readStringRequireUtf8(); pathSpecifierCase_ = 14; pathSpecifier_ = s; break; } case 122: { io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder subBuilder = null; if (pathSpecifierCase_ == 15) { subBuilder = ((io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_).toBuilder(); } pathSpecifier_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom((io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_); pathSpecifier_ = subBuilder.buildPartial(); } pathSpecifierCase_ = 15; 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)) { headers_ = java.util.Collections.unmodifiableList(headers_); } if (((mutable_bitField0_ & 0x00000002) != 0)) { queryParameters_ = java.util.Collections.unmodifiableList(queryParameters_); } if (((mutable_bitField0_ & 0x00000004) != 0)) { dynamicMetadata_ = java.util.Collections.unmodifiableList(dynamicMetadata_); } 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_RouteMatch_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_RouteMatch_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteMatch.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.Builder.class); } public interface GrpcRouteMatchOptionsOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions) com.google.protobuf.MessageOrBuilder { } /** * Protobuf type {@code envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions} */ public static final class GrpcRouteMatchOptions extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions) GrpcRouteMatchOptionsOrBuilder { private static final long serialVersionUID = 0L; // Use GrpcRouteMatchOptions.newBuilder() to construct. private GrpcRouteMatchOptions(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private GrpcRouteMatchOptions() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new GrpcRouteMatchOptions(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private GrpcRouteMatchOptions( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_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_RouteMatch_GrpcRouteMatchOptions_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.Builder.class); } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions other = (io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions) obj; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions 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.RouteMatch.GrpcRouteMatchOptions parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions 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.RouteMatch.GrpcRouteMatchOptions parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions 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.RouteMatch.GrpcRouteMatchOptions 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.RouteMatch.GrpcRouteMatchOptions 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.RouteMatch.GrpcRouteMatchOptions 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.RouteMatch.GrpcRouteMatchOptions 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.RouteMatch.GrpcRouteMatchOptions 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.RouteMatch.GrpcRouteMatchOptions 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.RouteMatch.GrpcRouteMatchOptions 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.RouteMatch.GrpcRouteMatchOptions} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions) io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptionsOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_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_RouteMatch_GrpcRouteMatchOptions_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { } } @java.lang.Override public Builder clear() { super.clear(); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions build() { io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions result = new io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions(this); onBuilt(); return result; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.getDefaultInstance()) return this; this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions) private static final io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions(); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public GrpcRouteMatchOptions parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new GrpcRouteMatchOptions(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.RouteMatch.GrpcRouteMatchOptions getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface TlsContextMatchOptionsOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteMatch.TlsContextMatchOptions) com.google.protobuf.MessageOrBuilder { /** *
     * If specified, the route will match against whether or not a certificate is presented.
     * If not specified, certificate presentation status (true or false) will not be considered when route matching.
     * 
* * .google.protobuf.BoolValue presented = 1; * @return Whether the presented field is set. */ boolean hasPresented(); /** *
     * If specified, the route will match against whether or not a certificate is presented.
     * If not specified, certificate presentation status (true or false) will not be considered when route matching.
     * 
* * .google.protobuf.BoolValue presented = 1; * @return The presented. */ com.google.protobuf.BoolValue getPresented(); /** *
     * If specified, the route will match against whether or not a certificate is presented.
     * If not specified, certificate presentation status (true or false) will not be considered when route matching.
     * 
* * .google.protobuf.BoolValue presented = 1; */ com.google.protobuf.BoolValueOrBuilder getPresentedOrBuilder(); /** *
     * If specified, the route will match against whether or not a certificate is validated.
     * If not specified, certificate validation status (true or false) will not be considered when route matching.
     * .. warning::
     *    Client certificate validation is not currently performed upon TLS session resumption. For
     *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
     *    whether the client TLS certificate is valid.
     *    The only known workaround for this issue is to disable TLS session resumption entirely, by
     *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
     *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
     * 
* * .google.protobuf.BoolValue validated = 2; * @return Whether the validated field is set. */ boolean hasValidated(); /** *
     * If specified, the route will match against whether or not a certificate is validated.
     * If not specified, certificate validation status (true or false) will not be considered when route matching.
     * .. warning::
     *    Client certificate validation is not currently performed upon TLS session resumption. For
     *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
     *    whether the client TLS certificate is valid.
     *    The only known workaround for this issue is to disable TLS session resumption entirely, by
     *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
     *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
     * 
* * .google.protobuf.BoolValue validated = 2; * @return The validated. */ com.google.protobuf.BoolValue getValidated(); /** *
     * If specified, the route will match against whether or not a certificate is validated.
     * If not specified, certificate validation status (true or false) will not be considered when route matching.
     * .. warning::
     *    Client certificate validation is not currently performed upon TLS session resumption. For
     *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
     *    whether the client TLS certificate is valid.
     *    The only known workaround for this issue is to disable TLS session resumption entirely, by
     *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
     *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
     * 
* * .google.protobuf.BoolValue validated = 2; */ com.google.protobuf.BoolValueOrBuilder getValidatedOrBuilder(); } /** * Protobuf type {@code envoy.config.route.v3.RouteMatch.TlsContextMatchOptions} */ public static final class TlsContextMatchOptions extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteMatch.TlsContextMatchOptions) TlsContextMatchOptionsOrBuilder { private static final long serialVersionUID = 0L; // Use TlsContextMatchOptions.newBuilder() to construct. private TlsContextMatchOptions(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private TlsContextMatchOptions() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new TlsContextMatchOptions(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private TlsContextMatchOptions( 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.BoolValue.Builder subBuilder = null; if (presented_ != null) { subBuilder = presented_.toBuilder(); } presented_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(presented_); presented_ = subBuilder.buildPartial(); } break; } case 18: { com.google.protobuf.BoolValue.Builder subBuilder = null; if (validated_ != null) { subBuilder = validated_.toBuilder(); } validated_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(validated_); validated_ = 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_RouteMatch_TlsContextMatchOptions_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_RouteMatch_TlsContextMatchOptions_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.Builder.class); } public static final int PRESENTED_FIELD_NUMBER = 1; private com.google.protobuf.BoolValue presented_; /** *
     * If specified, the route will match against whether or not a certificate is presented.
     * If not specified, certificate presentation status (true or false) will not be considered when route matching.
     * 
* * .google.protobuf.BoolValue presented = 1; * @return Whether the presented field is set. */ @java.lang.Override public boolean hasPresented() { return presented_ != null; } /** *
     * If specified, the route will match against whether or not a certificate is presented.
     * If not specified, certificate presentation status (true or false) will not be considered when route matching.
     * 
* * .google.protobuf.BoolValue presented = 1; * @return The presented. */ @java.lang.Override public com.google.protobuf.BoolValue getPresented() { return presented_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : presented_; } /** *
     * If specified, the route will match against whether or not a certificate is presented.
     * If not specified, certificate presentation status (true or false) will not be considered when route matching.
     * 
* * .google.protobuf.BoolValue presented = 1; */ @java.lang.Override public com.google.protobuf.BoolValueOrBuilder getPresentedOrBuilder() { return getPresented(); } public static final int VALIDATED_FIELD_NUMBER = 2; private com.google.protobuf.BoolValue validated_; /** *
     * If specified, the route will match against whether or not a certificate is validated.
     * If not specified, certificate validation status (true or false) will not be considered when route matching.
     * .. warning::
     *    Client certificate validation is not currently performed upon TLS session resumption. For
     *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
     *    whether the client TLS certificate is valid.
     *    The only known workaround for this issue is to disable TLS session resumption entirely, by
     *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
     *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
     * 
* * .google.protobuf.BoolValue validated = 2; * @return Whether the validated field is set. */ @java.lang.Override public boolean hasValidated() { return validated_ != null; } /** *
     * If specified, the route will match against whether or not a certificate is validated.
     * If not specified, certificate validation status (true or false) will not be considered when route matching.
     * .. warning::
     *    Client certificate validation is not currently performed upon TLS session resumption. For
     *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
     *    whether the client TLS certificate is valid.
     *    The only known workaround for this issue is to disable TLS session resumption entirely, by
     *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
     *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
     * 
* * .google.protobuf.BoolValue validated = 2; * @return The validated. */ @java.lang.Override public com.google.protobuf.BoolValue getValidated() { return validated_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : validated_; } /** *
     * If specified, the route will match against whether or not a certificate is validated.
     * If not specified, certificate validation status (true or false) will not be considered when route matching.
     * .. warning::
     *    Client certificate validation is not currently performed upon TLS session resumption. For
     *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
     *    whether the client TLS certificate is valid.
     *    The only known workaround for this issue is to disable TLS session resumption entirely, by
     *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
     *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
     * 
* * .google.protobuf.BoolValue validated = 2; */ @java.lang.Override public com.google.protobuf.BoolValueOrBuilder getValidatedOrBuilder() { return getValidated(); } 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 (presented_ != null) { output.writeMessage(1, getPresented()); } if (validated_ != null) { output.writeMessage(2, getValidated()); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (presented_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getPresented()); } if (validated_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getValidated()); } 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.RouteMatch.TlsContextMatchOptions)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions other = (io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions) obj; if (hasPresented() != other.hasPresented()) return false; if (hasPresented()) { if (!getPresented() .equals(other.getPresented())) return false; } if (hasValidated() != other.hasValidated()) return false; if (hasValidated()) { if (!getValidated() .equals(other.getValidated())) 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 (hasPresented()) { hash = (37 * hash) + PRESENTED_FIELD_NUMBER; hash = (53 * hash) + getPresented().hashCode(); } if (hasValidated()) { hash = (37 * hash) + VALIDATED_FIELD_NUMBER; hash = (53 * hash) + getValidated().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions 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.RouteMatch.TlsContextMatchOptions parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions 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.RouteMatch.TlsContextMatchOptions parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions 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.RouteMatch.TlsContextMatchOptions 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.RouteMatch.TlsContextMatchOptions 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.RouteMatch.TlsContextMatchOptions 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.RouteMatch.TlsContextMatchOptions 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.RouteMatch.TlsContextMatchOptions 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.RouteMatch.TlsContextMatchOptions 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.RouteMatch.TlsContextMatchOptions 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.RouteMatch.TlsContextMatchOptions} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteMatch.TlsContextMatchOptions) io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptionsOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_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_RouteMatch_TlsContextMatchOptions_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.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 (presentedBuilder_ == null) { presented_ = null; } else { presented_ = null; presentedBuilder_ = null; } if (validatedBuilder_ == null) { validated_ = null; } else { validated_ = null; validatedBuilder_ = 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_RouteMatch_TlsContextMatchOptions_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions build() { io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions result = new io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions(this); if (presentedBuilder_ == null) { result.presented_ = presented_; } else { result.presented_ = presentedBuilder_.build(); } if (validatedBuilder_ == null) { result.validated_ = validated_; } else { result.validated_ = validatedBuilder_.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.RouteMatch.TlsContextMatchOptions) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.getDefaultInstance()) return this; if (other.hasPresented()) { mergePresented(other.getPresented()); } if (other.hasValidated()) { mergeValidated(other.getValidated()); } 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.RouteMatch.TlsContextMatchOptions parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private com.google.protobuf.BoolValue presented_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> presentedBuilder_; /** *
       * If specified, the route will match against whether or not a certificate is presented.
       * If not specified, certificate presentation status (true or false) will not be considered when route matching.
       * 
* * .google.protobuf.BoolValue presented = 1; * @return Whether the presented field is set. */ public boolean hasPresented() { return presentedBuilder_ != null || presented_ != null; } /** *
       * If specified, the route will match against whether or not a certificate is presented.
       * If not specified, certificate presentation status (true or false) will not be considered when route matching.
       * 
* * .google.protobuf.BoolValue presented = 1; * @return The presented. */ public com.google.protobuf.BoolValue getPresented() { if (presentedBuilder_ == null) { return presented_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : presented_; } else { return presentedBuilder_.getMessage(); } } /** *
       * If specified, the route will match against whether or not a certificate is presented.
       * If not specified, certificate presentation status (true or false) will not be considered when route matching.
       * 
* * .google.protobuf.BoolValue presented = 1; */ public Builder setPresented(com.google.protobuf.BoolValue value) { if (presentedBuilder_ == null) { if (value == null) { throw new NullPointerException(); } presented_ = value; onChanged(); } else { presentedBuilder_.setMessage(value); } return this; } /** *
       * If specified, the route will match against whether or not a certificate is presented.
       * If not specified, certificate presentation status (true or false) will not be considered when route matching.
       * 
* * .google.protobuf.BoolValue presented = 1; */ public Builder setPresented( com.google.protobuf.BoolValue.Builder builderForValue) { if (presentedBuilder_ == null) { presented_ = builderForValue.build(); onChanged(); } else { presentedBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * If specified, the route will match against whether or not a certificate is presented.
       * If not specified, certificate presentation status (true or false) will not be considered when route matching.
       * 
* * .google.protobuf.BoolValue presented = 1; */ public Builder mergePresented(com.google.protobuf.BoolValue value) { if (presentedBuilder_ == null) { if (presented_ != null) { presented_ = com.google.protobuf.BoolValue.newBuilder(presented_).mergeFrom(value).buildPartial(); } else { presented_ = value; } onChanged(); } else { presentedBuilder_.mergeFrom(value); } return this; } /** *
       * If specified, the route will match against whether or not a certificate is presented.
       * If not specified, certificate presentation status (true or false) will not be considered when route matching.
       * 
* * .google.protobuf.BoolValue presented = 1; */ public Builder clearPresented() { if (presentedBuilder_ == null) { presented_ = null; onChanged(); } else { presented_ = null; presentedBuilder_ = null; } return this; } /** *
       * If specified, the route will match against whether or not a certificate is presented.
       * If not specified, certificate presentation status (true or false) will not be considered when route matching.
       * 
* * .google.protobuf.BoolValue presented = 1; */ public com.google.protobuf.BoolValue.Builder getPresentedBuilder() { onChanged(); return getPresentedFieldBuilder().getBuilder(); } /** *
       * If specified, the route will match against whether or not a certificate is presented.
       * If not specified, certificate presentation status (true or false) will not be considered when route matching.
       * 
* * .google.protobuf.BoolValue presented = 1; */ public com.google.protobuf.BoolValueOrBuilder getPresentedOrBuilder() { if (presentedBuilder_ != null) { return presentedBuilder_.getMessageOrBuilder(); } else { return presented_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : presented_; } } /** *
       * If specified, the route will match against whether or not a certificate is presented.
       * If not specified, certificate presentation status (true or false) will not be considered when route matching.
       * 
* * .google.protobuf.BoolValue presented = 1; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> getPresentedFieldBuilder() { if (presentedBuilder_ == null) { presentedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>( getPresented(), getParentForChildren(), isClean()); presented_ = null; } return presentedBuilder_; } private com.google.protobuf.BoolValue validated_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> validatedBuilder_; /** *
       * If specified, the route will match against whether or not a certificate is validated.
       * If not specified, certificate validation status (true or false) will not be considered when route matching.
       * .. warning::
       *    Client certificate validation is not currently performed upon TLS session resumption. For
       *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
       *    whether the client TLS certificate is valid.
       *    The only known workaround for this issue is to disable TLS session resumption entirely, by
       *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
       *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
       * 
* * .google.protobuf.BoolValue validated = 2; * @return Whether the validated field is set. */ public boolean hasValidated() { return validatedBuilder_ != null || validated_ != null; } /** *
       * If specified, the route will match against whether or not a certificate is validated.
       * If not specified, certificate validation status (true or false) will not be considered when route matching.
       * .. warning::
       *    Client certificate validation is not currently performed upon TLS session resumption. For
       *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
       *    whether the client TLS certificate is valid.
       *    The only known workaround for this issue is to disable TLS session resumption entirely, by
       *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
       *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
       * 
* * .google.protobuf.BoolValue validated = 2; * @return The validated. */ public com.google.protobuf.BoolValue getValidated() { if (validatedBuilder_ == null) { return validated_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : validated_; } else { return validatedBuilder_.getMessage(); } } /** *
       * If specified, the route will match against whether or not a certificate is validated.
       * If not specified, certificate validation status (true or false) will not be considered when route matching.
       * .. warning::
       *    Client certificate validation is not currently performed upon TLS session resumption. For
       *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
       *    whether the client TLS certificate is valid.
       *    The only known workaround for this issue is to disable TLS session resumption entirely, by
       *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
       *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
       * 
* * .google.protobuf.BoolValue validated = 2; */ public Builder setValidated(com.google.protobuf.BoolValue value) { if (validatedBuilder_ == null) { if (value == null) { throw new NullPointerException(); } validated_ = value; onChanged(); } else { validatedBuilder_.setMessage(value); } return this; } /** *
       * If specified, the route will match against whether or not a certificate is validated.
       * If not specified, certificate validation status (true or false) will not be considered when route matching.
       * .. warning::
       *    Client certificate validation is not currently performed upon TLS session resumption. For
       *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
       *    whether the client TLS certificate is valid.
       *    The only known workaround for this issue is to disable TLS session resumption entirely, by
       *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
       *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
       * 
* * .google.protobuf.BoolValue validated = 2; */ public Builder setValidated( com.google.protobuf.BoolValue.Builder builderForValue) { if (validatedBuilder_ == null) { validated_ = builderForValue.build(); onChanged(); } else { validatedBuilder_.setMessage(builderForValue.build()); } return this; } /** *
       * If specified, the route will match against whether or not a certificate is validated.
       * If not specified, certificate validation status (true or false) will not be considered when route matching.
       * .. warning::
       *    Client certificate validation is not currently performed upon TLS session resumption. For
       *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
       *    whether the client TLS certificate is valid.
       *    The only known workaround for this issue is to disable TLS session resumption entirely, by
       *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
       *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
       * 
* * .google.protobuf.BoolValue validated = 2; */ public Builder mergeValidated(com.google.protobuf.BoolValue value) { if (validatedBuilder_ == null) { if (validated_ != null) { validated_ = com.google.protobuf.BoolValue.newBuilder(validated_).mergeFrom(value).buildPartial(); } else { validated_ = value; } onChanged(); } else { validatedBuilder_.mergeFrom(value); } return this; } /** *
       * If specified, the route will match against whether or not a certificate is validated.
       * If not specified, certificate validation status (true or false) will not be considered when route matching.
       * .. warning::
       *    Client certificate validation is not currently performed upon TLS session resumption. For
       *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
       *    whether the client TLS certificate is valid.
       *    The only known workaround for this issue is to disable TLS session resumption entirely, by
       *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
       *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
       * 
* * .google.protobuf.BoolValue validated = 2; */ public Builder clearValidated() { if (validatedBuilder_ == null) { validated_ = null; onChanged(); } else { validated_ = null; validatedBuilder_ = null; } return this; } /** *
       * If specified, the route will match against whether or not a certificate is validated.
       * If not specified, certificate validation status (true or false) will not be considered when route matching.
       * .. warning::
       *    Client certificate validation is not currently performed upon TLS session resumption. For
       *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
       *    whether the client TLS certificate is valid.
       *    The only known workaround for this issue is to disable TLS session resumption entirely, by
       *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
       *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
       * 
* * .google.protobuf.BoolValue validated = 2; */ public com.google.protobuf.BoolValue.Builder getValidatedBuilder() { onChanged(); return getValidatedFieldBuilder().getBuilder(); } /** *
       * If specified, the route will match against whether or not a certificate is validated.
       * If not specified, certificate validation status (true or false) will not be considered when route matching.
       * .. warning::
       *    Client certificate validation is not currently performed upon TLS session resumption. For
       *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
       *    whether the client TLS certificate is valid.
       *    The only known workaround for this issue is to disable TLS session resumption entirely, by
       *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
       *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
       * 
* * .google.protobuf.BoolValue validated = 2; */ public com.google.protobuf.BoolValueOrBuilder getValidatedOrBuilder() { if (validatedBuilder_ != null) { return validatedBuilder_.getMessageOrBuilder(); } else { return validated_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : validated_; } } /** *
       * If specified, the route will match against whether or not a certificate is validated.
       * If not specified, certificate validation status (true or false) will not be considered when route matching.
       * .. warning::
       *    Client certificate validation is not currently performed upon TLS session resumption. For
       *    a resumed TLS session the route will match only when ``validated`` is false, regardless of
       *    whether the client TLS certificate is valid.
       *    The only known workaround for this issue is to disable TLS session resumption entirely, by
       *    setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
       *    and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
       * 
* * .google.protobuf.BoolValue validated = 2; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> getValidatedFieldBuilder() { if (validatedBuilder_ == null) { validatedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>( getValidated(), getParentForChildren(), isClean()); validated_ = null; } return validatedBuilder_; } @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.RouteMatch.TlsContextMatchOptions) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteMatch.TlsContextMatchOptions) private static final io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions(); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public TlsContextMatchOptions parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new TlsContextMatchOptions(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.RouteMatch.TlsContextMatchOptions getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface ConnectMatcherOrBuilder extends // @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteMatch.ConnectMatcher) com.google.protobuf.MessageOrBuilder { } /** *
   * An extensible message for matching CONNECT or CONNECT-UDP requests.
   * 
* * Protobuf type {@code envoy.config.route.v3.RouteMatch.ConnectMatcher} */ public static final class ConnectMatcher extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteMatch.ConnectMatcher) ConnectMatcherOrBuilder { private static final long serialVersionUID = 0L; // Use ConnectMatcher.newBuilder() to construct. private ConnectMatcher(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private ConnectMatcher() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new ConnectMatcher(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private ConnectMatcher( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_ConnectMatcher_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_RouteMatch_ConnectMatcher_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.Builder.class); } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher other = (io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) obj; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher 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.RouteMatch.ConnectMatcher parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher 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.RouteMatch.ConnectMatcher parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher 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.RouteMatch.ConnectMatcher 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.RouteMatch.ConnectMatcher 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.RouteMatch.ConnectMatcher 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.RouteMatch.ConnectMatcher 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.RouteMatch.ConnectMatcher 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.RouteMatch.ConnectMatcher 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.RouteMatch.ConnectMatcher 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; } /** *
     * An extensible message for matching CONNECT or CONNECT-UDP requests.
     * 
* * Protobuf type {@code envoy.config.route.v3.RouteMatch.ConnectMatcher} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteMatch.ConnectMatcher) io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcherOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_ConnectMatcher_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_RouteMatch_ConnectMatcher_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { } } @java.lang.Override public Builder clear() { super.clear(); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_ConnectMatcher_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher build() { io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher result = new io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher(this); onBuilt(); return result; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.getDefaultInstance()) return this; this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:envoy.config.route.v3.RouteMatch.ConnectMatcher) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteMatch.ConnectMatcher) private static final io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher(); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public ConnectMatcher parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new ConnectMatcher(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.RouteMatch.ConnectMatcher getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private int pathSpecifierCase_ = 0; private java.lang.Object pathSpecifier_; public enum PathSpecifierCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { PREFIX(1), PATH(2), SAFE_REGEX(10), CONNECT_MATCHER(12), PATH_SEPARATED_PREFIX(14), PATH_MATCH_POLICY(15), PATHSPECIFIER_NOT_SET(0); private final int value; private PathSpecifierCase(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 PathSpecifierCase valueOf(int value) { return forNumber(value); } public static PathSpecifierCase forNumber(int value) { switch (value) { case 1: return PREFIX; case 2: return PATH; case 10: return SAFE_REGEX; case 12: return CONNECT_MATCHER; case 14: return PATH_SEPARATED_PREFIX; case 15: return PATH_MATCH_POLICY; case 0: return PATHSPECIFIER_NOT_SET; default: return null; } } public int getNumber() { return this.value; } }; public PathSpecifierCase getPathSpecifierCase() { return PathSpecifierCase.forNumber( pathSpecifierCase_); } public static final int PREFIX_FIELD_NUMBER = 1; /** *
   * If specified, the route is a prefix rule meaning that the prefix must
   * match the beginning of the ``:path`` header.
   * 
* * string prefix = 1; * @return Whether the prefix field is set. */ public boolean hasPrefix() { return pathSpecifierCase_ == 1; } /** *
   * If specified, the route is a prefix rule meaning that the prefix must
   * match the beginning of the ``:path`` header.
   * 
* * string prefix = 1; * @return The prefix. */ public java.lang.String getPrefix() { java.lang.Object ref = ""; if (pathSpecifierCase_ == 1) { ref = pathSpecifier_; } 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 (pathSpecifierCase_ == 1) { pathSpecifier_ = s; } return s; } } /** *
   * If specified, the route is a prefix rule meaning that the prefix must
   * match the beginning of the ``:path`` header.
   * 
* * string prefix = 1; * @return The bytes for prefix. */ public com.google.protobuf.ByteString getPrefixBytes() { java.lang.Object ref = ""; if (pathSpecifierCase_ == 1) { ref = pathSpecifier_; } if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (pathSpecifierCase_ == 1) { pathSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int PATH_FIELD_NUMBER = 2; /** *
   * If specified, the route is an exact path rule meaning that the path must
   * exactly match the ``:path`` header once the query string is removed.
   * 
* * string path = 2; * @return Whether the path field is set. */ public boolean hasPath() { return pathSpecifierCase_ == 2; } /** *
   * If specified, the route is an exact path rule meaning that the path must
   * exactly match the ``:path`` header once the query string is removed.
   * 
* * string path = 2; * @return The path. */ public java.lang.String getPath() { java.lang.Object ref = ""; if (pathSpecifierCase_ == 2) { ref = pathSpecifier_; } 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 (pathSpecifierCase_ == 2) { pathSpecifier_ = s; } return s; } } /** *
   * If specified, the route is an exact path rule meaning that the path must
   * exactly match the ``:path`` header once the query string is removed.
   * 
* * string path = 2; * @return The bytes for path. */ public com.google.protobuf.ByteString getPathBytes() { java.lang.Object ref = ""; if (pathSpecifierCase_ == 2) { ref = pathSpecifier_; } if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (pathSpecifierCase_ == 2) { pathSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int SAFE_REGEX_FIELD_NUMBER = 10; /** *
   * If specified, the route is a regular expression rule meaning that the
   * regex must match the ``:path`` header once the query string is removed. The entire path
   * (without the query string) must match the regex. The rule will not match if only a
   * subsequence of the ``:path`` header matches the regex.
   * [#next-major-version: In the v3 API we should redo how path specification works such
   * that we utilize StringMatcher, and additionally have consistent options around whether we
   * strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
   * to deprecate the existing options. We should even consider whether we want to do away with
   * path_specifier entirely and just rely on a set of header matchers which can already match
   * on :path, etc. The issue with that is it is unclear how to generically deal with query string
   * stripping. This needs more thought.]
   * 
* * .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... } * @return Whether the safeRegex field is set. */ @java.lang.Override public boolean hasSafeRegex() { return pathSpecifierCase_ == 10; } /** *
   * If specified, the route is a regular expression rule meaning that the
   * regex must match the ``:path`` header once the query string is removed. The entire path
   * (without the query string) must match the regex. The rule will not match if only a
   * subsequence of the ``:path`` header matches the regex.
   * [#next-major-version: In the v3 API we should redo how path specification works such
   * that we utilize StringMatcher, and additionally have consistent options around whether we
   * strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
   * to deprecate the existing options. We should even consider whether we want to do away with
   * path_specifier entirely and just rely on a set of header matchers which can already match
   * on :path, etc. The issue with that is it is unclear how to generically deal with query string
   * stripping. This needs more thought.]
   * 
* * .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... } * @return The safeRegex. */ @java.lang.Override public io.envoyproxy.envoy.type.matcher.v3.RegexMatcher getSafeRegex() { if (pathSpecifierCase_ == 10) { return (io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_; } return io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.getDefaultInstance(); } /** *
   * If specified, the route is a regular expression rule meaning that the
   * regex must match the ``:path`` header once the query string is removed. The entire path
   * (without the query string) must match the regex. The rule will not match if only a
   * subsequence of the ``:path`` header matches the regex.
   * [#next-major-version: In the v3 API we should redo how path specification works such
   * that we utilize StringMatcher, and additionally have consistent options around whether we
   * strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
   * to deprecate the existing options. We should even consider whether we want to do away with
   * path_specifier entirely and just rely on a set of header matchers which can already match
   * on :path, etc. The issue with that is it is unclear how to generically deal with query string
   * stripping. This needs more thought.]
   * 
* * .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... } */ @java.lang.Override public io.envoyproxy.envoy.type.matcher.v3.RegexMatcherOrBuilder getSafeRegexOrBuilder() { if (pathSpecifierCase_ == 10) { return (io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_; } return io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.getDefaultInstance(); } public static final int CONNECT_MATCHER_FIELD_NUMBER = 12; /** *
   * If this is used as the matcher, the matcher will only match CONNECT or CONNECT-UDP requests.
   * Note that this will not match other Extended CONNECT requests (WebSocket and the like) as
   * they are normalized in Envoy as HTTP/1.1 style upgrades.
   * This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2 and HTTP/3,
   * where Extended CONNECT requests may have a path, the path matchers will work if
   * there is a path present.
   * 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.RouteMatch.ConnectMatcher connect_matcher = 12; * @return Whether the connectMatcher field is set. */ @java.lang.Override public boolean hasConnectMatcher() { return pathSpecifierCase_ == 12; } /** *
   * If this is used as the matcher, the matcher will only match CONNECT or CONNECT-UDP requests.
   * Note that this will not match other Extended CONNECT requests (WebSocket and the like) as
   * they are normalized in Envoy as HTTP/1.1 style upgrades.
   * This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2 and HTTP/3,
   * where Extended CONNECT requests may have a path, the path matchers will work if
   * there is a path present.
   * 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.RouteMatch.ConnectMatcher connect_matcher = 12; * @return The connectMatcher. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher getConnectMatcher() { if (pathSpecifierCase_ == 12) { return (io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) pathSpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.getDefaultInstance(); } /** *
   * If this is used as the matcher, the matcher will only match CONNECT or CONNECT-UDP requests.
   * Note that this will not match other Extended CONNECT requests (WebSocket and the like) as
   * they are normalized in Envoy as HTTP/1.1 style upgrades.
   * This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2 and HTTP/3,
   * where Extended CONNECT requests may have a path, the path matchers will work if
   * there is a path present.
   * 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.RouteMatch.ConnectMatcher connect_matcher = 12; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcherOrBuilder getConnectMatcherOrBuilder() { if (pathSpecifierCase_ == 12) { return (io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) pathSpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.getDefaultInstance(); } public static final int PATH_SEPARATED_PREFIX_FIELD_NUMBER = 14; /** *
   * If specified, the route is a path-separated prefix rule meaning that the
   * ``:path`` header (without the query string) must either exactly match the
   * ``path_separated_prefix`` or have it as a prefix, followed by ``/``
   * For example, ``/api/dev`` would match
   * ``/api/dev``, ``/api/dev/``, ``/api/dev/v1``, and ``/api/dev?param=true``
   * but would not match ``/api/developer``
   * Expect the value to not contain ``?`` or ``#`` and not to end in ``/``
   * 
* * string path_separated_prefix = 14 [(.validate.rules) = { ... } * @return Whether the pathSeparatedPrefix field is set. */ public boolean hasPathSeparatedPrefix() { return pathSpecifierCase_ == 14; } /** *
   * If specified, the route is a path-separated prefix rule meaning that the
   * ``:path`` header (without the query string) must either exactly match the
   * ``path_separated_prefix`` or have it as a prefix, followed by ``/``
   * For example, ``/api/dev`` would match
   * ``/api/dev``, ``/api/dev/``, ``/api/dev/v1``, and ``/api/dev?param=true``
   * but would not match ``/api/developer``
   * Expect the value to not contain ``?`` or ``#`` and not to end in ``/``
   * 
* * string path_separated_prefix = 14 [(.validate.rules) = { ... } * @return The pathSeparatedPrefix. */ public java.lang.String getPathSeparatedPrefix() { java.lang.Object ref = ""; if (pathSpecifierCase_ == 14) { ref = pathSpecifier_; } 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 (pathSpecifierCase_ == 14) { pathSpecifier_ = s; } return s; } } /** *
   * If specified, the route is a path-separated prefix rule meaning that the
   * ``:path`` header (without the query string) must either exactly match the
   * ``path_separated_prefix`` or have it as a prefix, followed by ``/``
   * For example, ``/api/dev`` would match
   * ``/api/dev``, ``/api/dev/``, ``/api/dev/v1``, and ``/api/dev?param=true``
   * but would not match ``/api/developer``
   * Expect the value to not contain ``?`` or ``#`` and not to end in ``/``
   * 
* * string path_separated_prefix = 14 [(.validate.rules) = { ... } * @return The bytes for pathSeparatedPrefix. */ public com.google.protobuf.ByteString getPathSeparatedPrefixBytes() { java.lang.Object ref = ""; if (pathSpecifierCase_ == 14) { ref = pathSpecifier_; } if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (pathSpecifierCase_ == 14) { pathSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int PATH_MATCH_POLICY_FIELD_NUMBER = 15; /** *
   * [#extension-category: envoy.path.match]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15; * @return Whether the pathMatchPolicy field is set. */ @java.lang.Override public boolean hasPathMatchPolicy() { return pathSpecifierCase_ == 15; } /** *
   * [#extension-category: envoy.path.match]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15; * @return The pathMatchPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig getPathMatchPolicy() { if (pathSpecifierCase_ == 15) { return (io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_; } return io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance(); } /** *
   * [#extension-category: envoy.path.match]
   * 
* * .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder getPathMatchPolicyOrBuilder() { if (pathSpecifierCase_ == 15) { return (io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_; } return io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance(); } public static final int CASE_SENSITIVE_FIELD_NUMBER = 4; private com.google.protobuf.BoolValue caseSensitive_; /** *
   * Indicates that prefix/path matching should be case sensitive. The default
   * is true. Ignored for safe_regex matching.
   * 
* * .google.protobuf.BoolValue case_sensitive = 4; * @return Whether the caseSensitive field is set. */ @java.lang.Override public boolean hasCaseSensitive() { return caseSensitive_ != null; } /** *
   * Indicates that prefix/path matching should be case sensitive. The default
   * is true. Ignored for safe_regex matching.
   * 
* * .google.protobuf.BoolValue case_sensitive = 4; * @return The caseSensitive. */ @java.lang.Override public com.google.protobuf.BoolValue getCaseSensitive() { return caseSensitive_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : caseSensitive_; } /** *
   * Indicates that prefix/path matching should be case sensitive. The default
   * is true. Ignored for safe_regex matching.
   * 
* * .google.protobuf.BoolValue case_sensitive = 4; */ @java.lang.Override public com.google.protobuf.BoolValueOrBuilder getCaseSensitiveOrBuilder() { return getCaseSensitive(); } public static final int RUNTIME_FRACTION_FIELD_NUMBER = 9; private io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent runtimeFraction_; /** *
   * Indicates that the route should additionally match on a runtime key. Every time the route
   * is considered for a match, it 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 router continues to evaluate the remaining match criteria. A runtime_fraction
   * route configuration can be used to roll out route changes in a gradual manner without full
   * code/config deploys. Refer to the :ref:`traffic shifting
   * <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
   * .. note::
   *    Parsing this field is implemented such that the runtime key's data may be represented
   *    as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
   *    integer with the assumption that the value is an integral percentage out of 100. For
   *    instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
   *    whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
   * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9; * @return Whether the runtimeFraction field is set. */ @java.lang.Override public boolean hasRuntimeFraction() { return runtimeFraction_ != null; } /** *
   * Indicates that the route should additionally match on a runtime key. Every time the route
   * is considered for a match, it 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 router continues to evaluate the remaining match criteria. A runtime_fraction
   * route configuration can be used to roll out route changes in a gradual manner without full
   * code/config deploys. Refer to the :ref:`traffic shifting
   * <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
   * .. note::
   *    Parsing this field is implemented such that the runtime key's data may be represented
   *    as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
   *    integer with the assumption that the value is an integral percentage out of 100. For
   *    instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
   *    whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
   * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9; * @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_; } /** *
   * Indicates that the route should additionally match on a runtime key. Every time the route
   * is considered for a match, it 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 router continues to evaluate the remaining match criteria. A runtime_fraction
   * route configuration can be used to roll out route changes in a gradual manner without full
   * code/config deploys. Refer to the :ref:`traffic shifting
   * <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
   * .. note::
   *    Parsing this field is implemented such that the runtime key's data may be represented
   *    as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
   *    integer with the assumption that the value is an integral percentage out of 100. For
   *    instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
   *    whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
   * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercentOrBuilder getRuntimeFractionOrBuilder() { return getRuntimeFraction(); } public static final int HEADERS_FIELD_NUMBER = 6; private java.util.List headers_; /** *
   * Specifies a set of headers that the route should match on. The router will
   * check the request’s headers against all the specified headers in the route
   * config. A match will happen if all the headers in the route are present in
   * the request with the same values (or based on presence if the value field
   * is not in the config).
   * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ @java.lang.Override public java.util.List getHeadersList() { return headers_; } /** *
   * Specifies a set of headers that the route should match on. The router will
   * check the request’s headers against all the specified headers in the route
   * config. A match will happen if all the headers in the route are present in
   * the request with the same values (or based on presence if the value field
   * is not in the config).
   * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ @java.lang.Override public java.util.List getHeadersOrBuilderList() { return headers_; } /** *
   * Specifies a set of headers that the route should match on. The router will
   * check the request’s headers against all the specified headers in the route
   * config. A match will happen if all the headers in the route are present in
   * the request with the same values (or based on presence if the value field
   * is not in the config).
   * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ @java.lang.Override public int getHeadersCount() { return headers_.size(); } /** *
   * Specifies a set of headers that the route should match on. The router will
   * check the request’s headers against all the specified headers in the route
   * config. A match will happen if all the headers in the route are present in
   * the request with the same values (or based on presence if the value field
   * is not in the config).
   * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.HeaderMatcher getHeaders(int index) { return headers_.get(index); } /** *
   * Specifies a set of headers that the route should match on. The router will
   * check the request’s headers against all the specified headers in the route
   * config. A match will happen if all the headers in the route are present in
   * the request with the same values (or based on presence if the value field
   * is not in the config).
   * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.HeaderMatcherOrBuilder getHeadersOrBuilder( int index) { return headers_.get(index); } public static final int QUERY_PARAMETERS_FIELD_NUMBER = 7; private java.util.List queryParameters_; /** *
   * Specifies a set of URL query parameters on which the route should
   * match. The router will check the query string from the ``path`` header
   * against all the specified query parameters. If the number of specified
   * query parameters is nonzero, they all must match the ``path`` header's
   * query string for a match to occur. In the event query parameters are
   * repeated, only the first value for each key will be considered.
   * .. note::
   *    If query parameters are used to pass request message fields when
   *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
   *    is used, the transcoded message fields maybe different. The query parameters are
   *    url encoded, but the message fields are not. For example, if a query
   *    parameter is "foo%20bar", the message field will be "foo bar".
   * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ @java.lang.Override public java.util.List getQueryParametersList() { return queryParameters_; } /** *
   * Specifies a set of URL query parameters on which the route should
   * match. The router will check the query string from the ``path`` header
   * against all the specified query parameters. If the number of specified
   * query parameters is nonzero, they all must match the ``path`` header's
   * query string for a match to occur. In the event query parameters are
   * repeated, only the first value for each key will be considered.
   * .. note::
   *    If query parameters are used to pass request message fields when
   *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
   *    is used, the transcoded message fields maybe different. The query parameters are
   *    url encoded, but the message fields are not. For example, if a query
   *    parameter is "foo%20bar", the message field will be "foo bar".
   * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ @java.lang.Override public java.util.List getQueryParametersOrBuilderList() { return queryParameters_; } /** *
   * Specifies a set of URL query parameters on which the route should
   * match. The router will check the query string from the ``path`` header
   * against all the specified query parameters. If the number of specified
   * query parameters is nonzero, they all must match the ``path`` header's
   * query string for a match to occur. In the event query parameters are
   * repeated, only the first value for each key will be considered.
   * .. note::
   *    If query parameters are used to pass request message fields when
   *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
   *    is used, the transcoded message fields maybe different. The query parameters are
   *    url encoded, but the message fields are not. For example, if a query
   *    parameter is "foo%20bar", the message field will be "foo bar".
   * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ @java.lang.Override public int getQueryParametersCount() { return queryParameters_.size(); } /** *
   * Specifies a set of URL query parameters on which the route should
   * match. The router will check the query string from the ``path`` header
   * against all the specified query parameters. If the number of specified
   * query parameters is nonzero, they all must match the ``path`` header's
   * query string for a match to occur. In the event query parameters are
   * repeated, only the first value for each key will be considered.
   * .. note::
   *    If query parameters are used to pass request message fields when
   *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
   *    is used, the transcoded message fields maybe different. The query parameters are
   *    url encoded, but the message fields are not. For example, if a query
   *    parameter is "foo%20bar", the message field will be "foo bar".
   * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher getQueryParameters(int index) { return queryParameters_.get(index); } /** *
   * Specifies a set of URL query parameters on which the route should
   * match. The router will check the query string from the ``path`` header
   * against all the specified query parameters. If the number of specified
   * query parameters is nonzero, they all must match the ``path`` header's
   * query string for a match to occur. In the event query parameters are
   * repeated, only the first value for each key will be considered.
   * .. note::
   *    If query parameters are used to pass request message fields when
   *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
   *    is used, the transcoded message fields maybe different. The query parameters are
   *    url encoded, but the message fields are not. For example, if a query
   *    parameter is "foo%20bar", the message field will be "foo bar".
   * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.QueryParameterMatcherOrBuilder getQueryParametersOrBuilder( int index) { return queryParameters_.get(index); } public static final int GRPC_FIELD_NUMBER = 8; private io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc_; /** *
   * If specified, only gRPC requests will be matched. The router will check
   * that the content-type header has a application/grpc or one of the various
   * application/grpc+ values.
   * 
* * .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8; * @return Whether the grpc field is set. */ @java.lang.Override public boolean hasGrpc() { return grpc_ != null; } /** *
   * If specified, only gRPC requests will be matched. The router will check
   * that the content-type header has a application/grpc or one of the various
   * application/grpc+ values.
   * 
* * .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8; * @return The grpc. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions getGrpc() { return grpc_ == null ? io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.getDefaultInstance() : grpc_; } /** *
   * If specified, only gRPC requests will be matched. The router will check
   * that the content-type header has a application/grpc or one of the various
   * application/grpc+ values.
   * 
* * .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptionsOrBuilder getGrpcOrBuilder() { return getGrpc(); } public static final int TLS_CONTEXT_FIELD_NUMBER = 11; private io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tlsContext_; /** *
   * If specified, the client tls context will be matched against the defined
   * match options.
   * [#next-major-version: unify with RBAC]
   * 
* * .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11; * @return Whether the tlsContext field is set. */ @java.lang.Override public boolean hasTlsContext() { return tlsContext_ != null; } /** *
   * If specified, the client tls context will be matched against the defined
   * match options.
   * [#next-major-version: unify with RBAC]
   * 
* * .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11; * @return The tlsContext. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions getTlsContext() { return tlsContext_ == null ? io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.getDefaultInstance() : tlsContext_; } /** *
   * If specified, the client tls context will be matched against the defined
   * match options.
   * [#next-major-version: unify with RBAC]
   * 
* * .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptionsOrBuilder getTlsContextOrBuilder() { return getTlsContext(); } public static final int DYNAMIC_METADATA_FIELD_NUMBER = 13; private java.util.List dynamicMetadata_; /** *
   * Specifies a set of dynamic metadata matchers on which the route should match.
   * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
   * If the number of specified dynamic metadata matchers is nonzero, they all must match the
   * dynamic metadata for a match to occur.
   * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ @java.lang.Override public java.util.List getDynamicMetadataList() { return dynamicMetadata_; } /** *
   * Specifies a set of dynamic metadata matchers on which the route should match.
   * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
   * If the number of specified dynamic metadata matchers is nonzero, they all must match the
   * dynamic metadata for a match to occur.
   * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ @java.lang.Override public java.util.List getDynamicMetadataOrBuilderList() { return dynamicMetadata_; } /** *
   * Specifies a set of dynamic metadata matchers on which the route should match.
   * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
   * If the number of specified dynamic metadata matchers is nonzero, they all must match the
   * dynamic metadata for a match to occur.
   * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ @java.lang.Override public int getDynamicMetadataCount() { return dynamicMetadata_.size(); } /** *
   * Specifies a set of dynamic metadata matchers on which the route should match.
   * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
   * If the number of specified dynamic metadata matchers is nonzero, they all must match the
   * dynamic metadata for a match to occur.
   * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ @java.lang.Override public io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher getDynamicMetadata(int index) { return dynamicMetadata_.get(index); } /** *
   * Specifies a set of dynamic metadata matchers on which the route should match.
   * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
   * If the number of specified dynamic metadata matchers is nonzero, they all must match the
   * dynamic metadata for a match to occur.
   * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ @java.lang.Override public io.envoyproxy.envoy.type.matcher.v3.MetadataMatcherOrBuilder getDynamicMetadataOrBuilder( int index) { return dynamicMetadata_.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 (pathSpecifierCase_ == 1) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, pathSpecifier_); } if (pathSpecifierCase_ == 2) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, pathSpecifier_); } if (caseSensitive_ != null) { output.writeMessage(4, getCaseSensitive()); } for (int i = 0; i < headers_.size(); i++) { output.writeMessage(6, headers_.get(i)); } for (int i = 0; i < queryParameters_.size(); i++) { output.writeMessage(7, queryParameters_.get(i)); } if (grpc_ != null) { output.writeMessage(8, getGrpc()); } if (runtimeFraction_ != null) { output.writeMessage(9, getRuntimeFraction()); } if (pathSpecifierCase_ == 10) { output.writeMessage(10, (io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_); } if (tlsContext_ != null) { output.writeMessage(11, getTlsContext()); } if (pathSpecifierCase_ == 12) { output.writeMessage(12, (io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) pathSpecifier_); } for (int i = 0; i < dynamicMetadata_.size(); i++) { output.writeMessage(13, dynamicMetadata_.get(i)); } if (pathSpecifierCase_ == 14) { com.google.protobuf.GeneratedMessageV3.writeString(output, 14, pathSpecifier_); } if (pathSpecifierCase_ == 15) { output.writeMessage(15, (io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (pathSpecifierCase_ == 1) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, pathSpecifier_); } if (pathSpecifierCase_ == 2) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, pathSpecifier_); } if (caseSensitive_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getCaseSensitive()); } for (int i = 0; i < headers_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(6, headers_.get(i)); } for (int i = 0; i < queryParameters_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(7, queryParameters_.get(i)); } if (grpc_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(8, getGrpc()); } if (runtimeFraction_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(9, getRuntimeFraction()); } if (pathSpecifierCase_ == 10) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(10, (io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_); } if (tlsContext_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(11, getTlsContext()); } if (pathSpecifierCase_ == 12) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(12, (io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) pathSpecifier_); } for (int i = 0; i < dynamicMetadata_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(13, dynamicMetadata_.get(i)); } if (pathSpecifierCase_ == 14) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, pathSpecifier_); } if (pathSpecifierCase_ == 15) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(15, (io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_); } 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.RouteMatch)) { return super.equals(obj); } io.envoyproxy.envoy.config.route.v3.RouteMatch other = (io.envoyproxy.envoy.config.route.v3.RouteMatch) obj; if (hasCaseSensitive() != other.hasCaseSensitive()) return false; if (hasCaseSensitive()) { if (!getCaseSensitive() .equals(other.getCaseSensitive())) return false; } if (hasRuntimeFraction() != other.hasRuntimeFraction()) return false; if (hasRuntimeFraction()) { if (!getRuntimeFraction() .equals(other.getRuntimeFraction())) return false; } if (!getHeadersList() .equals(other.getHeadersList())) return false; if (!getQueryParametersList() .equals(other.getQueryParametersList())) return false; if (hasGrpc() != other.hasGrpc()) return false; if (hasGrpc()) { if (!getGrpc() .equals(other.getGrpc())) return false; } if (hasTlsContext() != other.hasTlsContext()) return false; if (hasTlsContext()) { if (!getTlsContext() .equals(other.getTlsContext())) return false; } if (!getDynamicMetadataList() .equals(other.getDynamicMetadataList())) return false; if (!getPathSpecifierCase().equals(other.getPathSpecifierCase())) return false; switch (pathSpecifierCase_) { case 1: if (!getPrefix() .equals(other.getPrefix())) return false; break; case 2: if (!getPath() .equals(other.getPath())) return false; break; case 10: if (!getSafeRegex() .equals(other.getSafeRegex())) return false; break; case 12: if (!getConnectMatcher() .equals(other.getConnectMatcher())) return false; break; case 14: if (!getPathSeparatedPrefix() .equals(other.getPathSeparatedPrefix())) return false; break; case 15: if (!getPathMatchPolicy() .equals(other.getPathMatchPolicy())) return false; break; case 0: default: } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); if (hasCaseSensitive()) { hash = (37 * hash) + CASE_SENSITIVE_FIELD_NUMBER; hash = (53 * hash) + getCaseSensitive().hashCode(); } if (hasRuntimeFraction()) { hash = (37 * hash) + RUNTIME_FRACTION_FIELD_NUMBER; hash = (53 * hash) + getRuntimeFraction().hashCode(); } if (getHeadersCount() > 0) { hash = (37 * hash) + HEADERS_FIELD_NUMBER; hash = (53 * hash) + getHeadersList().hashCode(); } if (getQueryParametersCount() > 0) { hash = (37 * hash) + QUERY_PARAMETERS_FIELD_NUMBER; hash = (53 * hash) + getQueryParametersList().hashCode(); } if (hasGrpc()) { hash = (37 * hash) + GRPC_FIELD_NUMBER; hash = (53 * hash) + getGrpc().hashCode(); } if (hasTlsContext()) { hash = (37 * hash) + TLS_CONTEXT_FIELD_NUMBER; hash = (53 * hash) + getTlsContext().hashCode(); } if (getDynamicMetadataCount() > 0) { hash = (37 * hash) + DYNAMIC_METADATA_FIELD_NUMBER; hash = (53 * hash) + getDynamicMetadataList().hashCode(); } switch (pathSpecifierCase_) { case 1: hash = (37 * hash) + PREFIX_FIELD_NUMBER; hash = (53 * hash) + getPrefix().hashCode(); break; case 2: hash = (37 * hash) + PATH_FIELD_NUMBER; hash = (53 * hash) + getPath().hashCode(); break; case 10: hash = (37 * hash) + SAFE_REGEX_FIELD_NUMBER; hash = (53 * hash) + getSafeRegex().hashCode(); break; case 12: hash = (37 * hash) + CONNECT_MATCHER_FIELD_NUMBER; hash = (53 * hash) + getConnectMatcher().hashCode(); break; case 14: hash = (37 * hash) + PATH_SEPARATED_PREFIX_FIELD_NUMBER; hash = (53 * hash) + getPathSeparatedPrefix().hashCode(); break; case 15: hash = (37 * hash) + PATH_MATCH_POLICY_FIELD_NUMBER; hash = (53 * hash) + getPathMatchPolicy().hashCode(); break; case 0: default: } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static io.envoyproxy.envoy.config.route.v3.RouteMatch parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch 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.RouteMatch parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch 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.RouteMatch parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch 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.RouteMatch 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.RouteMatch 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.RouteMatch 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.RouteMatch 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.RouteMatch 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.RouteMatch 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.RouteMatch 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: 16]
   * 
* * Protobuf type {@code envoy.config.route.v3.RouteMatch} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteMatch) io.envoyproxy.envoy.config.route.v3.RouteMatchOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_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_RouteMatch_fieldAccessorTable .ensureFieldAccessorsInitialized( io.envoyproxy.envoy.config.route.v3.RouteMatch.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.Builder.class); } // Construct using io.envoyproxy.envoy.config.route.v3.RouteMatch.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getHeadersFieldBuilder(); getQueryParametersFieldBuilder(); getDynamicMetadataFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); if (caseSensitiveBuilder_ == null) { caseSensitive_ = null; } else { caseSensitive_ = null; caseSensitiveBuilder_ = null; } if (runtimeFractionBuilder_ == null) { runtimeFraction_ = null; } else { runtimeFraction_ = null; runtimeFractionBuilder_ = null; } if (headersBuilder_ == null) { headers_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); } else { headersBuilder_.clear(); } if (queryParametersBuilder_ == null) { queryParameters_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000002); } else { queryParametersBuilder_.clear(); } if (grpcBuilder_ == null) { grpc_ = null; } else { grpc_ = null; grpcBuilder_ = null; } if (tlsContextBuilder_ == null) { tlsContext_ = null; } else { tlsContext_ = null; tlsContextBuilder_ = null; } if (dynamicMetadataBuilder_ == null) { dynamicMetadata_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000004); } else { dynamicMetadataBuilder_.clear(); } pathSpecifierCase_ = 0; pathSpecifier_ = 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_RouteMatch_descriptor; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch getDefaultInstanceForType() { return io.envoyproxy.envoy.config.route.v3.RouteMatch.getDefaultInstance(); } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch build() { io.envoyproxy.envoy.config.route.v3.RouteMatch result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch buildPartial() { io.envoyproxy.envoy.config.route.v3.RouteMatch result = new io.envoyproxy.envoy.config.route.v3.RouteMatch(this); int from_bitField0_ = bitField0_; if (pathSpecifierCase_ == 1) { result.pathSpecifier_ = pathSpecifier_; } if (pathSpecifierCase_ == 2) { result.pathSpecifier_ = pathSpecifier_; } if (pathSpecifierCase_ == 10) { if (safeRegexBuilder_ == null) { result.pathSpecifier_ = pathSpecifier_; } else { result.pathSpecifier_ = safeRegexBuilder_.build(); } } if (pathSpecifierCase_ == 12) { if (connectMatcherBuilder_ == null) { result.pathSpecifier_ = pathSpecifier_; } else { result.pathSpecifier_ = connectMatcherBuilder_.build(); } } if (pathSpecifierCase_ == 14) { result.pathSpecifier_ = pathSpecifier_; } if (pathSpecifierCase_ == 15) { if (pathMatchPolicyBuilder_ == null) { result.pathSpecifier_ = pathSpecifier_; } else { result.pathSpecifier_ = pathMatchPolicyBuilder_.build(); } } if (caseSensitiveBuilder_ == null) { result.caseSensitive_ = caseSensitive_; } else { result.caseSensitive_ = caseSensitiveBuilder_.build(); } if (runtimeFractionBuilder_ == null) { result.runtimeFraction_ = runtimeFraction_; } else { result.runtimeFraction_ = runtimeFractionBuilder_.build(); } if (headersBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { headers_ = java.util.Collections.unmodifiableList(headers_); bitField0_ = (bitField0_ & ~0x00000001); } result.headers_ = headers_; } else { result.headers_ = headersBuilder_.build(); } if (queryParametersBuilder_ == null) { if (((bitField0_ & 0x00000002) != 0)) { queryParameters_ = java.util.Collections.unmodifiableList(queryParameters_); bitField0_ = (bitField0_ & ~0x00000002); } result.queryParameters_ = queryParameters_; } else { result.queryParameters_ = queryParametersBuilder_.build(); } if (grpcBuilder_ == null) { result.grpc_ = grpc_; } else { result.grpc_ = grpcBuilder_.build(); } if (tlsContextBuilder_ == null) { result.tlsContext_ = tlsContext_; } else { result.tlsContext_ = tlsContextBuilder_.build(); } if (dynamicMetadataBuilder_ == null) { if (((bitField0_ & 0x00000004) != 0)) { dynamicMetadata_ = java.util.Collections.unmodifiableList(dynamicMetadata_); bitField0_ = (bitField0_ & ~0x00000004); } result.dynamicMetadata_ = dynamicMetadata_; } else { result.dynamicMetadata_ = dynamicMetadataBuilder_.build(); } result.pathSpecifierCase_ = pathSpecifierCase_; 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.RouteMatch) { return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteMatch)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteMatch other) { if (other == io.envoyproxy.envoy.config.route.v3.RouteMatch.getDefaultInstance()) return this; if (other.hasCaseSensitive()) { mergeCaseSensitive(other.getCaseSensitive()); } if (other.hasRuntimeFraction()) { mergeRuntimeFraction(other.getRuntimeFraction()); } if (headersBuilder_ == null) { if (!other.headers_.isEmpty()) { if (headers_.isEmpty()) { headers_ = other.headers_; bitField0_ = (bitField0_ & ~0x00000001); } else { ensureHeadersIsMutable(); headers_.addAll(other.headers_); } onChanged(); } } else { if (!other.headers_.isEmpty()) { if (headersBuilder_.isEmpty()) { headersBuilder_.dispose(); headersBuilder_ = null; headers_ = other.headers_; bitField0_ = (bitField0_ & ~0x00000001); headersBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getHeadersFieldBuilder() : null; } else { headersBuilder_.addAllMessages(other.headers_); } } } if (queryParametersBuilder_ == null) { if (!other.queryParameters_.isEmpty()) { if (queryParameters_.isEmpty()) { queryParameters_ = other.queryParameters_; bitField0_ = (bitField0_ & ~0x00000002); } else { ensureQueryParametersIsMutable(); queryParameters_.addAll(other.queryParameters_); } onChanged(); } } else { if (!other.queryParameters_.isEmpty()) { if (queryParametersBuilder_.isEmpty()) { queryParametersBuilder_.dispose(); queryParametersBuilder_ = null; queryParameters_ = other.queryParameters_; bitField0_ = (bitField0_ & ~0x00000002); queryParametersBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getQueryParametersFieldBuilder() : null; } else { queryParametersBuilder_.addAllMessages(other.queryParameters_); } } } if (other.hasGrpc()) { mergeGrpc(other.getGrpc()); } if (other.hasTlsContext()) { mergeTlsContext(other.getTlsContext()); } if (dynamicMetadataBuilder_ == null) { if (!other.dynamicMetadata_.isEmpty()) { if (dynamicMetadata_.isEmpty()) { dynamicMetadata_ = other.dynamicMetadata_; bitField0_ = (bitField0_ & ~0x00000004); } else { ensureDynamicMetadataIsMutable(); dynamicMetadata_.addAll(other.dynamicMetadata_); } onChanged(); } } else { if (!other.dynamicMetadata_.isEmpty()) { if (dynamicMetadataBuilder_.isEmpty()) { dynamicMetadataBuilder_.dispose(); dynamicMetadataBuilder_ = null; dynamicMetadata_ = other.dynamicMetadata_; bitField0_ = (bitField0_ & ~0x00000004); dynamicMetadataBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getDynamicMetadataFieldBuilder() : null; } else { dynamicMetadataBuilder_.addAllMessages(other.dynamicMetadata_); } } } switch (other.getPathSpecifierCase()) { case PREFIX: { pathSpecifierCase_ = 1; pathSpecifier_ = other.pathSpecifier_; onChanged(); break; } case PATH: { pathSpecifierCase_ = 2; pathSpecifier_ = other.pathSpecifier_; onChanged(); break; } case SAFE_REGEX: { mergeSafeRegex(other.getSafeRegex()); break; } case CONNECT_MATCHER: { mergeConnectMatcher(other.getConnectMatcher()); break; } case PATH_SEPARATED_PREFIX: { pathSpecifierCase_ = 14; pathSpecifier_ = other.pathSpecifier_; onChanged(); break; } case PATH_MATCH_POLICY: { mergePathMatchPolicy(other.getPathMatchPolicy()); break; } case PATHSPECIFIER_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.RouteMatch parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteMatch) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int pathSpecifierCase_ = 0; private java.lang.Object pathSpecifier_; public PathSpecifierCase getPathSpecifierCase() { return PathSpecifierCase.forNumber( pathSpecifierCase_); } public Builder clearPathSpecifier() { pathSpecifierCase_ = 0; pathSpecifier_ = null; onChanged(); return this; } private int bitField0_; /** *
     * If specified, the route is a prefix rule meaning that the prefix must
     * match the beginning of the ``:path`` header.
     * 
* * string prefix = 1; * @return Whether the prefix field is set. */ @java.lang.Override public boolean hasPrefix() { return pathSpecifierCase_ == 1; } /** *
     * If specified, the route is a prefix rule meaning that the prefix must
     * match the beginning of the ``:path`` header.
     * 
* * string prefix = 1; * @return The prefix. */ @java.lang.Override public java.lang.String getPrefix() { java.lang.Object ref = ""; if (pathSpecifierCase_ == 1) { ref = pathSpecifier_; } if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (pathSpecifierCase_ == 1) { pathSpecifier_ = s; } return s; } else { return (java.lang.String) ref; } } /** *
     * If specified, the route is a prefix rule meaning that the prefix must
     * match the beginning of the ``:path`` header.
     * 
* * string prefix = 1; * @return The bytes for prefix. */ @java.lang.Override public com.google.protobuf.ByteString getPrefixBytes() { java.lang.Object ref = ""; if (pathSpecifierCase_ == 1) { ref = pathSpecifier_; } if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (pathSpecifierCase_ == 1) { pathSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * If specified, the route is a prefix rule meaning that the prefix must
     * match the beginning of the ``:path`` header.
     * 
* * string prefix = 1; * @param value The prefix to set. * @return This builder for chaining. */ public Builder setPrefix( java.lang.String value) { if (value == null) { throw new NullPointerException(); } pathSpecifierCase_ = 1; pathSpecifier_ = value; onChanged(); return this; } /** *
     * If specified, the route is a prefix rule meaning that the prefix must
     * match the beginning of the ``:path`` header.
     * 
* * string prefix = 1; * @return This builder for chaining. */ public Builder clearPrefix() { if (pathSpecifierCase_ == 1) { pathSpecifierCase_ = 0; pathSpecifier_ = null; onChanged(); } return this; } /** *
     * If specified, the route is a prefix rule meaning that the prefix must
     * match the beginning of the ``:path`` header.
     * 
* * string prefix = 1; * @param value The bytes for prefix to set. * @return This builder for chaining. */ public Builder setPrefixBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); pathSpecifierCase_ = 1; pathSpecifier_ = value; onChanged(); return this; } /** *
     * If specified, the route is an exact path rule meaning that the path must
     * exactly match the ``:path`` header once the query string is removed.
     * 
* * string path = 2; * @return Whether the path field is set. */ @java.lang.Override public boolean hasPath() { return pathSpecifierCase_ == 2; } /** *
     * If specified, the route is an exact path rule meaning that the path must
     * exactly match the ``:path`` header once the query string is removed.
     * 
* * string path = 2; * @return The path. */ @java.lang.Override public java.lang.String getPath() { java.lang.Object ref = ""; if (pathSpecifierCase_ == 2) { ref = pathSpecifier_; } if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (pathSpecifierCase_ == 2) { pathSpecifier_ = s; } return s; } else { return (java.lang.String) ref; } } /** *
     * If specified, the route is an exact path rule meaning that the path must
     * exactly match the ``:path`` header once the query string is removed.
     * 
* * string path = 2; * @return The bytes for path. */ @java.lang.Override public com.google.protobuf.ByteString getPathBytes() { java.lang.Object ref = ""; if (pathSpecifierCase_ == 2) { ref = pathSpecifier_; } if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (pathSpecifierCase_ == 2) { pathSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * If specified, the route is an exact path rule meaning that the path must
     * exactly match the ``:path`` header once the query string is removed.
     * 
* * string path = 2; * @param value The path to set. * @return This builder for chaining. */ public Builder setPath( java.lang.String value) { if (value == null) { throw new NullPointerException(); } pathSpecifierCase_ = 2; pathSpecifier_ = value; onChanged(); return this; } /** *
     * If specified, the route is an exact path rule meaning that the path must
     * exactly match the ``:path`` header once the query string is removed.
     * 
* * string path = 2; * @return This builder for chaining. */ public Builder clearPath() { if (pathSpecifierCase_ == 2) { pathSpecifierCase_ = 0; pathSpecifier_ = null; onChanged(); } return this; } /** *
     * If specified, the route is an exact path rule meaning that the path must
     * exactly match the ``:path`` header once the query string is removed.
     * 
* * string path = 2; * @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); pathSpecifierCase_ = 2; pathSpecifier_ = value; onChanged(); return this; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.RegexMatcher, io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.Builder, io.envoyproxy.envoy.type.matcher.v3.RegexMatcherOrBuilder> safeRegexBuilder_; /** *
     * If specified, the route is a regular expression rule meaning that the
     * regex must match the ``:path`` header once the query string is removed. The entire path
     * (without the query string) must match the regex. The rule will not match if only a
     * subsequence of the ``:path`` header matches the regex.
     * [#next-major-version: In the v3 API we should redo how path specification works such
     * that we utilize StringMatcher, and additionally have consistent options around whether we
     * strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
     * to deprecate the existing options. We should even consider whether we want to do away with
     * path_specifier entirely and just rely on a set of header matchers which can already match
     * on :path, etc. The issue with that is it is unclear how to generically deal with query string
     * stripping. This needs more thought.]
     * 
* * .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... } * @return Whether the safeRegex field is set. */ @java.lang.Override public boolean hasSafeRegex() { return pathSpecifierCase_ == 10; } /** *
     * If specified, the route is a regular expression rule meaning that the
     * regex must match the ``:path`` header once the query string is removed. The entire path
     * (without the query string) must match the regex. The rule will not match if only a
     * subsequence of the ``:path`` header matches the regex.
     * [#next-major-version: In the v3 API we should redo how path specification works such
     * that we utilize StringMatcher, and additionally have consistent options around whether we
     * strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
     * to deprecate the existing options. We should even consider whether we want to do away with
     * path_specifier entirely and just rely on a set of header matchers which can already match
     * on :path, etc. The issue with that is it is unclear how to generically deal with query string
     * stripping. This needs more thought.]
     * 
* * .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... } * @return The safeRegex. */ @java.lang.Override public io.envoyproxy.envoy.type.matcher.v3.RegexMatcher getSafeRegex() { if (safeRegexBuilder_ == null) { if (pathSpecifierCase_ == 10) { return (io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_; } return io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.getDefaultInstance(); } else { if (pathSpecifierCase_ == 10) { return safeRegexBuilder_.getMessage(); } return io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.getDefaultInstance(); } } /** *
     * If specified, the route is a regular expression rule meaning that the
     * regex must match the ``:path`` header once the query string is removed. The entire path
     * (without the query string) must match the regex. The rule will not match if only a
     * subsequence of the ``:path`` header matches the regex.
     * [#next-major-version: In the v3 API we should redo how path specification works such
     * that we utilize StringMatcher, and additionally have consistent options around whether we
     * strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
     * to deprecate the existing options. We should even consider whether we want to do away with
     * path_specifier entirely and just rely on a set of header matchers which can already match
     * on :path, etc. The issue with that is it is unclear how to generically deal with query string
     * stripping. This needs more thought.]
     * 
* * .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... } */ public Builder setSafeRegex(io.envoyproxy.envoy.type.matcher.v3.RegexMatcher value) { if (safeRegexBuilder_ == null) { if (value == null) { throw new NullPointerException(); } pathSpecifier_ = value; onChanged(); } else { safeRegexBuilder_.setMessage(value); } pathSpecifierCase_ = 10; return this; } /** *
     * If specified, the route is a regular expression rule meaning that the
     * regex must match the ``:path`` header once the query string is removed. The entire path
     * (without the query string) must match the regex. The rule will not match if only a
     * subsequence of the ``:path`` header matches the regex.
     * [#next-major-version: In the v3 API we should redo how path specification works such
     * that we utilize StringMatcher, and additionally have consistent options around whether we
     * strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
     * to deprecate the existing options. We should even consider whether we want to do away with
     * path_specifier entirely and just rely on a set of header matchers which can already match
     * on :path, etc. The issue with that is it is unclear how to generically deal with query string
     * stripping. This needs more thought.]
     * 
* * .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... } */ public Builder setSafeRegex( io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.Builder builderForValue) { if (safeRegexBuilder_ == null) { pathSpecifier_ = builderForValue.build(); onChanged(); } else { safeRegexBuilder_.setMessage(builderForValue.build()); } pathSpecifierCase_ = 10; return this; } /** *
     * If specified, the route is a regular expression rule meaning that the
     * regex must match the ``:path`` header once the query string is removed. The entire path
     * (without the query string) must match the regex. The rule will not match if only a
     * subsequence of the ``:path`` header matches the regex.
     * [#next-major-version: In the v3 API we should redo how path specification works such
     * that we utilize StringMatcher, and additionally have consistent options around whether we
     * strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
     * to deprecate the existing options. We should even consider whether we want to do away with
     * path_specifier entirely and just rely on a set of header matchers which can already match
     * on :path, etc. The issue with that is it is unclear how to generically deal with query string
     * stripping. This needs more thought.]
     * 
* * .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... } */ public Builder mergeSafeRegex(io.envoyproxy.envoy.type.matcher.v3.RegexMatcher value) { if (safeRegexBuilder_ == null) { if (pathSpecifierCase_ == 10 && pathSpecifier_ != io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.getDefaultInstance()) { pathSpecifier_ = io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.newBuilder((io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_) .mergeFrom(value).buildPartial(); } else { pathSpecifier_ = value; } onChanged(); } else { if (pathSpecifierCase_ == 10) { safeRegexBuilder_.mergeFrom(value); } else { safeRegexBuilder_.setMessage(value); } } pathSpecifierCase_ = 10; return this; } /** *
     * If specified, the route is a regular expression rule meaning that the
     * regex must match the ``:path`` header once the query string is removed. The entire path
     * (without the query string) must match the regex. The rule will not match if only a
     * subsequence of the ``:path`` header matches the regex.
     * [#next-major-version: In the v3 API we should redo how path specification works such
     * that we utilize StringMatcher, and additionally have consistent options around whether we
     * strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
     * to deprecate the existing options. We should even consider whether we want to do away with
     * path_specifier entirely and just rely on a set of header matchers which can already match
     * on :path, etc. The issue with that is it is unclear how to generically deal with query string
     * stripping. This needs more thought.]
     * 
* * .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... } */ public Builder clearSafeRegex() { if (safeRegexBuilder_ == null) { if (pathSpecifierCase_ == 10) { pathSpecifierCase_ = 0; pathSpecifier_ = null; onChanged(); } } else { if (pathSpecifierCase_ == 10) { pathSpecifierCase_ = 0; pathSpecifier_ = null; } safeRegexBuilder_.clear(); } return this; } /** *
     * If specified, the route is a regular expression rule meaning that the
     * regex must match the ``:path`` header once the query string is removed. The entire path
     * (without the query string) must match the regex. The rule will not match if only a
     * subsequence of the ``:path`` header matches the regex.
     * [#next-major-version: In the v3 API we should redo how path specification works such
     * that we utilize StringMatcher, and additionally have consistent options around whether we
     * strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
     * to deprecate the existing options. We should even consider whether we want to do away with
     * path_specifier entirely and just rely on a set of header matchers which can already match
     * on :path, etc. The issue with that is it is unclear how to generically deal with query string
     * stripping. This needs more thought.]
     * 
* * .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... } */ public io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.Builder getSafeRegexBuilder() { return getSafeRegexFieldBuilder().getBuilder(); } /** *
     * If specified, the route is a regular expression rule meaning that the
     * regex must match the ``:path`` header once the query string is removed. The entire path
     * (without the query string) must match the regex. The rule will not match if only a
     * subsequence of the ``:path`` header matches the regex.
     * [#next-major-version: In the v3 API we should redo how path specification works such
     * that we utilize StringMatcher, and additionally have consistent options around whether we
     * strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
     * to deprecate the existing options. We should even consider whether we want to do away with
     * path_specifier entirely and just rely on a set of header matchers which can already match
     * on :path, etc. The issue with that is it is unclear how to generically deal with query string
     * stripping. This needs more thought.]
     * 
* * .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... } */ @java.lang.Override public io.envoyproxy.envoy.type.matcher.v3.RegexMatcherOrBuilder getSafeRegexOrBuilder() { if ((pathSpecifierCase_ == 10) && (safeRegexBuilder_ != null)) { return safeRegexBuilder_.getMessageOrBuilder(); } else { if (pathSpecifierCase_ == 10) { return (io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_; } return io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.getDefaultInstance(); } } /** *
     * If specified, the route is a regular expression rule meaning that the
     * regex must match the ``:path`` header once the query string is removed. The entire path
     * (without the query string) must match the regex. The rule will not match if only a
     * subsequence of the ``:path`` header matches the regex.
     * [#next-major-version: In the v3 API we should redo how path specification works such
     * that we utilize StringMatcher, and additionally have consistent options around whether we
     * strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
     * to deprecate the existing options. We should even consider whether we want to do away with
     * path_specifier entirely and just rely on a set of header matchers which can already match
     * on :path, etc. The issue with that is it is unclear how to generically deal with query string
     * stripping. This needs more thought.]
     * 
* * .envoy.type.matcher.v3.RegexMatcher safe_regex = 10 [(.validate.rules) = { ... } */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.RegexMatcher, io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.Builder, io.envoyproxy.envoy.type.matcher.v3.RegexMatcherOrBuilder> getSafeRegexFieldBuilder() { if (safeRegexBuilder_ == null) { if (!(pathSpecifierCase_ == 10)) { pathSpecifier_ = io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.getDefaultInstance(); } safeRegexBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.RegexMatcher, io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.Builder, io.envoyproxy.envoy.type.matcher.v3.RegexMatcherOrBuilder>( (io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_, getParentForChildren(), isClean()); pathSpecifier_ = null; } pathSpecifierCase_ = 10; onChanged();; return safeRegexBuilder_; } private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher, io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.Builder, io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcherOrBuilder> connectMatcherBuilder_; /** *
     * If this is used as the matcher, the matcher will only match CONNECT or CONNECT-UDP requests.
     * Note that this will not match other Extended CONNECT requests (WebSocket and the like) as
     * they are normalized in Envoy as HTTP/1.1 style upgrades.
     * This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2 and HTTP/3,
     * where Extended CONNECT requests may have a path, the path matchers will work if
     * there is a path present.
     * 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.RouteMatch.ConnectMatcher connect_matcher = 12; * @return Whether the connectMatcher field is set. */ @java.lang.Override public boolean hasConnectMatcher() { return pathSpecifierCase_ == 12; } /** *
     * If this is used as the matcher, the matcher will only match CONNECT or CONNECT-UDP requests.
     * Note that this will not match other Extended CONNECT requests (WebSocket and the like) as
     * they are normalized in Envoy as HTTP/1.1 style upgrades.
     * This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2 and HTTP/3,
     * where Extended CONNECT requests may have a path, the path matchers will work if
     * there is a path present.
     * 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.RouteMatch.ConnectMatcher connect_matcher = 12; * @return The connectMatcher. */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher getConnectMatcher() { if (connectMatcherBuilder_ == null) { if (pathSpecifierCase_ == 12) { return (io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) pathSpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.getDefaultInstance(); } else { if (pathSpecifierCase_ == 12) { return connectMatcherBuilder_.getMessage(); } return io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.getDefaultInstance(); } } /** *
     * If this is used as the matcher, the matcher will only match CONNECT or CONNECT-UDP requests.
     * Note that this will not match other Extended CONNECT requests (WebSocket and the like) as
     * they are normalized in Envoy as HTTP/1.1 style upgrades.
     * This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2 and HTTP/3,
     * where Extended CONNECT requests may have a path, the path matchers will work if
     * there is a path present.
     * 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.RouteMatch.ConnectMatcher connect_matcher = 12; */ public Builder setConnectMatcher(io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher value) { if (connectMatcherBuilder_ == null) { if (value == null) { throw new NullPointerException(); } pathSpecifier_ = value; onChanged(); } else { connectMatcherBuilder_.setMessage(value); } pathSpecifierCase_ = 12; return this; } /** *
     * If this is used as the matcher, the matcher will only match CONNECT or CONNECT-UDP requests.
     * Note that this will not match other Extended CONNECT requests (WebSocket and the like) as
     * they are normalized in Envoy as HTTP/1.1 style upgrades.
     * This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2 and HTTP/3,
     * where Extended CONNECT requests may have a path, the path matchers will work if
     * there is a path present.
     * 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.RouteMatch.ConnectMatcher connect_matcher = 12; */ public Builder setConnectMatcher( io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.Builder builderForValue) { if (connectMatcherBuilder_ == null) { pathSpecifier_ = builderForValue.build(); onChanged(); } else { connectMatcherBuilder_.setMessage(builderForValue.build()); } pathSpecifierCase_ = 12; return this; } /** *
     * If this is used as the matcher, the matcher will only match CONNECT or CONNECT-UDP requests.
     * Note that this will not match other Extended CONNECT requests (WebSocket and the like) as
     * they are normalized in Envoy as HTTP/1.1 style upgrades.
     * This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2 and HTTP/3,
     * where Extended CONNECT requests may have a path, the path matchers will work if
     * there is a path present.
     * 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.RouteMatch.ConnectMatcher connect_matcher = 12; */ public Builder mergeConnectMatcher(io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher value) { if (connectMatcherBuilder_ == null) { if (pathSpecifierCase_ == 12 && pathSpecifier_ != io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.getDefaultInstance()) { pathSpecifier_ = io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.newBuilder((io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) pathSpecifier_) .mergeFrom(value).buildPartial(); } else { pathSpecifier_ = value; } onChanged(); } else { if (pathSpecifierCase_ == 12) { connectMatcherBuilder_.mergeFrom(value); } else { connectMatcherBuilder_.setMessage(value); } } pathSpecifierCase_ = 12; return this; } /** *
     * If this is used as the matcher, the matcher will only match CONNECT or CONNECT-UDP requests.
     * Note that this will not match other Extended CONNECT requests (WebSocket and the like) as
     * they are normalized in Envoy as HTTP/1.1 style upgrades.
     * This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2 and HTTP/3,
     * where Extended CONNECT requests may have a path, the path matchers will work if
     * there is a path present.
     * 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.RouteMatch.ConnectMatcher connect_matcher = 12; */ public Builder clearConnectMatcher() { if (connectMatcherBuilder_ == null) { if (pathSpecifierCase_ == 12) { pathSpecifierCase_ = 0; pathSpecifier_ = null; onChanged(); } } else { if (pathSpecifierCase_ == 12) { pathSpecifierCase_ = 0; pathSpecifier_ = null; } connectMatcherBuilder_.clear(); } return this; } /** *
     * If this is used as the matcher, the matcher will only match CONNECT or CONNECT-UDP requests.
     * Note that this will not match other Extended CONNECT requests (WebSocket and the like) as
     * they are normalized in Envoy as HTTP/1.1 style upgrades.
     * This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2 and HTTP/3,
     * where Extended CONNECT requests may have a path, the path matchers will work if
     * there is a path present.
     * 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.RouteMatch.ConnectMatcher connect_matcher = 12; */ public io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.Builder getConnectMatcherBuilder() { return getConnectMatcherFieldBuilder().getBuilder(); } /** *
     * If this is used as the matcher, the matcher will only match CONNECT or CONNECT-UDP requests.
     * Note that this will not match other Extended CONNECT requests (WebSocket and the like) as
     * they are normalized in Envoy as HTTP/1.1 style upgrades.
     * This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2 and HTTP/3,
     * where Extended CONNECT requests may have a path, the path matchers will work if
     * there is a path present.
     * 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.RouteMatch.ConnectMatcher connect_matcher = 12; */ @java.lang.Override public io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcherOrBuilder getConnectMatcherOrBuilder() { if ((pathSpecifierCase_ == 12) && (connectMatcherBuilder_ != null)) { return connectMatcherBuilder_.getMessageOrBuilder(); } else { if (pathSpecifierCase_ == 12) { return (io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) pathSpecifier_; } return io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.getDefaultInstance(); } } /** *
     * If this is used as the matcher, the matcher will only match CONNECT or CONNECT-UDP requests.
     * Note that this will not match other Extended CONNECT requests (WebSocket and the like) as
     * they are normalized in Envoy as HTTP/1.1 style upgrades.
     * This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2 and HTTP/3,
     * where Extended CONNECT requests may have a path, the path matchers will work if
     * there is a path present.
     * 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.RouteMatch.ConnectMatcher connect_matcher = 12; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher, io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.Builder, io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcherOrBuilder> getConnectMatcherFieldBuilder() { if (connectMatcherBuilder_ == null) { if (!(pathSpecifierCase_ == 12)) { pathSpecifier_ = io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.getDefaultInstance(); } connectMatcherBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher, io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.Builder, io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcherOrBuilder>( (io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) pathSpecifier_, getParentForChildren(), isClean()); pathSpecifier_ = null; } pathSpecifierCase_ = 12; onChanged();; return connectMatcherBuilder_; } /** *
     * If specified, the route is a path-separated prefix rule meaning that the
     * ``:path`` header (without the query string) must either exactly match the
     * ``path_separated_prefix`` or have it as a prefix, followed by ``/``
     * For example, ``/api/dev`` would match
     * ``/api/dev``, ``/api/dev/``, ``/api/dev/v1``, and ``/api/dev?param=true``
     * but would not match ``/api/developer``
     * Expect the value to not contain ``?`` or ``#`` and not to end in ``/``
     * 
* * string path_separated_prefix = 14 [(.validate.rules) = { ... } * @return Whether the pathSeparatedPrefix field is set. */ @java.lang.Override public boolean hasPathSeparatedPrefix() { return pathSpecifierCase_ == 14; } /** *
     * If specified, the route is a path-separated prefix rule meaning that the
     * ``:path`` header (without the query string) must either exactly match the
     * ``path_separated_prefix`` or have it as a prefix, followed by ``/``
     * For example, ``/api/dev`` would match
     * ``/api/dev``, ``/api/dev/``, ``/api/dev/v1``, and ``/api/dev?param=true``
     * but would not match ``/api/developer``
     * Expect the value to not contain ``?`` or ``#`` and not to end in ``/``
     * 
* * string path_separated_prefix = 14 [(.validate.rules) = { ... } * @return The pathSeparatedPrefix. */ @java.lang.Override public java.lang.String getPathSeparatedPrefix() { java.lang.Object ref = ""; if (pathSpecifierCase_ == 14) { ref = pathSpecifier_; } if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); if (pathSpecifierCase_ == 14) { pathSpecifier_ = s; } return s; } else { return (java.lang.String) ref; } } /** *
     * If specified, the route is a path-separated prefix rule meaning that the
     * ``:path`` header (without the query string) must either exactly match the
     * ``path_separated_prefix`` or have it as a prefix, followed by ``/``
     * For example, ``/api/dev`` would match
     * ``/api/dev``, ``/api/dev/``, ``/api/dev/v1``, and ``/api/dev?param=true``
     * but would not match ``/api/developer``
     * Expect the value to not contain ``?`` or ``#`` and not to end in ``/``
     * 
* * string path_separated_prefix = 14 [(.validate.rules) = { ... } * @return The bytes for pathSeparatedPrefix. */ @java.lang.Override public com.google.protobuf.ByteString getPathSeparatedPrefixBytes() { java.lang.Object ref = ""; if (pathSpecifierCase_ == 14) { ref = pathSpecifier_; } if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); if (pathSpecifierCase_ == 14) { pathSpecifier_ = b; } return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * If specified, the route is a path-separated prefix rule meaning that the
     * ``:path`` header (without the query string) must either exactly match the
     * ``path_separated_prefix`` or have it as a prefix, followed by ``/``
     * For example, ``/api/dev`` would match
     * ``/api/dev``, ``/api/dev/``, ``/api/dev/v1``, and ``/api/dev?param=true``
     * but would not match ``/api/developer``
     * Expect the value to not contain ``?`` or ``#`` and not to end in ``/``
     * 
* * string path_separated_prefix = 14 [(.validate.rules) = { ... } * @param value The pathSeparatedPrefix to set. * @return This builder for chaining. */ public Builder setPathSeparatedPrefix( java.lang.String value) { if (value == null) { throw new NullPointerException(); } pathSpecifierCase_ = 14; pathSpecifier_ = value; onChanged(); return this; } /** *
     * If specified, the route is a path-separated prefix rule meaning that the
     * ``:path`` header (without the query string) must either exactly match the
     * ``path_separated_prefix`` or have it as a prefix, followed by ``/``
     * For example, ``/api/dev`` would match
     * ``/api/dev``, ``/api/dev/``, ``/api/dev/v1``, and ``/api/dev?param=true``
     * but would not match ``/api/developer``
     * Expect the value to not contain ``?`` or ``#`` and not to end in ``/``
     * 
* * string path_separated_prefix = 14 [(.validate.rules) = { ... } * @return This builder for chaining. */ public Builder clearPathSeparatedPrefix() { if (pathSpecifierCase_ == 14) { pathSpecifierCase_ = 0; pathSpecifier_ = null; onChanged(); } return this; } /** *
     * If specified, the route is a path-separated prefix rule meaning that the
     * ``:path`` header (without the query string) must either exactly match the
     * ``path_separated_prefix`` or have it as a prefix, followed by ``/``
     * For example, ``/api/dev`` would match
     * ``/api/dev``, ``/api/dev/``, ``/api/dev/v1``, and ``/api/dev?param=true``
     * but would not match ``/api/developer``
     * Expect the value to not contain ``?`` or ``#`` and not to end in ``/``
     * 
* * string path_separated_prefix = 14 [(.validate.rules) = { ... } * @param value The bytes for pathSeparatedPrefix to set. * @return This builder for chaining. */ public Builder setPathSeparatedPrefixBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); pathSpecifierCase_ = 14; pathSpecifier_ = value; onChanged(); return this; } 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> pathMatchPolicyBuilder_; /** *
     * [#extension-category: envoy.path.match]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15; * @return Whether the pathMatchPolicy field is set. */ @java.lang.Override public boolean hasPathMatchPolicy() { return pathSpecifierCase_ == 15; } /** *
     * [#extension-category: envoy.path.match]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15; * @return The pathMatchPolicy. */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig getPathMatchPolicy() { if (pathMatchPolicyBuilder_ == null) { if (pathSpecifierCase_ == 15) { return (io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_; } return io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance(); } else { if (pathSpecifierCase_ == 15) { return pathMatchPolicyBuilder_.getMessage(); } return io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance(); } } /** *
     * [#extension-category: envoy.path.match]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15; */ public Builder setPathMatchPolicy(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig value) { if (pathMatchPolicyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } pathSpecifier_ = value; onChanged(); } else { pathMatchPolicyBuilder_.setMessage(value); } pathSpecifierCase_ = 15; return this; } /** *
     * [#extension-category: envoy.path.match]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15; */ public Builder setPathMatchPolicy( io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder builderForValue) { if (pathMatchPolicyBuilder_ == null) { pathSpecifier_ = builderForValue.build(); onChanged(); } else { pathMatchPolicyBuilder_.setMessage(builderForValue.build()); } pathSpecifierCase_ = 15; return this; } /** *
     * [#extension-category: envoy.path.match]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15; */ public Builder mergePathMatchPolicy(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig value) { if (pathMatchPolicyBuilder_ == null) { if (pathSpecifierCase_ == 15 && pathSpecifier_ != io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance()) { pathSpecifier_ = io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.newBuilder((io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_) .mergeFrom(value).buildPartial(); } else { pathSpecifier_ = value; } onChanged(); } else { if (pathSpecifierCase_ == 15) { pathMatchPolicyBuilder_.mergeFrom(value); } else { pathMatchPolicyBuilder_.setMessage(value); } } pathSpecifierCase_ = 15; return this; } /** *
     * [#extension-category: envoy.path.match]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15; */ public Builder clearPathMatchPolicy() { if (pathMatchPolicyBuilder_ == null) { if (pathSpecifierCase_ == 15) { pathSpecifierCase_ = 0; pathSpecifier_ = null; onChanged(); } } else { if (pathSpecifierCase_ == 15) { pathSpecifierCase_ = 0; pathSpecifier_ = null; } pathMatchPolicyBuilder_.clear(); } return this; } /** *
     * [#extension-category: envoy.path.match]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15; */ public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder getPathMatchPolicyBuilder() { return getPathMatchPolicyFieldBuilder().getBuilder(); } /** *
     * [#extension-category: envoy.path.match]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15; */ @java.lang.Override public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder getPathMatchPolicyOrBuilder() { if ((pathSpecifierCase_ == 15) && (pathMatchPolicyBuilder_ != null)) { return pathMatchPolicyBuilder_.getMessageOrBuilder(); } else { if (pathSpecifierCase_ == 15) { return (io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_; } return io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance(); } } /** *
     * [#extension-category: envoy.path.match]
     * 
* * .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15; */ 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> getPathMatchPolicyFieldBuilder() { if (pathMatchPolicyBuilder_ == null) { if (!(pathSpecifierCase_ == 15)) { pathSpecifier_ = io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance(); } pathMatchPolicyBuilder_ = 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>( (io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_, getParentForChildren(), isClean()); pathSpecifier_ = null; } pathSpecifierCase_ = 15; onChanged();; return pathMatchPolicyBuilder_; } private com.google.protobuf.BoolValue caseSensitive_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> caseSensitiveBuilder_; /** *
     * Indicates that prefix/path matching should be case sensitive. The default
     * is true. Ignored for safe_regex matching.
     * 
* * .google.protobuf.BoolValue case_sensitive = 4; * @return Whether the caseSensitive field is set. */ public boolean hasCaseSensitive() { return caseSensitiveBuilder_ != null || caseSensitive_ != null; } /** *
     * Indicates that prefix/path matching should be case sensitive. The default
     * is true. Ignored for safe_regex matching.
     * 
* * .google.protobuf.BoolValue case_sensitive = 4; * @return The caseSensitive. */ public com.google.protobuf.BoolValue getCaseSensitive() { if (caseSensitiveBuilder_ == null) { return caseSensitive_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : caseSensitive_; } else { return caseSensitiveBuilder_.getMessage(); } } /** *
     * Indicates that prefix/path matching should be case sensitive. The default
     * is true. Ignored for safe_regex matching.
     * 
* * .google.protobuf.BoolValue case_sensitive = 4; */ public Builder setCaseSensitive(com.google.protobuf.BoolValue value) { if (caseSensitiveBuilder_ == null) { if (value == null) { throw new NullPointerException(); } caseSensitive_ = value; onChanged(); } else { caseSensitiveBuilder_.setMessage(value); } return this; } /** *
     * Indicates that prefix/path matching should be case sensitive. The default
     * is true. Ignored for safe_regex matching.
     * 
* * .google.protobuf.BoolValue case_sensitive = 4; */ public Builder setCaseSensitive( com.google.protobuf.BoolValue.Builder builderForValue) { if (caseSensitiveBuilder_ == null) { caseSensitive_ = builderForValue.build(); onChanged(); } else { caseSensitiveBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * Indicates that prefix/path matching should be case sensitive. The default
     * is true. Ignored for safe_regex matching.
     * 
* * .google.protobuf.BoolValue case_sensitive = 4; */ public Builder mergeCaseSensitive(com.google.protobuf.BoolValue value) { if (caseSensitiveBuilder_ == null) { if (caseSensitive_ != null) { caseSensitive_ = com.google.protobuf.BoolValue.newBuilder(caseSensitive_).mergeFrom(value).buildPartial(); } else { caseSensitive_ = value; } onChanged(); } else { caseSensitiveBuilder_.mergeFrom(value); } return this; } /** *
     * Indicates that prefix/path matching should be case sensitive. The default
     * is true. Ignored for safe_regex matching.
     * 
* * .google.protobuf.BoolValue case_sensitive = 4; */ public Builder clearCaseSensitive() { if (caseSensitiveBuilder_ == null) { caseSensitive_ = null; onChanged(); } else { caseSensitive_ = null; caseSensitiveBuilder_ = null; } return this; } /** *
     * Indicates that prefix/path matching should be case sensitive. The default
     * is true. Ignored for safe_regex matching.
     * 
* * .google.protobuf.BoolValue case_sensitive = 4; */ public com.google.protobuf.BoolValue.Builder getCaseSensitiveBuilder() { onChanged(); return getCaseSensitiveFieldBuilder().getBuilder(); } /** *
     * Indicates that prefix/path matching should be case sensitive. The default
     * is true. Ignored for safe_regex matching.
     * 
* * .google.protobuf.BoolValue case_sensitive = 4; */ public com.google.protobuf.BoolValueOrBuilder getCaseSensitiveOrBuilder() { if (caseSensitiveBuilder_ != null) { return caseSensitiveBuilder_.getMessageOrBuilder(); } else { return caseSensitive_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : caseSensitive_; } } /** *
     * Indicates that prefix/path matching should be case sensitive. The default
     * is true. Ignored for safe_regex matching.
     * 
* * .google.protobuf.BoolValue case_sensitive = 4; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> getCaseSensitiveFieldBuilder() { if (caseSensitiveBuilder_ == null) { caseSensitiveBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>( getCaseSensitive(), getParentForChildren(), isClean()); caseSensitive_ = null; } return caseSensitiveBuilder_; } 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_; /** *
     * Indicates that the route should additionally match on a runtime key. Every time the route
     * is considered for a match, it 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 router continues to evaluate the remaining match criteria. A runtime_fraction
     * route configuration can be used to roll out route changes in a gradual manner without full
     * code/config deploys. Refer to the :ref:`traffic shifting
     * <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
     * .. note::
     *    Parsing this field is implemented such that the runtime key's data may be represented
     *    as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
     *    integer with the assumption that the value is an integral percentage out of 100. For
     *    instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
     *    whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9; * @return Whether the runtimeFraction field is set. */ public boolean hasRuntimeFraction() { return runtimeFractionBuilder_ != null || runtimeFraction_ != null; } /** *
     * Indicates that the route should additionally match on a runtime key. Every time the route
     * is considered for a match, it 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 router continues to evaluate the remaining match criteria. A runtime_fraction
     * route configuration can be used to roll out route changes in a gradual manner without full
     * code/config deploys. Refer to the :ref:`traffic shifting
     * <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
     * .. note::
     *    Parsing this field is implemented such that the runtime key's data may be represented
     *    as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
     *    integer with the assumption that the value is an integral percentage out of 100. For
     *    instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
     *    whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9; * @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(); } } /** *
     * Indicates that the route should additionally match on a runtime key. Every time the route
     * is considered for a match, it 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 router continues to evaluate the remaining match criteria. A runtime_fraction
     * route configuration can be used to roll out route changes in a gradual manner without full
     * code/config deploys. Refer to the :ref:`traffic shifting
     * <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
     * .. note::
     *    Parsing this field is implemented such that the runtime key's data may be represented
     *    as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
     *    integer with the assumption that the value is an integral percentage out of 100. For
     *    instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
     *    whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9; */ 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; } /** *
     * Indicates that the route should additionally match on a runtime key. Every time the route
     * is considered for a match, it 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 router continues to evaluate the remaining match criteria. A runtime_fraction
     * route configuration can be used to roll out route changes in a gradual manner without full
     * code/config deploys. Refer to the :ref:`traffic shifting
     * <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
     * .. note::
     *    Parsing this field is implemented such that the runtime key's data may be represented
     *    as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
     *    integer with the assumption that the value is an integral percentage out of 100. For
     *    instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
     *    whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9; */ 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; } /** *
     * Indicates that the route should additionally match on a runtime key. Every time the route
     * is considered for a match, it 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 router continues to evaluate the remaining match criteria. A runtime_fraction
     * route configuration can be used to roll out route changes in a gradual manner without full
     * code/config deploys. Refer to the :ref:`traffic shifting
     * <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
     * .. note::
     *    Parsing this field is implemented such that the runtime key's data may be represented
     *    as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
     *    integer with the assumption that the value is an integral percentage out of 100. For
     *    instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
     *    whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9; */ 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; } /** *
     * Indicates that the route should additionally match on a runtime key. Every time the route
     * is considered for a match, it 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 router continues to evaluate the remaining match criteria. A runtime_fraction
     * route configuration can be used to roll out route changes in a gradual manner without full
     * code/config deploys. Refer to the :ref:`traffic shifting
     * <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
     * .. note::
     *    Parsing this field is implemented such that the runtime key's data may be represented
     *    as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
     *    integer with the assumption that the value is an integral percentage out of 100. For
     *    instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
     *    whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9; */ public Builder clearRuntimeFraction() { if (runtimeFractionBuilder_ == null) { runtimeFraction_ = null; onChanged(); } else { runtimeFraction_ = null; runtimeFractionBuilder_ = null; } return this; } /** *
     * Indicates that the route should additionally match on a runtime key. Every time the route
     * is considered for a match, it 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 router continues to evaluate the remaining match criteria. A runtime_fraction
     * route configuration can be used to roll out route changes in a gradual manner without full
     * code/config deploys. Refer to the :ref:`traffic shifting
     * <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
     * .. note::
     *    Parsing this field is implemented such that the runtime key's data may be represented
     *    as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
     *    integer with the assumption that the value is an integral percentage out of 100. For
     *    instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
     *    whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9; */ public io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.Builder getRuntimeFractionBuilder() { onChanged(); return getRuntimeFractionFieldBuilder().getBuilder(); } /** *
     * Indicates that the route should additionally match on a runtime key. Every time the route
     * is considered for a match, it 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 router continues to evaluate the remaining match criteria. A runtime_fraction
     * route configuration can be used to roll out route changes in a gradual manner without full
     * code/config deploys. Refer to the :ref:`traffic shifting
     * <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
     * .. note::
     *    Parsing this field is implemented such that the runtime key's data may be represented
     *    as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
     *    integer with the assumption that the value is an integral percentage out of 100. For
     *    instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
     *    whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9; */ 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_; } } /** *
     * Indicates that the route should additionally match on a runtime key. Every time the route
     * is considered for a match, it 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 router continues to evaluate the remaining match criteria. A runtime_fraction
     * route configuration can be used to roll out route changes in a gradual manner without full
     * code/config deploys. Refer to the :ref:`traffic shifting
     * <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
     * .. note::
     *    Parsing this field is implemented such that the runtime key's data may be represented
     *    as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
     *    integer with the assumption that the value is an integral percentage out of 100. For
     *    instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
     *    whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
     * 
* * .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9; */ 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 java.util.List headers_ = java.util.Collections.emptyList(); private void ensureHeadersIsMutable() { if (!((bitField0_ & 0x00000001) != 0)) { headers_ = new java.util.ArrayList(headers_); bitField0_ |= 0x00000001; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.HeaderMatcher, io.envoyproxy.envoy.config.route.v3.HeaderMatcher.Builder, io.envoyproxy.envoy.config.route.v3.HeaderMatcherOrBuilder> headersBuilder_; /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public java.util.List getHeadersList() { if (headersBuilder_ == null) { return java.util.Collections.unmodifiableList(headers_); } else { return headersBuilder_.getMessageList(); } } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public int getHeadersCount() { if (headersBuilder_ == null) { return headers_.size(); } else { return headersBuilder_.getCount(); } } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public io.envoyproxy.envoy.config.route.v3.HeaderMatcher getHeaders(int index) { if (headersBuilder_ == null) { return headers_.get(index); } else { return headersBuilder_.getMessage(index); } } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public Builder setHeaders( int index, io.envoyproxy.envoy.config.route.v3.HeaderMatcher value) { if (headersBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureHeadersIsMutable(); headers_.set(index, value); onChanged(); } else { headersBuilder_.setMessage(index, value); } return this; } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public Builder setHeaders( int index, io.envoyproxy.envoy.config.route.v3.HeaderMatcher.Builder builderForValue) { if (headersBuilder_ == null) { ensureHeadersIsMutable(); headers_.set(index, builderForValue.build()); onChanged(); } else { headersBuilder_.setMessage(index, builderForValue.build()); } return this; } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public Builder addHeaders(io.envoyproxy.envoy.config.route.v3.HeaderMatcher value) { if (headersBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureHeadersIsMutable(); headers_.add(value); onChanged(); } else { headersBuilder_.addMessage(value); } return this; } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public Builder addHeaders( int index, io.envoyproxy.envoy.config.route.v3.HeaderMatcher value) { if (headersBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureHeadersIsMutable(); headers_.add(index, value); onChanged(); } else { headersBuilder_.addMessage(index, value); } return this; } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public Builder addHeaders( io.envoyproxy.envoy.config.route.v3.HeaderMatcher.Builder builderForValue) { if (headersBuilder_ == null) { ensureHeadersIsMutable(); headers_.add(builderForValue.build()); onChanged(); } else { headersBuilder_.addMessage(builderForValue.build()); } return this; } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public Builder addHeaders( int index, io.envoyproxy.envoy.config.route.v3.HeaderMatcher.Builder builderForValue) { if (headersBuilder_ == null) { ensureHeadersIsMutable(); headers_.add(index, builderForValue.build()); onChanged(); } else { headersBuilder_.addMessage(index, builderForValue.build()); } return this; } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public Builder addAllHeaders( java.lang.Iterable values) { if (headersBuilder_ == null) { ensureHeadersIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, headers_); onChanged(); } else { headersBuilder_.addAllMessages(values); } return this; } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public Builder clearHeaders() { if (headersBuilder_ == null) { headers_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); } else { headersBuilder_.clear(); } return this; } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public Builder removeHeaders(int index) { if (headersBuilder_ == null) { ensureHeadersIsMutable(); headers_.remove(index); onChanged(); } else { headersBuilder_.remove(index); } return this; } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public io.envoyproxy.envoy.config.route.v3.HeaderMatcher.Builder getHeadersBuilder( int index) { return getHeadersFieldBuilder().getBuilder(index); } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public io.envoyproxy.envoy.config.route.v3.HeaderMatcherOrBuilder getHeadersOrBuilder( int index) { if (headersBuilder_ == null) { return headers_.get(index); } else { return headersBuilder_.getMessageOrBuilder(index); } } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public java.util.List getHeadersOrBuilderList() { if (headersBuilder_ != null) { return headersBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(headers_); } } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public io.envoyproxy.envoy.config.route.v3.HeaderMatcher.Builder addHeadersBuilder() { return getHeadersFieldBuilder().addBuilder( io.envoyproxy.envoy.config.route.v3.HeaderMatcher.getDefaultInstance()); } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public io.envoyproxy.envoy.config.route.v3.HeaderMatcher.Builder addHeadersBuilder( int index) { return getHeadersFieldBuilder().addBuilder( index, io.envoyproxy.envoy.config.route.v3.HeaderMatcher.getDefaultInstance()); } /** *
     * Specifies a set of headers that the route should match on. The router will
     * check the request’s headers against all the specified headers in the route
     * config. A match will happen if all the headers in the route are present in
     * the request with the same values (or based on presence if the value field
     * is not in the config).
     * 
* * repeated .envoy.config.route.v3.HeaderMatcher headers = 6; */ public java.util.List getHeadersBuilderList() { return getHeadersFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.HeaderMatcher, io.envoyproxy.envoy.config.route.v3.HeaderMatcher.Builder, io.envoyproxy.envoy.config.route.v3.HeaderMatcherOrBuilder> getHeadersFieldBuilder() { if (headersBuilder_ == null) { headersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.HeaderMatcher, io.envoyproxy.envoy.config.route.v3.HeaderMatcher.Builder, io.envoyproxy.envoy.config.route.v3.HeaderMatcherOrBuilder>( headers_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); headers_ = null; } return headersBuilder_; } private java.util.List queryParameters_ = java.util.Collections.emptyList(); private void ensureQueryParametersIsMutable() { if (!((bitField0_ & 0x00000002) != 0)) { queryParameters_ = new java.util.ArrayList(queryParameters_); bitField0_ |= 0x00000002; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher, io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher.Builder, io.envoyproxy.envoy.config.route.v3.QueryParameterMatcherOrBuilder> queryParametersBuilder_; /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public java.util.List getQueryParametersList() { if (queryParametersBuilder_ == null) { return java.util.Collections.unmodifiableList(queryParameters_); } else { return queryParametersBuilder_.getMessageList(); } } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public int getQueryParametersCount() { if (queryParametersBuilder_ == null) { return queryParameters_.size(); } else { return queryParametersBuilder_.getCount(); } } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher getQueryParameters(int index) { if (queryParametersBuilder_ == null) { return queryParameters_.get(index); } else { return queryParametersBuilder_.getMessage(index); } } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public Builder setQueryParameters( int index, io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher value) { if (queryParametersBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureQueryParametersIsMutable(); queryParameters_.set(index, value); onChanged(); } else { queryParametersBuilder_.setMessage(index, value); } return this; } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public Builder setQueryParameters( int index, io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher.Builder builderForValue) { if (queryParametersBuilder_ == null) { ensureQueryParametersIsMutable(); queryParameters_.set(index, builderForValue.build()); onChanged(); } else { queryParametersBuilder_.setMessage(index, builderForValue.build()); } return this; } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public Builder addQueryParameters(io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher value) { if (queryParametersBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureQueryParametersIsMutable(); queryParameters_.add(value); onChanged(); } else { queryParametersBuilder_.addMessage(value); } return this; } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public Builder addQueryParameters( int index, io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher value) { if (queryParametersBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureQueryParametersIsMutable(); queryParameters_.add(index, value); onChanged(); } else { queryParametersBuilder_.addMessage(index, value); } return this; } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public Builder addQueryParameters( io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher.Builder builderForValue) { if (queryParametersBuilder_ == null) { ensureQueryParametersIsMutable(); queryParameters_.add(builderForValue.build()); onChanged(); } else { queryParametersBuilder_.addMessage(builderForValue.build()); } return this; } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public Builder addQueryParameters( int index, io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher.Builder builderForValue) { if (queryParametersBuilder_ == null) { ensureQueryParametersIsMutable(); queryParameters_.add(index, builderForValue.build()); onChanged(); } else { queryParametersBuilder_.addMessage(index, builderForValue.build()); } return this; } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public Builder addAllQueryParameters( java.lang.Iterable values) { if (queryParametersBuilder_ == null) { ensureQueryParametersIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, queryParameters_); onChanged(); } else { queryParametersBuilder_.addAllMessages(values); } return this; } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public Builder clearQueryParameters() { if (queryParametersBuilder_ == null) { queryParameters_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000002); onChanged(); } else { queryParametersBuilder_.clear(); } return this; } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public Builder removeQueryParameters(int index) { if (queryParametersBuilder_ == null) { ensureQueryParametersIsMutable(); queryParameters_.remove(index); onChanged(); } else { queryParametersBuilder_.remove(index); } return this; } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher.Builder getQueryParametersBuilder( int index) { return getQueryParametersFieldBuilder().getBuilder(index); } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public io.envoyproxy.envoy.config.route.v3.QueryParameterMatcherOrBuilder getQueryParametersOrBuilder( int index) { if (queryParametersBuilder_ == null) { return queryParameters_.get(index); } else { return queryParametersBuilder_.getMessageOrBuilder(index); } } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public java.util.List getQueryParametersOrBuilderList() { if (queryParametersBuilder_ != null) { return queryParametersBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(queryParameters_); } } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher.Builder addQueryParametersBuilder() { return getQueryParametersFieldBuilder().addBuilder( io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher.getDefaultInstance()); } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher.Builder addQueryParametersBuilder( int index) { return getQueryParametersFieldBuilder().addBuilder( index, io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher.getDefaultInstance()); } /** *
     * Specifies a set of URL query parameters on which the route should
     * match. The router will check the query string from the ``path`` header
     * against all the specified query parameters. If the number of specified
     * query parameters is nonzero, they all must match the ``path`` header's
     * query string for a match to occur. In the event query parameters are
     * repeated, only the first value for each key will be considered.
     * .. note::
     *    If query parameters are used to pass request message fields when
     *    `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
     *    is used, the transcoded message fields maybe different. The query parameters are
     *    url encoded, but the message fields are not. For example, if a query
     *    parameter is "foo%20bar", the message field will be "foo bar".
     * 
* * repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7; */ public java.util.List getQueryParametersBuilderList() { return getQueryParametersFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher, io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher.Builder, io.envoyproxy.envoy.config.route.v3.QueryParameterMatcherOrBuilder> getQueryParametersFieldBuilder() { if (queryParametersBuilder_ == null) { queryParametersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher, io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher.Builder, io.envoyproxy.envoy.config.route.v3.QueryParameterMatcherOrBuilder>( queryParameters_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); queryParameters_ = null; } return queryParametersBuilder_; } private io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions, io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.Builder, io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptionsOrBuilder> grpcBuilder_; /** *
     * If specified, only gRPC requests will be matched. The router will check
     * that the content-type header has a application/grpc or one of the various
     * application/grpc+ values.
     * 
* * .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8; * @return Whether the grpc field is set. */ public boolean hasGrpc() { return grpcBuilder_ != null || grpc_ != null; } /** *
     * If specified, only gRPC requests will be matched. The router will check
     * that the content-type header has a application/grpc or one of the various
     * application/grpc+ values.
     * 
* * .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8; * @return The grpc. */ public io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions getGrpc() { if (grpcBuilder_ == null) { return grpc_ == null ? io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.getDefaultInstance() : grpc_; } else { return grpcBuilder_.getMessage(); } } /** *
     * If specified, only gRPC requests will be matched. The router will check
     * that the content-type header has a application/grpc or one of the various
     * application/grpc+ values.
     * 
* * .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8; */ public Builder setGrpc(io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions value) { if (grpcBuilder_ == null) { if (value == null) { throw new NullPointerException(); } grpc_ = value; onChanged(); } else { grpcBuilder_.setMessage(value); } return this; } /** *
     * If specified, only gRPC requests will be matched. The router will check
     * that the content-type header has a application/grpc or one of the various
     * application/grpc+ values.
     * 
* * .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8; */ public Builder setGrpc( io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.Builder builderForValue) { if (grpcBuilder_ == null) { grpc_ = builderForValue.build(); onChanged(); } else { grpcBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * If specified, only gRPC requests will be matched. The router will check
     * that the content-type header has a application/grpc or one of the various
     * application/grpc+ values.
     * 
* * .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8; */ public Builder mergeGrpc(io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions value) { if (grpcBuilder_ == null) { if (grpc_ != null) { grpc_ = io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.newBuilder(grpc_).mergeFrom(value).buildPartial(); } else { grpc_ = value; } onChanged(); } else { grpcBuilder_.mergeFrom(value); } return this; } /** *
     * If specified, only gRPC requests will be matched. The router will check
     * that the content-type header has a application/grpc or one of the various
     * application/grpc+ values.
     * 
* * .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8; */ public Builder clearGrpc() { if (grpcBuilder_ == null) { grpc_ = null; onChanged(); } else { grpc_ = null; grpcBuilder_ = null; } return this; } /** *
     * If specified, only gRPC requests will be matched. The router will check
     * that the content-type header has a application/grpc or one of the various
     * application/grpc+ values.
     * 
* * .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8; */ public io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.Builder getGrpcBuilder() { onChanged(); return getGrpcFieldBuilder().getBuilder(); } /** *
     * If specified, only gRPC requests will be matched. The router will check
     * that the content-type header has a application/grpc or one of the various
     * application/grpc+ values.
     * 
* * .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8; */ public io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptionsOrBuilder getGrpcOrBuilder() { if (grpcBuilder_ != null) { return grpcBuilder_.getMessageOrBuilder(); } else { return grpc_ == null ? io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.getDefaultInstance() : grpc_; } } /** *
     * If specified, only gRPC requests will be matched. The router will check
     * that the content-type header has a application/grpc or one of the various
     * application/grpc+ values.
     * 
* * .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions, io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.Builder, io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptionsOrBuilder> getGrpcFieldBuilder() { if (grpcBuilder_ == null) { grpcBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions, io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.Builder, io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptionsOrBuilder>( getGrpc(), getParentForChildren(), isClean()); grpc_ = null; } return grpcBuilder_; } private io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tlsContext_; private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions, io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.Builder, io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptionsOrBuilder> tlsContextBuilder_; /** *
     * If specified, the client tls context will be matched against the defined
     * match options.
     * [#next-major-version: unify with RBAC]
     * 
* * .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11; * @return Whether the tlsContext field is set. */ public boolean hasTlsContext() { return tlsContextBuilder_ != null || tlsContext_ != null; } /** *
     * If specified, the client tls context will be matched against the defined
     * match options.
     * [#next-major-version: unify with RBAC]
     * 
* * .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11; * @return The tlsContext. */ public io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions getTlsContext() { if (tlsContextBuilder_ == null) { return tlsContext_ == null ? io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.getDefaultInstance() : tlsContext_; } else { return tlsContextBuilder_.getMessage(); } } /** *
     * If specified, the client tls context will be matched against the defined
     * match options.
     * [#next-major-version: unify with RBAC]
     * 
* * .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11; */ public Builder setTlsContext(io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions value) { if (tlsContextBuilder_ == null) { if (value == null) { throw new NullPointerException(); } tlsContext_ = value; onChanged(); } else { tlsContextBuilder_.setMessage(value); } return this; } /** *
     * If specified, the client tls context will be matched against the defined
     * match options.
     * [#next-major-version: unify with RBAC]
     * 
* * .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11; */ public Builder setTlsContext( io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.Builder builderForValue) { if (tlsContextBuilder_ == null) { tlsContext_ = builderForValue.build(); onChanged(); } else { tlsContextBuilder_.setMessage(builderForValue.build()); } return this; } /** *
     * If specified, the client tls context will be matched against the defined
     * match options.
     * [#next-major-version: unify with RBAC]
     * 
* * .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11; */ public Builder mergeTlsContext(io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions value) { if (tlsContextBuilder_ == null) { if (tlsContext_ != null) { tlsContext_ = io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.newBuilder(tlsContext_).mergeFrom(value).buildPartial(); } else { tlsContext_ = value; } onChanged(); } else { tlsContextBuilder_.mergeFrom(value); } return this; } /** *
     * If specified, the client tls context will be matched against the defined
     * match options.
     * [#next-major-version: unify with RBAC]
     * 
* * .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11; */ public Builder clearTlsContext() { if (tlsContextBuilder_ == null) { tlsContext_ = null; onChanged(); } else { tlsContext_ = null; tlsContextBuilder_ = null; } return this; } /** *
     * If specified, the client tls context will be matched against the defined
     * match options.
     * [#next-major-version: unify with RBAC]
     * 
* * .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11; */ public io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.Builder getTlsContextBuilder() { onChanged(); return getTlsContextFieldBuilder().getBuilder(); } /** *
     * If specified, the client tls context will be matched against the defined
     * match options.
     * [#next-major-version: unify with RBAC]
     * 
* * .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11; */ public io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptionsOrBuilder getTlsContextOrBuilder() { if (tlsContextBuilder_ != null) { return tlsContextBuilder_.getMessageOrBuilder(); } else { return tlsContext_ == null ? io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.getDefaultInstance() : tlsContext_; } } /** *
     * If specified, the client tls context will be matched against the defined
     * match options.
     * [#next-major-version: unify with RBAC]
     * 
* * .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11; */ private com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions, io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.Builder, io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptionsOrBuilder> getTlsContextFieldBuilder() { if (tlsContextBuilder_ == null) { tlsContextBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions, io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.Builder, io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptionsOrBuilder>( getTlsContext(), getParentForChildren(), isClean()); tlsContext_ = null; } return tlsContextBuilder_; } private java.util.List dynamicMetadata_ = java.util.Collections.emptyList(); private void ensureDynamicMetadataIsMutable() { if (!((bitField0_ & 0x00000004) != 0)) { dynamicMetadata_ = new java.util.ArrayList(dynamicMetadata_); bitField0_ |= 0x00000004; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.Builder, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcherOrBuilder> dynamicMetadataBuilder_; /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public java.util.List getDynamicMetadataList() { if (dynamicMetadataBuilder_ == null) { return java.util.Collections.unmodifiableList(dynamicMetadata_); } else { return dynamicMetadataBuilder_.getMessageList(); } } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public int getDynamicMetadataCount() { if (dynamicMetadataBuilder_ == null) { return dynamicMetadata_.size(); } else { return dynamicMetadataBuilder_.getCount(); } } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher getDynamicMetadata(int index) { if (dynamicMetadataBuilder_ == null) { return dynamicMetadata_.get(index); } else { return dynamicMetadataBuilder_.getMessage(index); } } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public Builder setDynamicMetadata( int index, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher value) { if (dynamicMetadataBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureDynamicMetadataIsMutable(); dynamicMetadata_.set(index, value); onChanged(); } else { dynamicMetadataBuilder_.setMessage(index, value); } return this; } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public Builder setDynamicMetadata( int index, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.Builder builderForValue) { if (dynamicMetadataBuilder_ == null) { ensureDynamicMetadataIsMutable(); dynamicMetadata_.set(index, builderForValue.build()); onChanged(); } else { dynamicMetadataBuilder_.setMessage(index, builderForValue.build()); } return this; } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public Builder addDynamicMetadata(io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher value) { if (dynamicMetadataBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureDynamicMetadataIsMutable(); dynamicMetadata_.add(value); onChanged(); } else { dynamicMetadataBuilder_.addMessage(value); } return this; } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public Builder addDynamicMetadata( int index, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher value) { if (dynamicMetadataBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureDynamicMetadataIsMutable(); dynamicMetadata_.add(index, value); onChanged(); } else { dynamicMetadataBuilder_.addMessage(index, value); } return this; } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public Builder addDynamicMetadata( io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.Builder builderForValue) { if (dynamicMetadataBuilder_ == null) { ensureDynamicMetadataIsMutable(); dynamicMetadata_.add(builderForValue.build()); onChanged(); } else { dynamicMetadataBuilder_.addMessage(builderForValue.build()); } return this; } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public Builder addDynamicMetadata( int index, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.Builder builderForValue) { if (dynamicMetadataBuilder_ == null) { ensureDynamicMetadataIsMutable(); dynamicMetadata_.add(index, builderForValue.build()); onChanged(); } else { dynamicMetadataBuilder_.addMessage(index, builderForValue.build()); } return this; } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public Builder addAllDynamicMetadata( java.lang.Iterable values) { if (dynamicMetadataBuilder_ == null) { ensureDynamicMetadataIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, dynamicMetadata_); onChanged(); } else { dynamicMetadataBuilder_.addAllMessages(values); } return this; } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public Builder clearDynamicMetadata() { if (dynamicMetadataBuilder_ == null) { dynamicMetadata_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000004); onChanged(); } else { dynamicMetadataBuilder_.clear(); } return this; } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public Builder removeDynamicMetadata(int index) { if (dynamicMetadataBuilder_ == null) { ensureDynamicMetadataIsMutable(); dynamicMetadata_.remove(index); onChanged(); } else { dynamicMetadataBuilder_.remove(index); } return this; } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.Builder getDynamicMetadataBuilder( int index) { return getDynamicMetadataFieldBuilder().getBuilder(index); } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public io.envoyproxy.envoy.type.matcher.v3.MetadataMatcherOrBuilder getDynamicMetadataOrBuilder( int index) { if (dynamicMetadataBuilder_ == null) { return dynamicMetadata_.get(index); } else { return dynamicMetadataBuilder_.getMessageOrBuilder(index); } } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public java.util.List getDynamicMetadataOrBuilderList() { if (dynamicMetadataBuilder_ != null) { return dynamicMetadataBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(dynamicMetadata_); } } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.Builder addDynamicMetadataBuilder() { return getDynamicMetadataFieldBuilder().addBuilder( io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.getDefaultInstance()); } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.Builder addDynamicMetadataBuilder( int index) { return getDynamicMetadataFieldBuilder().addBuilder( index, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.getDefaultInstance()); } /** *
     * Specifies a set of dynamic metadata matchers on which the route should match.
     * The router will check the dynamic metadata against all the specified dynamic metadata matchers.
     * If the number of specified dynamic metadata matchers is nonzero, they all must match the
     * dynamic metadata for a match to occur.
     * 
* * repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13; */ public java.util.List getDynamicMetadataBuilderList() { return getDynamicMetadataFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.Builder, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcherOrBuilder> getDynamicMetadataFieldBuilder() { if (dynamicMetadataBuilder_ == null) { dynamicMetadataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.Builder, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcherOrBuilder>( dynamicMetadata_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); dynamicMetadata_ = null; } return dynamicMetadataBuilder_; } @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.RouteMatch) } // @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteMatch) private static final io.envoyproxy.envoy.config.route.v3.RouteMatch DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteMatch(); } public static io.envoyproxy.envoy.config.route.v3.RouteMatch getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public RouteMatch parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new RouteMatch(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.RouteMatch getDefaultInstanceForType() { return DEFAULT_INSTANCE; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy