![JAR search and dependency download from the Maven repository](/logo.png)
io.envoyproxy.envoy.config.route.v3.RouteMatch Maven / Gradle / Ivy
The newest version!
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: envoy/config/route/v3/route_components.proto
// Protobuf Java Version: 3.25.5
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();
}
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();
}
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 {
getUnknownFields().writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
size += getUnknownFields().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 (!getUnknownFields().equals(other.getUnknownFields())) 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) + getUnknownFields().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() {
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
}
@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.getUnknownFields());
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 {
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
default: {
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
done = true; // was an endgroup tag
}
break;
} // default:
} // switch (tag)
} // while (!done)
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.unwrapIOException();
} finally {
onChanged();
} // finally
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 {
Builder builder = newBuilder();
try {
builder.mergeFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(builder.buildPartial());
} catch (com.google.protobuf.UninitializedMessageException e) {
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(e)
.setUnfinishedMessage(builder.buildPartial());
}
return builder.buildPartial();
}
};
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();
}
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);
}
private int bitField0_;
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 ((bitField0_ & 0x00000001) != 0);
}
/**
*
* 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 presented_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : presented_;
}
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 ((bitField0_ & 0x00000002) != 0);
}
/**
*
* 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 validated_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : validated_;
}
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 (((bitField0_ & 0x00000001) != 0)) {
output.writeMessage(1, getPresented());
}
if (((bitField0_ & 0x00000002) != 0)) {
output.writeMessage(2, getValidated());
}
getUnknownFields().writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (((bitField0_ & 0x00000001) != 0)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(1, getPresented());
}
if (((bitField0_ & 0x00000002) != 0)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, getValidated());
}
size += getUnknownFields().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 (!getUnknownFields().equals(other.getUnknownFields())) 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) + getUnknownFields().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) {
getPresentedFieldBuilder();
getValidatedFieldBuilder();
}
}
@java.lang.Override
public Builder clear() {
super.clear();
bitField0_ = 0;
presented_ = null;
if (presentedBuilder_ != null) {
presentedBuilder_.dispose();
presentedBuilder_ = null;
}
validated_ = null;
if (validatedBuilder_ != null) {
validatedBuilder_.dispose();
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 (bitField0_ != 0) { buildPartial0(result); }
onBuilt();
return result;
}
private void buildPartial0(io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions result) {
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) != 0)) {
result.presented_ = presentedBuilder_ == null
? presented_
: presentedBuilder_.build();
to_bitField0_ |= 0x00000001;
}
if (((from_bitField0_ & 0x00000002) != 0)) {
result.validated_ = validatedBuilder_ == null
? validated_
: validatedBuilder_.build();
to_bitField0_ |= 0x00000002;
}
result.bitField0_ |= to_bitField0_;
}
@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.getUnknownFields());
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 {
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 10: {
input.readMessage(
getPresentedFieldBuilder().getBuilder(),
extensionRegistry);
bitField0_ |= 0x00000001;
break;
} // case 10
case 18: {
input.readMessage(
getValidatedFieldBuilder().getBuilder(),
extensionRegistry);
bitField0_ |= 0x00000002;
break;
} // case 18
default: {
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
done = true; // was an endgroup tag
}
break;
} // default:
} // switch (tag)
} // while (!done)
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.unwrapIOException();
} finally {
onChanged();
} // finally
return this;
}
private int bitField0_;
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 ((bitField0_ & 0x00000001) != 0);
}
/**
*
* 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;
} else {
presentedBuilder_.setMessage(value);
}
bitField0_ |= 0x00000001;
onChanged();
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();
} else {
presentedBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000001;
onChanged();
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 (((bitField0_ & 0x00000001) != 0) &&
presented_ != null &&
presented_ != com.google.protobuf.BoolValue.getDefaultInstance()) {
getPresentedBuilder().mergeFrom(value);
} else {
presented_ = value;
}
} else {
presentedBuilder_.mergeFrom(value);
}
if (presented_ != null) {
bitField0_ |= 0x00000001;
onChanged();
}
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() {
bitField0_ = (bitField0_ & ~0x00000001);
presented_ = null;
if (presentedBuilder_ != null) {
presentedBuilder_.dispose();
presentedBuilder_ = null;
}
onChanged();
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() {
bitField0_ |= 0x00000001;
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 ((bitField0_ & 0x00000002) != 0);
}
/**
*
* 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;
} else {
validatedBuilder_.setMessage(value);
}
bitField0_ |= 0x00000002;
onChanged();
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();
} else {
validatedBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000002;
onChanged();
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 (((bitField0_ & 0x00000002) != 0) &&
validated_ != null &&
validated_ != com.google.protobuf.BoolValue.getDefaultInstance()) {
getValidatedBuilder().mergeFrom(value);
} else {
validated_ = value;
}
} else {
validatedBuilder_.mergeFrom(value);
}
if (validated_ != null) {
bitField0_ |= 0x00000002;
onChanged();
}
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() {
bitField0_ = (bitField0_ & ~0x00000002);
validated_ = null;
if (validatedBuilder_ != null) {
validatedBuilder_.dispose();
validatedBuilder_ = null;
}
onChanged();
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() {
bitField0_ |= 0x00000002;
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 {
Builder builder = newBuilder();
try {
builder.mergeFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(builder.buildPartial());
} catch (com.google.protobuf.UninitializedMessageException e) {
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(e)
.setUnfinishedMessage(builder.buildPartial());
}
return builder.buildPartial();
}
};
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();
}
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 {
getUnknownFields().writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
size += getUnknownFields().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 (!getUnknownFields().equals(other.getUnknownFields())) 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) + getUnknownFields().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() {
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
}
@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.getUnknownFields());
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 {
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
default: {
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
done = true; // was an endgroup tag
}
break;
} // default:
} // switch (tag)
} // while (!done)
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.unwrapIOException();
} finally {
onChanged();
} // finally
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 {
Builder builder = newBuilder();
try {
builder.mergeFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(builder.buildPartial());
} catch (com.google.protobuf.UninitializedMessageException e) {
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(e)
.setUnfinishedMessage(builder.buildPartial());
}
return builder.buildPartial();
}
};
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 bitField0_;
private int pathSpecifierCase_ = 0;
@SuppressWarnings("serial")
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 ((bitField0_ & 0x00000001) != 0);
}
/**
*
* 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 caseSensitive_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : caseSensitive_;
}
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 ((bitField0_ & 0x00000002) != 0);
}
/**
*
* 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 runtimeFraction_ == null ? io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.getDefaultInstance() : runtimeFraction_;
}
public static final int HEADERS_FIELD_NUMBER = 6;
@SuppressWarnings("serial")
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 extends io.envoyproxy.envoy.config.route.v3.HeaderMatcherOrBuilder>
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;
@SuppressWarnings("serial")
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 extends io.envoyproxy.envoy.config.route.v3.QueryParameterMatcherOrBuilder>
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 ((bitField0_ & 0x00000004) != 0);
}
/**
*
* 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 grpc_ == null ? io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.getDefaultInstance() : grpc_;
}
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 ((bitField0_ & 0x00000008) != 0);
}
/**
*
* 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 tlsContext_ == null ? io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.getDefaultInstance() : tlsContext_;
}
public static final int DYNAMIC_METADATA_FIELD_NUMBER = 13;
@SuppressWarnings("serial")
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 extends io.envoyproxy.envoy.type.matcher.v3.MetadataMatcherOrBuilder>
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 (((bitField0_ & 0x00000001) != 0)) {
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 (((bitField0_ & 0x00000004) != 0)) {
output.writeMessage(8, getGrpc());
}
if (((bitField0_ & 0x00000002) != 0)) {
output.writeMessage(9, getRuntimeFraction());
}
if (pathSpecifierCase_ == 10) {
output.writeMessage(10, (io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_);
}
if (((bitField0_ & 0x00000008) != 0)) {
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_);
}
getUnknownFields().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 (((bitField0_ & 0x00000001) != 0)) {
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 (((bitField0_ & 0x00000004) != 0)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(8, getGrpc());
}
if (((bitField0_ & 0x00000002) != 0)) {
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 (((bitField0_ & 0x00000008) != 0)) {
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 += getUnknownFields().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 (!getUnknownFields().equals(other.getUnknownFields())) 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) + getUnknownFields().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) {
getCaseSensitiveFieldBuilder();
getRuntimeFractionFieldBuilder();
getHeadersFieldBuilder();
getQueryParametersFieldBuilder();
getGrpcFieldBuilder();
getTlsContextFieldBuilder();
getDynamicMetadataFieldBuilder();
}
}
@java.lang.Override
public Builder clear() {
super.clear();
bitField0_ = 0;
if (safeRegexBuilder_ != null) {
safeRegexBuilder_.clear();
}
if (connectMatcherBuilder_ != null) {
connectMatcherBuilder_.clear();
}
if (pathMatchPolicyBuilder_ != null) {
pathMatchPolicyBuilder_.clear();
}
caseSensitive_ = null;
if (caseSensitiveBuilder_ != null) {
caseSensitiveBuilder_.dispose();
caseSensitiveBuilder_ = null;
}
runtimeFraction_ = null;
if (runtimeFractionBuilder_ != null) {
runtimeFractionBuilder_.dispose();
runtimeFractionBuilder_ = null;
}
if (headersBuilder_ == null) {
headers_ = java.util.Collections.emptyList();
} else {
headers_ = null;
headersBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000100);
if (queryParametersBuilder_ == null) {
queryParameters_ = java.util.Collections.emptyList();
} else {
queryParameters_ = null;
queryParametersBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000200);
grpc_ = null;
if (grpcBuilder_ != null) {
grpcBuilder_.dispose();
grpcBuilder_ = null;
}
tlsContext_ = null;
if (tlsContextBuilder_ != null) {
tlsContextBuilder_.dispose();
tlsContextBuilder_ = null;
}
if (dynamicMetadataBuilder_ == null) {
dynamicMetadata_ = java.util.Collections.emptyList();
} else {
dynamicMetadata_ = null;
dynamicMetadataBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00001000);
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);
buildPartialRepeatedFields(result);
if (bitField0_ != 0) { buildPartial0(result); }
buildPartialOneofs(result);
onBuilt();
return result;
}
private void buildPartialRepeatedFields(io.envoyproxy.envoy.config.route.v3.RouteMatch result) {
if (headersBuilder_ == null) {
if (((bitField0_ & 0x00000100) != 0)) {
headers_ = java.util.Collections.unmodifiableList(headers_);
bitField0_ = (bitField0_ & ~0x00000100);
}
result.headers_ = headers_;
} else {
result.headers_ = headersBuilder_.build();
}
if (queryParametersBuilder_ == null) {
if (((bitField0_ & 0x00000200) != 0)) {
queryParameters_ = java.util.Collections.unmodifiableList(queryParameters_);
bitField0_ = (bitField0_ & ~0x00000200);
}
result.queryParameters_ = queryParameters_;
} else {
result.queryParameters_ = queryParametersBuilder_.build();
}
if (dynamicMetadataBuilder_ == null) {
if (((bitField0_ & 0x00001000) != 0)) {
dynamicMetadata_ = java.util.Collections.unmodifiableList(dynamicMetadata_);
bitField0_ = (bitField0_ & ~0x00001000);
}
result.dynamicMetadata_ = dynamicMetadata_;
} else {
result.dynamicMetadata_ = dynamicMetadataBuilder_.build();
}
}
private void buildPartial0(io.envoyproxy.envoy.config.route.v3.RouteMatch result) {
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000040) != 0)) {
result.caseSensitive_ = caseSensitiveBuilder_ == null
? caseSensitive_
: caseSensitiveBuilder_.build();
to_bitField0_ |= 0x00000001;
}
if (((from_bitField0_ & 0x00000080) != 0)) {
result.runtimeFraction_ = runtimeFractionBuilder_ == null
? runtimeFraction_
: runtimeFractionBuilder_.build();
to_bitField0_ |= 0x00000002;
}
if (((from_bitField0_ & 0x00000400) != 0)) {
result.grpc_ = grpcBuilder_ == null
? grpc_
: grpcBuilder_.build();
to_bitField0_ |= 0x00000004;
}
if (((from_bitField0_ & 0x00000800) != 0)) {
result.tlsContext_ = tlsContextBuilder_ == null
? tlsContext_
: tlsContextBuilder_.build();
to_bitField0_ |= 0x00000008;
}
result.bitField0_ |= to_bitField0_;
}
private void buildPartialOneofs(io.envoyproxy.envoy.config.route.v3.RouteMatch result) {
result.pathSpecifierCase_ = pathSpecifierCase_;
result.pathSpecifier_ = this.pathSpecifier_;
if (pathSpecifierCase_ == 10 &&
safeRegexBuilder_ != null) {
result.pathSpecifier_ = safeRegexBuilder_.build();
}
if (pathSpecifierCase_ == 12 &&
connectMatcherBuilder_ != null) {
result.pathSpecifier_ = connectMatcherBuilder_.build();
}
if (pathSpecifierCase_ == 15 &&
pathMatchPolicyBuilder_ != null) {
result.pathSpecifier_ = pathMatchPolicyBuilder_.build();
}
}
@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_ & ~0x00000100);
} else {
ensureHeadersIsMutable();
headers_.addAll(other.headers_);
}
onChanged();
}
} else {
if (!other.headers_.isEmpty()) {
if (headersBuilder_.isEmpty()) {
headersBuilder_.dispose();
headersBuilder_ = null;
headers_ = other.headers_;
bitField0_ = (bitField0_ & ~0x00000100);
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_ & ~0x00000200);
} else {
ensureQueryParametersIsMutable();
queryParameters_.addAll(other.queryParameters_);
}
onChanged();
}
} else {
if (!other.queryParameters_.isEmpty()) {
if (queryParametersBuilder_.isEmpty()) {
queryParametersBuilder_.dispose();
queryParametersBuilder_ = null;
queryParameters_ = other.queryParameters_;
bitField0_ = (bitField0_ & ~0x00000200);
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_ & ~0x00001000);
} else {
ensureDynamicMetadataIsMutable();
dynamicMetadata_.addAll(other.dynamicMetadata_);
}
onChanged();
}
} else {
if (!other.dynamicMetadata_.isEmpty()) {
if (dynamicMetadataBuilder_.isEmpty()) {
dynamicMetadataBuilder_.dispose();
dynamicMetadataBuilder_ = null;
dynamicMetadata_ = other.dynamicMetadata_;
bitField0_ = (bitField0_ & ~0x00001000);
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.getUnknownFields());
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 {
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
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 10
case 18: {
java.lang.String s = input.readStringRequireUtf8();
pathSpecifierCase_ = 2;
pathSpecifier_ = s;
break;
} // case 18
case 34: {
input.readMessage(
getCaseSensitiveFieldBuilder().getBuilder(),
extensionRegistry);
bitField0_ |= 0x00000040;
break;
} // case 34
case 50: {
io.envoyproxy.envoy.config.route.v3.HeaderMatcher m =
input.readMessage(
io.envoyproxy.envoy.config.route.v3.HeaderMatcher.parser(),
extensionRegistry);
if (headersBuilder_ == null) {
ensureHeadersIsMutable();
headers_.add(m);
} else {
headersBuilder_.addMessage(m);
}
break;
} // case 50
case 58: {
io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher m =
input.readMessage(
io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher.parser(),
extensionRegistry);
if (queryParametersBuilder_ == null) {
ensureQueryParametersIsMutable();
queryParameters_.add(m);
} else {
queryParametersBuilder_.addMessage(m);
}
break;
} // case 58
case 66: {
input.readMessage(
getGrpcFieldBuilder().getBuilder(),
extensionRegistry);
bitField0_ |= 0x00000400;
break;
} // case 66
case 74: {
input.readMessage(
getRuntimeFractionFieldBuilder().getBuilder(),
extensionRegistry);
bitField0_ |= 0x00000080;
break;
} // case 74
case 82: {
input.readMessage(
getSafeRegexFieldBuilder().getBuilder(),
extensionRegistry);
pathSpecifierCase_ = 10;
break;
} // case 82
case 90: {
input.readMessage(
getTlsContextFieldBuilder().getBuilder(),
extensionRegistry);
bitField0_ |= 0x00000800;
break;
} // case 90
case 98: {
input.readMessage(
getConnectMatcherFieldBuilder().getBuilder(),
extensionRegistry);
pathSpecifierCase_ = 12;
break;
} // case 98
case 106: {
io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher m =
input.readMessage(
io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.parser(),
extensionRegistry);
if (dynamicMetadataBuilder_ == null) {
ensureDynamicMetadataIsMutable();
dynamicMetadata_.add(m);
} else {
dynamicMetadataBuilder_.addMessage(m);
}
break;
} // case 106
case 114: {
java.lang.String s = input.readStringRequireUtf8();
pathSpecifierCase_ = 14;
pathSpecifier_ = s;
break;
} // case 114
case 122: {
input.readMessage(
getPathMatchPolicyFieldBuilder().getBuilder(),
extensionRegistry);
pathSpecifierCase_ = 15;
break;
} // case 122
default: {
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
done = true; // was an endgroup tag
}
break;
} // default:
} // switch (tag)
} // while (!done)
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.unwrapIOException();
} finally {
onChanged();
} // finally
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 ((bitField0_ & 0x00000040) != 0);
}
/**
*
* 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;
} else {
caseSensitiveBuilder_.setMessage(value);
}
bitField0_ |= 0x00000040;
onChanged();
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();
} else {
caseSensitiveBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000040;
onChanged();
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 (((bitField0_ & 0x00000040) != 0) &&
caseSensitive_ != null &&
caseSensitive_ != com.google.protobuf.BoolValue.getDefaultInstance()) {
getCaseSensitiveBuilder().mergeFrom(value);
} else {
caseSensitive_ = value;
}
} else {
caseSensitiveBuilder_.mergeFrom(value);
}
if (caseSensitive_ != null) {
bitField0_ |= 0x00000040;
onChanged();
}
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() {
bitField0_ = (bitField0_ & ~0x00000040);
caseSensitive_ = null;
if (caseSensitiveBuilder_ != null) {
caseSensitiveBuilder_.dispose();
caseSensitiveBuilder_ = null;
}
onChanged();
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() {
bitField0_ |= 0x00000040;
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 ((bitField0_ & 0x00000080) != 0);
}
/**
*
* 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;
} else {
runtimeFractionBuilder_.setMessage(value);
}
bitField0_ |= 0x00000080;
onChanged();
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();
} else {
runtimeFractionBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000080;
onChanged();
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 (((bitField0_ & 0x00000080) != 0) &&
runtimeFraction_ != null &&
runtimeFraction_ != io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.getDefaultInstance()) {
getRuntimeFractionBuilder().mergeFrom(value);
} else {
runtimeFraction_ = value;
}
} else {
runtimeFractionBuilder_.mergeFrom(value);
}
if (runtimeFraction_ != null) {
bitField0_ |= 0x00000080;
onChanged();
}
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() {
bitField0_ = (bitField0_ & ~0x00000080);
runtimeFraction_ = null;
if (runtimeFractionBuilder_ != null) {
runtimeFractionBuilder_.dispose();
runtimeFractionBuilder_ = null;
}
onChanged();
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() {
bitField0_ |= 0x00000080;
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_ & 0x00000100) != 0)) {
headers_ = new java.util.ArrayList(headers_);
bitField0_ |= 0x00000100;
}
}
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 extends io.envoyproxy.envoy.config.route.v3.HeaderMatcher> 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_ & ~0x00000100);
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 extends io.envoyproxy.envoy.config.route.v3.HeaderMatcherOrBuilder>
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_ & 0x00000100) != 0),
getParentForChildren(),
isClean());
headers_ = null;
}
return headersBuilder_;
}
private java.util.List queryParameters_ =
java.util.Collections.emptyList();
private void ensureQueryParametersIsMutable() {
if (!((bitField0_ & 0x00000200) != 0)) {
queryParameters_ = new java.util.ArrayList(queryParameters_);
bitField0_ |= 0x00000200;
}
}
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 extends io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher> 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_ & ~0x00000200);
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 extends io.envoyproxy.envoy.config.route.v3.QueryParameterMatcherOrBuilder>
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_ & 0x00000200) != 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 ((bitField0_ & 0x00000400) != 0);
}
/**
*
* 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;
} else {
grpcBuilder_.setMessage(value);
}
bitField0_ |= 0x00000400;
onChanged();
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();
} else {
grpcBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000400;
onChanged();
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 (((bitField0_ & 0x00000400) != 0) &&
grpc_ != null &&
grpc_ != io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.getDefaultInstance()) {
getGrpcBuilder().mergeFrom(value);
} else {
grpc_ = value;
}
} else {
grpcBuilder_.mergeFrom(value);
}
if (grpc_ != null) {
bitField0_ |= 0x00000400;
onChanged();
}
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() {
bitField0_ = (bitField0_ & ~0x00000400);
grpc_ = null;
if (grpcBuilder_ != null) {
grpcBuilder_.dispose();
grpcBuilder_ = null;
}
onChanged();
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() {
bitField0_ |= 0x00000400;
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 ((bitField0_ & 0x00000800) != 0);
}
/**
*
* 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;
} else {
tlsContextBuilder_.setMessage(value);
}
bitField0_ |= 0x00000800;
onChanged();
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();
} else {
tlsContextBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000800;
onChanged();
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 (((bitField0_ & 0x00000800) != 0) &&
tlsContext_ != null &&
tlsContext_ != io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.getDefaultInstance()) {
getTlsContextBuilder().mergeFrom(value);
} else {
tlsContext_ = value;
}
} else {
tlsContextBuilder_.mergeFrom(value);
}
if (tlsContext_ != null) {
bitField0_ |= 0x00000800;
onChanged();
}
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() {
bitField0_ = (bitField0_ & ~0x00000800);
tlsContext_ = null;
if (tlsContextBuilder_ != null) {
tlsContextBuilder_.dispose();
tlsContextBuilder_ = null;
}
onChanged();
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() {
bitField0_ |= 0x00000800;
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_ & 0x00001000) != 0)) {
dynamicMetadata_ = new java.util.ArrayList(dynamicMetadata_);
bitField0_ |= 0x00001000;
}
}
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 extends io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher> 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_ & ~0x00001000);
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 extends io.envoyproxy.envoy.type.matcher.v3.MetadataMatcherOrBuilder>
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_ & 0x00001000) != 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 {
Builder builder = newBuilder();
try {
builder.mergeFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(builder.buildPartial());
} catch (com.google.protobuf.UninitializedMessageException e) {
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(e)
.setUnfinishedMessage(builder.buildPartial());
}
return builder.buildPartial();
}
};
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 - 2025 Weber Informatics LLC | Privacy Policy