Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: envoy/config/route/v3/route_components.proto
package io.envoyproxy.envoy.config.route.v3;
/**
*
* [#next-free-field: 16]
*
*
* Protobuf type {@code envoy.config.route.v3.RouteMatch}
*/
public final class RouteMatch extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteMatch)
RouteMatchOrBuilder {
private static final long serialVersionUID = 0L;
// Use RouteMatch.newBuilder() to construct.
private RouteMatch(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private RouteMatch() {
headers_ = java.util.Collections.emptyList();
queryParameters_ = java.util.Collections.emptyList();
dynamicMetadata_ = java.util.Collections.emptyList();
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new RouteMatch();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private RouteMatch(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 10: {
java.lang.String s = input.readStringRequireUtf8();
pathSpecifierCase_ = 1;
pathSpecifier_ = s;
break;
}
case 18: {
java.lang.String s = input.readStringRequireUtf8();
pathSpecifierCase_ = 2;
pathSpecifier_ = s;
break;
}
case 34: {
com.google.protobuf.BoolValue.Builder subBuilder = null;
if (caseSensitive_ != null) {
subBuilder = caseSensitive_.toBuilder();
}
caseSensitive_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(caseSensitive_);
caseSensitive_ = subBuilder.buildPartial();
}
break;
}
case 50: {
if (!((mutable_bitField0_ & 0x00000001) != 0)) {
headers_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000001;
}
headers_.add(
input.readMessage(io.envoyproxy.envoy.config.route.v3.HeaderMatcher.parser(), extensionRegistry));
break;
}
case 58: {
if (!((mutable_bitField0_ & 0x00000002) != 0)) {
queryParameters_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000002;
}
queryParameters_.add(
input.readMessage(io.envoyproxy.envoy.config.route.v3.QueryParameterMatcher.parser(), extensionRegistry));
break;
}
case 66: {
io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.Builder subBuilder = null;
if (grpc_ != null) {
subBuilder = grpc_.toBuilder();
}
grpc_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(grpc_);
grpc_ = subBuilder.buildPartial();
}
break;
}
case 74: {
io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.Builder subBuilder = null;
if (runtimeFraction_ != null) {
subBuilder = runtimeFraction_.toBuilder();
}
runtimeFraction_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(runtimeFraction_);
runtimeFraction_ = subBuilder.buildPartial();
}
break;
}
case 82: {
io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.Builder subBuilder = null;
if (pathSpecifierCase_ == 10) {
subBuilder = ((io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_).toBuilder();
}
pathSpecifier_ =
input.readMessage(io.envoyproxy.envoy.type.matcher.v3.RegexMatcher.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom((io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_);
pathSpecifier_ = subBuilder.buildPartial();
}
pathSpecifierCase_ = 10;
break;
}
case 90: {
io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.Builder subBuilder = null;
if (tlsContext_ != null) {
subBuilder = tlsContext_.toBuilder();
}
tlsContext_ = input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(tlsContext_);
tlsContext_ = subBuilder.buildPartial();
}
break;
}
case 98: {
io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.Builder subBuilder = null;
if (pathSpecifierCase_ == 12) {
subBuilder = ((io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) pathSpecifier_).toBuilder();
}
pathSpecifier_ =
input.readMessage(io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) pathSpecifier_);
pathSpecifier_ = subBuilder.buildPartial();
}
pathSpecifierCase_ = 12;
break;
}
case 106: {
if (!((mutable_bitField0_ & 0x00000004) != 0)) {
dynamicMetadata_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000004;
}
dynamicMetadata_.add(
input.readMessage(io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.parser(), extensionRegistry));
break;
}
case 114: {
java.lang.String s = input.readStringRequireUtf8();
pathSpecifierCase_ = 14;
pathSpecifier_ = s;
break;
}
case 122: {
io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder subBuilder = null;
if (pathSpecifierCase_ == 15) {
subBuilder = ((io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_).toBuilder();
}
pathSpecifier_ =
input.readMessage(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom((io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_);
pathSpecifier_ = subBuilder.buildPartial();
}
pathSpecifierCase_ = 15;
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (com.google.protobuf.UninitializedMessageException e) {
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
if (((mutable_bitField0_ & 0x00000001) != 0)) {
headers_ = java.util.Collections.unmodifiableList(headers_);
}
if (((mutable_bitField0_ & 0x00000002) != 0)) {
queryParameters_ = java.util.Collections.unmodifiableList(queryParameters_);
}
if (((mutable_bitField0_ & 0x00000004) != 0)) {
dynamicMetadata_ = java.util.Collections.unmodifiableList(dynamicMetadata_);
}
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.config.route.v3.RouteMatch.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.Builder.class);
}
public interface GrpcRouteMatchOptionsOrBuilder extends
// @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions)
com.google.protobuf.MessageOrBuilder {
}
/**
* Protobuf type {@code envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions}
*/
public static final class GrpcRouteMatchOptions extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions)
GrpcRouteMatchOptionsOrBuilder {
private static final long serialVersionUID = 0L;
// Use GrpcRouteMatchOptions.newBuilder() to construct.
private GrpcRouteMatchOptions(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private GrpcRouteMatchOptions() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new GrpcRouteMatchOptions();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private GrpcRouteMatchOptions(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (com.google.protobuf.UninitializedMessageException e) {
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.Builder.class);
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions)) {
return super.equals(obj);
}
io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions other = (io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions) obj;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* Protobuf type {@code envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder implements
// @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions)
io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptionsOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.Builder.class);
}
// Construct using io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_GrpcRouteMatchOptions_descriptor;
}
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions getDefaultInstanceForType() {
return io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.getDefaultInstance();
}
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions build() {
io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions buildPartial() {
io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions result = new io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions(this);
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions) {
return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions other) {
if (other == io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions.getDefaultInstance()) return this;
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions)
}
// @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions)
private static final io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions();
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public GrpcRouteMatchOptions parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new GrpcRouteMatchOptions(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser getParserForType() {
return PARSER;
}
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
public interface TlsContextMatchOptionsOrBuilder extends
// @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteMatch.TlsContextMatchOptions)
com.google.protobuf.MessageOrBuilder {
/**
*
* If specified, the route will match against whether or not a certificate is presented.
* If not specified, certificate presentation status (true or false) will not be considered when route matching.
*
*
* .google.protobuf.BoolValue presented = 1;
* @return Whether the presented field is set.
*/
boolean hasPresented();
/**
*
* If specified, the route will match against whether or not a certificate is presented.
* If not specified, certificate presentation status (true or false) will not be considered when route matching.
*
* 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.
*
* 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.
*
* If specified, the route will match against whether or not a certificate is validated.
* If not specified, certificate validation status (true or false) will not be considered when route matching.
* .. warning::
* Client certificate validation is not currently performed upon TLS session resumption. For
* a resumed TLS session the route will match only when ``validated`` is false, regardless of
* whether the client TLS certificate is valid.
* The only known workaround for this issue is to disable TLS session resumption entirely, by
* setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
* and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
*
*
* .google.protobuf.BoolValue validated = 2;
*/
com.google.protobuf.BoolValueOrBuilder getValidatedOrBuilder();
}
/**
* Protobuf type {@code envoy.config.route.v3.RouteMatch.TlsContextMatchOptions}
*/
public static final class TlsContextMatchOptions extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteMatch.TlsContextMatchOptions)
TlsContextMatchOptionsOrBuilder {
private static final long serialVersionUID = 0L;
// Use TlsContextMatchOptions.newBuilder() to construct.
private TlsContextMatchOptions(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private TlsContextMatchOptions() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new TlsContextMatchOptions();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private TlsContextMatchOptions(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 10: {
com.google.protobuf.BoolValue.Builder subBuilder = null;
if (presented_ != null) {
subBuilder = presented_.toBuilder();
}
presented_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(presented_);
presented_ = subBuilder.buildPartial();
}
break;
}
case 18: {
com.google.protobuf.BoolValue.Builder subBuilder = null;
if (validated_ != null) {
subBuilder = validated_.toBuilder();
}
validated_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(validated_);
validated_ = subBuilder.buildPartial();
}
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (com.google.protobuf.UninitializedMessageException e) {
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.Builder.class);
}
public static final int PRESENTED_FIELD_NUMBER = 1;
private com.google.protobuf.BoolValue presented_;
/**
*
* If specified, the route will match against whether or not a certificate is presented.
* If not specified, certificate presentation status (true or false) will not be considered when route matching.
*
*
* .google.protobuf.BoolValue presented = 1;
* @return Whether the presented field is set.
*/
@java.lang.Override
public boolean hasPresented() {
return presented_ != null;
}
/**
*
* If specified, the route will match against whether or not a certificate is presented.
* If not specified, certificate presentation status (true or false) will not be considered when route matching.
*
* If specified, the route will match against whether or not a certificate is presented.
* If not specified, certificate presentation status (true or false) will not be considered when route matching.
*
*
* .google.protobuf.BoolValue presented = 1;
*/
@java.lang.Override
public com.google.protobuf.BoolValueOrBuilder getPresentedOrBuilder() {
return getPresented();
}
public static final int VALIDATED_FIELD_NUMBER = 2;
private com.google.protobuf.BoolValue validated_;
/**
*
* If specified, the route will match against whether or not a certificate is validated.
* If not specified, certificate validation status (true or false) will not be considered when route matching.
* .. warning::
* Client certificate validation is not currently performed upon TLS session resumption. For
* a resumed TLS session the route will match only when ``validated`` is false, regardless of
* whether the client TLS certificate is valid.
* The only known workaround for this issue is to disable TLS session resumption entirely, by
* setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
* and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
*
*
* .google.protobuf.BoolValue validated = 2;
* @return Whether the validated field is set.
*/
@java.lang.Override
public boolean hasValidated() {
return validated_ != null;
}
/**
*
* If specified, the route will match against whether or not a certificate is validated.
* If not specified, certificate validation status (true or false) will not be considered when route matching.
* .. warning::
* Client certificate validation is not currently performed upon TLS session resumption. For
* a resumed TLS session the route will match only when ``validated`` is false, regardless of
* whether the client TLS certificate is valid.
* The only known workaround for this issue is to disable TLS session resumption entirely, by
* setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
* and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
*
* If specified, the route will match against whether or not a certificate is validated.
* If not specified, certificate validation status (true or false) will not be considered when route matching.
* .. warning::
* Client certificate validation is not currently performed upon TLS session resumption. For
* a resumed TLS session the route will match only when ``validated`` is false, regardless of
* whether the client TLS certificate is valid.
* The only known workaround for this issue is to disable TLS session resumption entirely, by
* setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
* and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
*
*
* .google.protobuf.BoolValue validated = 2;
*/
@java.lang.Override
public com.google.protobuf.BoolValueOrBuilder getValidatedOrBuilder() {
return getValidated();
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (presented_ != null) {
output.writeMessage(1, getPresented());
}
if (validated_ != null) {
output.writeMessage(2, getValidated());
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (presented_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(1, getPresented());
}
if (validated_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, getValidated());
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions)) {
return super.equals(obj);
}
io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions other = (io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions) obj;
if (hasPresented() != other.hasPresented()) return false;
if (hasPresented()) {
if (!getPresented()
.equals(other.getPresented())) return false;
}
if (hasValidated() != other.hasValidated()) return false;
if (hasValidated()) {
if (!getValidated()
.equals(other.getValidated())) return false;
}
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
if (hasPresented()) {
hash = (37 * hash) + PRESENTED_FIELD_NUMBER;
hash = (53 * hash) + getPresented().hashCode();
}
if (hasValidated()) {
hash = (37 * hash) + VALIDATED_FIELD_NUMBER;
hash = (53 * hash) + getValidated().hashCode();
}
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* Protobuf type {@code envoy.config.route.v3.RouteMatch.TlsContextMatchOptions}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder implements
// @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteMatch.TlsContextMatchOptions)
io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptionsOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.Builder.class);
}
// Construct using io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
if (presentedBuilder_ == null) {
presented_ = null;
} else {
presented_ = null;
presentedBuilder_ = null;
}
if (validatedBuilder_ == null) {
validated_ = null;
} else {
validated_ = null;
validatedBuilder_ = null;
}
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_TlsContextMatchOptions_descriptor;
}
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions getDefaultInstanceForType() {
return io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.getDefaultInstance();
}
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions build() {
io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions buildPartial() {
io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions result = new io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions(this);
if (presentedBuilder_ == null) {
result.presented_ = presented_;
} else {
result.presented_ = presentedBuilder_.build();
}
if (validatedBuilder_ == null) {
result.validated_ = validated_;
} else {
result.validated_ = validatedBuilder_.build();
}
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions) {
return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions other) {
if (other == io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.getDefaultInstance()) return this;
if (other.hasPresented()) {
mergePresented(other.getPresented());
}
if (other.hasValidated()) {
mergeValidated(other.getValidated());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private com.google.protobuf.BoolValue presented_;
private com.google.protobuf.SingleFieldBuilderV3<
com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> presentedBuilder_;
/**
*
* If specified, the route will match against whether or not a certificate is presented.
* If not specified, certificate presentation status (true or false) will not be considered when route matching.
*
*
* .google.protobuf.BoolValue presented = 1;
* @return Whether the presented field is set.
*/
public boolean hasPresented() {
return presentedBuilder_ != null || presented_ != null;
}
/**
*
* If specified, the route will match against whether or not a certificate is presented.
* If not specified, certificate presentation status (true or false) will not be considered when route matching.
*
* If specified, the route will match against whether or not a certificate is presented.
* If not specified, certificate presentation status (true or false) will not be considered when route matching.
*
*
* .google.protobuf.BoolValue presented = 1;
*/
public Builder setPresented(com.google.protobuf.BoolValue value) {
if (presentedBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
presented_ = value;
onChanged();
} else {
presentedBuilder_.setMessage(value);
}
return this;
}
/**
*
* If specified, the route will match against whether or not a certificate is presented.
* If not specified, certificate presentation status (true or false) will not be considered when route matching.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* If specified, the route will match against whether or not a certificate is validated.
* If not specified, certificate validation status (true or false) will not be considered when route matching.
* .. warning::
* Client certificate validation is not currently performed upon TLS session resumption. For
* a resumed TLS session the route will match only when ``validated`` is false, regardless of
* whether the client TLS certificate is valid.
* The only known workaround for this issue is to disable TLS session resumption entirely, by
* setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
* and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
*
*
* .google.protobuf.BoolValue validated = 2;
* @return Whether the validated field is set.
*/
public boolean hasValidated() {
return validatedBuilder_ != null || validated_ != null;
}
/**
*
* If specified, the route will match against whether or not a certificate is validated.
* If not specified, certificate validation status (true or false) will not be considered when route matching.
* .. warning::
* Client certificate validation is not currently performed upon TLS session resumption. For
* a resumed TLS session the route will match only when ``validated`` is false, regardless of
* whether the client TLS certificate is valid.
* The only known workaround for this issue is to disable TLS session resumption entirely, by
* setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
* and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
*
* If specified, the route will match against whether or not a certificate is validated.
* If not specified, certificate validation status (true or false) will not be considered when route matching.
* .. warning::
* Client certificate validation is not currently performed upon TLS session resumption. For
* a resumed TLS session the route will match only when ``validated`` is false, regardless of
* whether the client TLS certificate is valid.
* The only known workaround for this issue is to disable TLS session resumption entirely, by
* setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
* and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
*
*
* .google.protobuf.BoolValue validated = 2;
*/
public Builder setValidated(com.google.protobuf.BoolValue value) {
if (validatedBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
validated_ = value;
onChanged();
} else {
validatedBuilder_.setMessage(value);
}
return this;
}
/**
*
* If specified, the route will match against whether or not a certificate is validated.
* If not specified, certificate validation status (true or false) will not be considered when route matching.
* .. warning::
* Client certificate validation is not currently performed upon TLS session resumption. For
* a resumed TLS session the route will match only when ``validated`` is false, regardless of
* whether the client TLS certificate is valid.
* The only known workaround for this issue is to disable TLS session resumption entirely, by
* setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
* and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* If specified, the route will match against whether or not a certificate is validated.
* If not specified, certificate validation status (true or false) will not be considered when route matching.
* .. warning::
* Client certificate validation is not currently performed upon TLS session resumption. For
* a resumed TLS session the route will match only when ``validated`` is false, regardless of
* whether the client TLS certificate is valid.
* The only known workaround for this issue is to disable TLS session resumption entirely, by
* setting both :ref:`disable_stateless_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateless_session_resumption>`
* and :ref:`disable_stateful_session_resumption <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.disable_stateful_session_resumption>` on the DownstreamTlsContext.
*
*
* .google.protobuf.BoolValue validated = 2;
*/
private com.google.protobuf.SingleFieldBuilderV3<
com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>
getValidatedFieldBuilder() {
if (validatedBuilder_ == null) {
validatedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>(
getValidated(),
getParentForChildren(),
isClean());
validated_ = null;
}
return validatedBuilder_;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:envoy.config.route.v3.RouteMatch.TlsContextMatchOptions)
}
// @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteMatch.TlsContextMatchOptions)
private static final io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions();
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public TlsContextMatchOptions parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new TlsContextMatchOptions(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser getParserForType() {
return PARSER;
}
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
public interface ConnectMatcherOrBuilder extends
// @@protoc_insertion_point(interface_extends:envoy.config.route.v3.RouteMatch.ConnectMatcher)
com.google.protobuf.MessageOrBuilder {
}
/**
*
* An extensible message for matching CONNECT or CONNECT-UDP requests.
*
*
* Protobuf type {@code envoy.config.route.v3.RouteMatch.ConnectMatcher}
*/
public static final class ConnectMatcher extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:envoy.config.route.v3.RouteMatch.ConnectMatcher)
ConnectMatcherOrBuilder {
private static final long serialVersionUID = 0L;
// Use ConnectMatcher.newBuilder() to construct.
private ConnectMatcher(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private ConnectMatcher() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new ConnectMatcher();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private ConnectMatcher(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (com.google.protobuf.UninitializedMessageException e) {
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_ConnectMatcher_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_ConnectMatcher_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.Builder.class);
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher)) {
return super.equals(obj);
}
io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher other = (io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) obj;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
*
* An extensible message for matching CONNECT or CONNECT-UDP requests.
*
*
* Protobuf type {@code envoy.config.route.v3.RouteMatch.ConnectMatcher}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder implements
// @@protoc_insertion_point(builder_implements:envoy.config.route.v3.RouteMatch.ConnectMatcher)
io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcherOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_ConnectMatcher_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_ConnectMatcher_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.class, io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.Builder.class);
}
// Construct using io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return io.envoyproxy.envoy.config.route.v3.RouteComponentsProto.internal_static_envoy_config_route_v3_RouteMatch_ConnectMatcher_descriptor;
}
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher getDefaultInstanceForType() {
return io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.getDefaultInstance();
}
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher build() {
io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher buildPartial() {
io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher result = new io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher(this);
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) {
return mergeFrom((io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher other) {
if (other == io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher.getDefaultInstance()) return this;
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:envoy.config.route.v3.RouteMatch.ConnectMatcher)
}
// @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteMatch.ConnectMatcher)
private static final io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher();
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public ConnectMatcher parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new ConnectMatcher(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser getParserForType() {
return PARSER;
}
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private int pathSpecifierCase_ = 0;
private java.lang.Object pathSpecifier_;
public enum PathSpecifierCase
implements com.google.protobuf.Internal.EnumLite,
com.google.protobuf.AbstractMessage.InternalOneOfEnum {
PREFIX(1),
PATH(2),
SAFE_REGEX(10),
CONNECT_MATCHER(12),
PATH_SEPARATED_PREFIX(14),
PATH_MATCH_POLICY(15),
PATHSPECIFIER_NOT_SET(0);
private final int value;
private PathSpecifierCase(int value) {
this.value = value;
}
/**
* @param value The number of the enum to look for.
* @return The enum associated with the given number.
* @deprecated Use {@link #forNumber(int)} instead.
*/
@java.lang.Deprecated
public static PathSpecifierCase valueOf(int value) {
return forNumber(value);
}
public static PathSpecifierCase forNumber(int value) {
switch (value) {
case 1: return PREFIX;
case 2: return PATH;
case 10: return SAFE_REGEX;
case 12: return CONNECT_MATCHER;
case 14: return PATH_SEPARATED_PREFIX;
case 15: return PATH_MATCH_POLICY;
case 0: return PATHSPECIFIER_NOT_SET;
default: return null;
}
}
public int getNumber() {
return this.value;
}
};
public PathSpecifierCase
getPathSpecifierCase() {
return PathSpecifierCase.forNumber(
pathSpecifierCase_);
}
public static final int PREFIX_FIELD_NUMBER = 1;
/**
*
* If specified, the route is a prefix rule meaning that the prefix must
* match the beginning of the ``:path`` header.
*
*
* string prefix = 1;
* @return Whether the prefix field is set.
*/
public boolean hasPrefix() {
return pathSpecifierCase_ == 1;
}
/**
*
* If specified, the route is a prefix rule meaning that the prefix must
* match the beginning of the ``:path`` header.
*
* 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.]
*
* 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 ``/``
*
* If specified, the route is a path-separated prefix rule meaning that the
* ``:path`` header (without the query string) must either exactly match the
* ``path_separated_prefix`` or have it as a prefix, followed by ``/``
* For example, ``/api/dev`` would match
* ``/api/dev``, ``/api/dev/``, ``/api/dev/v1``, and ``/api/dev?param=true``
* but would not match ``/api/developer``
* Expect the value to not contain ``?`` or ``#`` and not to end in ``/``
*
*
* string path_separated_prefix = 14 [(.validate.rules) = { ... }
* @return The bytes for pathSeparatedPrefix.
*/
public com.google.protobuf.ByteString
getPathSeparatedPrefixBytes() {
java.lang.Object ref = "";
if (pathSpecifierCase_ == 14) {
ref = pathSpecifier_;
}
if (ref instanceof java.lang.String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
if (pathSpecifierCase_ == 14) {
pathSpecifier_ = b;
}
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
public static final int PATH_MATCH_POLICY_FIELD_NUMBER = 15;
/**
*
* [#extension-category: envoy.path.match]
*
*
* .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15;
* @return Whether the pathMatchPolicy field is set.
*/
@java.lang.Override
public boolean hasPathMatchPolicy() {
return pathSpecifierCase_ == 15;
}
/**
*
* [#extension-category: envoy.path.match]
*
*
* .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15;
* @return The pathMatchPolicy.
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig getPathMatchPolicy() {
if (pathSpecifierCase_ == 15) {
return (io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_;
}
return io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance();
}
/**
*
* [#extension-category: envoy.path.match]
*
*
* .envoy.config.core.v3.TypedExtensionConfig path_match_policy = 15;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder getPathMatchPolicyOrBuilder() {
if (pathSpecifierCase_ == 15) {
return (io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_;
}
return io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.getDefaultInstance();
}
public static final int CASE_SENSITIVE_FIELD_NUMBER = 4;
private com.google.protobuf.BoolValue caseSensitive_;
/**
*
* Indicates that prefix/path matching should be case sensitive. The default
* is true. Ignored for safe_regex matching.
*
*
* .google.protobuf.BoolValue case_sensitive = 4;
* @return Whether the caseSensitive field is set.
*/
@java.lang.Override
public boolean hasCaseSensitive() {
return caseSensitive_ != null;
}
/**
*
* Indicates that prefix/path matching should be case sensitive. The default
* is true. Ignored for safe_regex matching.
*
* Indicates that prefix/path matching should be case sensitive. The default
* is true. Ignored for safe_regex matching.
*
*
* .google.protobuf.BoolValue case_sensitive = 4;
*/
@java.lang.Override
public com.google.protobuf.BoolValueOrBuilder getCaseSensitiveOrBuilder() {
return getCaseSensitive();
}
public static final int RUNTIME_FRACTION_FIELD_NUMBER = 9;
private io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent runtimeFraction_;
/**
*
* Indicates that the route should additionally match on a runtime key. Every time the route
* is considered for a match, it must also fall under the percentage of matches indicated by
* this field. For some fraction N/D, a random number in the range [0,D) is selected. If the
* number is <= the value of the numerator N, or if the key is not present, the default
* value, the router continues to evaluate the remaining match criteria. A runtime_fraction
* route configuration can be used to roll out route changes in a gradual manner without full
* code/config deploys. Refer to the :ref:`traffic shifting
* <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
* .. note::
* Parsing this field is implemented such that the runtime key's data may be represented
* as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
* integer with the assumption that the value is an integral percentage out of 100. For
* instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
* whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
*
*
* .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9;
* @return Whether the runtimeFraction field is set.
*/
@java.lang.Override
public boolean hasRuntimeFraction() {
return runtimeFraction_ != null;
}
/**
*
* Indicates that the route should additionally match on a runtime key. Every time the route
* is considered for a match, it must also fall under the percentage of matches indicated by
* this field. For some fraction N/D, a random number in the range [0,D) is selected. If the
* number is <= the value of the numerator N, or if the key is not present, the default
* value, the router continues to evaluate the remaining match criteria. A runtime_fraction
* route configuration can be used to roll out route changes in a gradual manner without full
* code/config deploys. Refer to the :ref:`traffic shifting
* <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
* .. note::
* Parsing this field is implemented such that the runtime key's data may be represented
* as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
* integer with the assumption that the value is an integral percentage out of 100. For
* instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
* whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
*
* Indicates that the route should additionally match on a runtime key. Every time the route
* is considered for a match, it must also fall under the percentage of matches indicated by
* this field. For some fraction N/D, a random number in the range [0,D) is selected. If the
* number is <= the value of the numerator N, or if the key is not present, the default
* value, the router continues to evaluate the remaining match criteria. A runtime_fraction
* route configuration can be used to roll out route changes in a gradual manner without full
* code/config deploys. Refer to the :ref:`traffic shifting
* <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
* .. note::
* Parsing this field is implemented such that the runtime key's data may be represented
* as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
* integer with the assumption that the value is an integral percentage out of 100. For
* instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
* whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
*
*
* .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercentOrBuilder getRuntimeFractionOrBuilder() {
return getRuntimeFraction();
}
public static final int HEADERS_FIELD_NUMBER = 6;
private java.util.List headers_;
/**
*
* Specifies a set of headers that the route should match on. The router will
* check the request’s headers against all the specified headers in the route
* config. A match will happen if all the headers in the route are present in
* the request with the same values (or based on presence if the value field
* is not in the config).
*
* 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).
*
* 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).
*
* Specifies a set of headers that the route should match on. The router will
* check the request’s headers against all the specified headers in the route
* config. A match will happen if all the headers in the route are present in
* the request with the same values (or based on presence if the value field
* is not in the config).
*
*
* repeated .envoy.config.route.v3.HeaderMatcher headers = 6;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.HeaderMatcherOrBuilder getHeadersOrBuilder(
int index) {
return headers_.get(index);
}
public static final int QUERY_PARAMETERS_FIELD_NUMBER = 7;
private java.util.List queryParameters_;
/**
*
* Specifies a set of URL query parameters on which the route should
* match. The router will check the query string from the ``path`` header
* against all the specified query parameters. If the number of specified
* query parameters is nonzero, they all must match the ``path`` header's
* query string for a match to occur. In the event query parameters are
* repeated, only the first value for each key will be considered.
* .. note::
* If query parameters are used to pass request message fields when
* `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
* is used, the transcoded message fields maybe different. The query parameters are
* url encoded, but the message fields are not. For example, if a query
* parameter is "foo%20bar", the message field will be "foo bar".
*
* 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".
*
* 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".
*
* Specifies a set of URL query parameters on which the route should
* match. The router will check the query string from the ``path`` header
* against all the specified query parameters. If the number of specified
* query parameters is nonzero, they all must match the ``path`` header's
* query string for a match to occur. In the event query parameters are
* repeated, only the first value for each key will be considered.
* .. note::
* If query parameters are used to pass request message fields when
* `grpc_json_transcoder <https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter>`_
* is used, the transcoded message fields maybe different. The query parameters are
* url encoded, but the message fields are not. For example, if a query
* parameter is "foo%20bar", the message field will be "foo bar".
*
*
* repeated .envoy.config.route.v3.QueryParameterMatcher query_parameters = 7;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.QueryParameterMatcherOrBuilder getQueryParametersOrBuilder(
int index) {
return queryParameters_.get(index);
}
public static final int GRPC_FIELD_NUMBER = 8;
private io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc_;
/**
*
* If specified, only gRPC requests will be matched. The router will check
* that the content-type header has a application/grpc or one of the various
* application/grpc+ values.
*
*
* .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8;
* @return Whether the grpc field is set.
*/
@java.lang.Override
public boolean hasGrpc() {
return grpc_ != null;
}
/**
*
* If specified, only gRPC requests will be matched. The router will check
* that the content-type header has a application/grpc or one of the various
* application/grpc+ values.
*
* If specified, only gRPC requests will be matched. The router will check
* that the content-type header has a application/grpc or one of the various
* application/grpc+ values.
*
*
* .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptionsOrBuilder getGrpcOrBuilder() {
return getGrpc();
}
public static final int TLS_CONTEXT_FIELD_NUMBER = 11;
private io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tlsContext_;
/**
*
* If specified, the client tls context will be matched against the defined
* match options.
* [#next-major-version: unify with RBAC]
*
*
* .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11;
* @return Whether the tlsContext field is set.
*/
@java.lang.Override
public boolean hasTlsContext() {
return tlsContext_ != null;
}
/**
*
* If specified, the client tls context will be matched against the defined
* match options.
* [#next-major-version: unify with RBAC]
*
* If specified, the client tls context will be matched against the defined
* match options.
* [#next-major-version: unify with RBAC]
*
*
* .envoy.config.route.v3.RouteMatch.TlsContextMatchOptions tls_context = 11;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch.TlsContextMatchOptionsOrBuilder getTlsContextOrBuilder() {
return getTlsContext();
}
public static final int DYNAMIC_METADATA_FIELD_NUMBER = 13;
private java.util.List dynamicMetadata_;
/**
*
* Specifies a set of dynamic metadata matchers on which the route should match.
* The router will check the dynamic metadata against all the specified dynamic metadata matchers.
* If the number of specified dynamic metadata matchers is nonzero, they all must match the
* dynamic metadata for a match to occur.
*
* 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.
*
* 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.
*
* Specifies a set of dynamic metadata matchers on which the route should match.
* The router will check the dynamic metadata against all the specified dynamic metadata matchers.
* If the number of specified dynamic metadata matchers is nonzero, they all must match the
* dynamic metadata for a match to occur.
*
*
* repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13;
*/
@java.lang.Override
public io.envoyproxy.envoy.type.matcher.v3.MetadataMatcherOrBuilder getDynamicMetadataOrBuilder(
int index) {
return dynamicMetadata_.get(index);
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (pathSpecifierCase_ == 1) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 1, pathSpecifier_);
}
if (pathSpecifierCase_ == 2) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 2, pathSpecifier_);
}
if (caseSensitive_ != null) {
output.writeMessage(4, getCaseSensitive());
}
for (int i = 0; i < headers_.size(); i++) {
output.writeMessage(6, headers_.get(i));
}
for (int i = 0; i < queryParameters_.size(); i++) {
output.writeMessage(7, queryParameters_.get(i));
}
if (grpc_ != null) {
output.writeMessage(8, getGrpc());
}
if (runtimeFraction_ != null) {
output.writeMessage(9, getRuntimeFraction());
}
if (pathSpecifierCase_ == 10) {
output.writeMessage(10, (io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_);
}
if (tlsContext_ != null) {
output.writeMessage(11, getTlsContext());
}
if (pathSpecifierCase_ == 12) {
output.writeMessage(12, (io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) pathSpecifier_);
}
for (int i = 0; i < dynamicMetadata_.size(); i++) {
output.writeMessage(13, dynamicMetadata_.get(i));
}
if (pathSpecifierCase_ == 14) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 14, pathSpecifier_);
}
if (pathSpecifierCase_ == 15) {
output.writeMessage(15, (io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_);
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (pathSpecifierCase_ == 1) {
size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, pathSpecifier_);
}
if (pathSpecifierCase_ == 2) {
size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, pathSpecifier_);
}
if (caseSensitive_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(4, getCaseSensitive());
}
for (int i = 0; i < headers_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(6, headers_.get(i));
}
for (int i = 0; i < queryParameters_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(7, queryParameters_.get(i));
}
if (grpc_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(8, getGrpc());
}
if (runtimeFraction_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(9, getRuntimeFraction());
}
if (pathSpecifierCase_ == 10) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(10, (io.envoyproxy.envoy.type.matcher.v3.RegexMatcher) pathSpecifier_);
}
if (tlsContext_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(11, getTlsContext());
}
if (pathSpecifierCase_ == 12) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(12, (io.envoyproxy.envoy.config.route.v3.RouteMatch.ConnectMatcher) pathSpecifier_);
}
for (int i = 0; i < dynamicMetadata_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(13, dynamicMetadata_.get(i));
}
if (pathSpecifierCase_ == 14) {
size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, pathSpecifier_);
}
if (pathSpecifierCase_ == 15) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(15, (io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig) pathSpecifier_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof io.envoyproxy.envoy.config.route.v3.RouteMatch)) {
return super.equals(obj);
}
io.envoyproxy.envoy.config.route.v3.RouteMatch other = (io.envoyproxy.envoy.config.route.v3.RouteMatch) obj;
if (hasCaseSensitive() != other.hasCaseSensitive()) return false;
if (hasCaseSensitive()) {
if (!getCaseSensitive()
.equals(other.getCaseSensitive())) return false;
}
if (hasRuntimeFraction() != other.hasRuntimeFraction()) return false;
if (hasRuntimeFraction()) {
if (!getRuntimeFraction()
.equals(other.getRuntimeFraction())) return false;
}
if (!getHeadersList()
.equals(other.getHeadersList())) return false;
if (!getQueryParametersList()
.equals(other.getQueryParametersList())) return false;
if (hasGrpc() != other.hasGrpc()) return false;
if (hasGrpc()) {
if (!getGrpc()
.equals(other.getGrpc())) return false;
}
if (hasTlsContext() != other.hasTlsContext()) return false;
if (hasTlsContext()) {
if (!getTlsContext()
.equals(other.getTlsContext())) return false;
}
if (!getDynamicMetadataList()
.equals(other.getDynamicMetadataList())) return false;
if (!getPathSpecifierCase().equals(other.getPathSpecifierCase())) return false;
switch (pathSpecifierCase_) {
case 1:
if (!getPrefix()
.equals(other.getPrefix())) return false;
break;
case 2:
if (!getPath()
.equals(other.getPath())) return false;
break;
case 10:
if (!getSafeRegex()
.equals(other.getSafeRegex())) return false;
break;
case 12:
if (!getConnectMatcher()
.equals(other.getConnectMatcher())) return false;
break;
case 14:
if (!getPathSeparatedPrefix()
.equals(other.getPathSeparatedPrefix())) return false;
break;
case 15:
if (!getPathMatchPolicy()
.equals(other.getPathMatchPolicy())) return false;
break;
case 0:
default:
}
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
if (hasCaseSensitive()) {
hash = (37 * hash) + CASE_SENSITIVE_FIELD_NUMBER;
hash = (53 * hash) + getCaseSensitive().hashCode();
}
if (hasRuntimeFraction()) {
hash = (37 * hash) + RUNTIME_FRACTION_FIELD_NUMBER;
hash = (53 * hash) + getRuntimeFraction().hashCode();
}
if (getHeadersCount() > 0) {
hash = (37 * hash) + HEADERS_FIELD_NUMBER;
hash = (53 * hash) + getHeadersList().hashCode();
}
if (getQueryParametersCount() > 0) {
hash = (37 * hash) + QUERY_PARAMETERS_FIELD_NUMBER;
hash = (53 * hash) + getQueryParametersList().hashCode();
}
if (hasGrpc()) {
hash = (37 * hash) + GRPC_FIELD_NUMBER;
hash = (53 * hash) + getGrpc().hashCode();
}
if (hasTlsContext()) {
hash = (37 * hash) + TLS_CONTEXT_FIELD_NUMBER;
hash = (53 * hash) + getTlsContext().hashCode();
}
if (getDynamicMetadataCount() > 0) {
hash = (37 * hash) + DYNAMIC_METADATA_FIELD_NUMBER;
hash = (53 * hash) + getDynamicMetadataList().hashCode();
}
switch (pathSpecifierCase_) {
case 1:
hash = (37 * hash) + PREFIX_FIELD_NUMBER;
hash = (53 * hash) + getPrefix().hashCode();
break;
case 2:
hash = (37 * hash) + PATH_FIELD_NUMBER;
hash = (53 * hash) + getPath().hashCode();
break;
case 10:
hash = (37 * hash) + SAFE_REGEX_FIELD_NUMBER;
hash = (53 * hash) + getSafeRegex().hashCode();
break;
case 12:
hash = (37 * hash) + CONNECT_MATCHER_FIELD_NUMBER;
hash = (53 * hash) + getConnectMatcher().hashCode();
break;
case 14:
hash = (37 * hash) + PATH_SEPARATED_PREFIX_FIELD_NUMBER;
hash = (53 * hash) + getPathSeparatedPrefix().hashCode();
break;
case 15:
hash = (37 * hash) + PATH_MATCH_POLICY_FIELD_NUMBER;
hash = (53 * hash) + getPathMatchPolicy().hashCode();
break;
case 0:
default:
}
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(io.envoyproxy.envoy.config.route.v3.RouteMatch prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
*
* 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.]
*
* 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.]
*
* 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.]
*
* 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.]
*
* 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.]
*
* 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.]
*
* 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.]
*
* 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.]
*
* 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.]
*
* 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.]
*
* 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.]
*
* 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.]
*
* 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.]
*
* 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.]
*
* 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.]
*
* 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 ``/``
*
* 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();
}
}
/**
*
* Indicates that the route should additionally match on a runtime key. Every time the route
* is considered for a match, it must also fall under the percentage of matches indicated by
* this field. For some fraction N/D, a random number in the range [0,D) is selected. If the
* number is <= the value of the numerator N, or if the key is not present, the default
* value, the router continues to evaluate the remaining match criteria. A runtime_fraction
* route configuration can be used to roll out route changes in a gradual manner without full
* code/config deploys. Refer to the :ref:`traffic shifting
* <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
* .. note::
* Parsing this field is implemented such that the runtime key's data may be represented
* as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
* integer with the assumption that the value is an integral percentage out of 100. For
* instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
* whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
*
*
* .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9;
* @return Whether the runtimeFraction field is set.
*/
public boolean hasRuntimeFraction() {
return runtimeFractionBuilder_ != null || runtimeFraction_ != null;
}
/**
*
* Indicates that the route should additionally match on a runtime key. Every time the route
* is considered for a match, it must also fall under the percentage of matches indicated by
* this field. For some fraction N/D, a random number in the range [0,D) is selected. If the
* number is <= the value of the numerator N, or if the key is not present, the default
* value, the router continues to evaluate the remaining match criteria. A runtime_fraction
* route configuration can be used to roll out route changes in a gradual manner without full
* code/config deploys. Refer to the :ref:`traffic shifting
* <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
* .. note::
* Parsing this field is implemented such that the runtime key's data may be represented
* as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
* integer with the assumption that the value is an integral percentage out of 100. For
* instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
* whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
*
* Indicates that the route should additionally match on a runtime key. Every time the route
* is considered for a match, it must also fall under the percentage of matches indicated by
* this field. For some fraction N/D, a random number in the range [0,D) is selected. If the
* number is <= the value of the numerator N, or if the key is not present, the default
* value, the router continues to evaluate the remaining match criteria. A runtime_fraction
* route configuration can be used to roll out route changes in a gradual manner without full
* code/config deploys. Refer to the :ref:`traffic shifting
* <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
* .. note::
* Parsing this field is implemented such that the runtime key's data may be represented
* as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
* integer with the assumption that the value is an integral percentage out of 100. For
* instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
* whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
*
*
* .envoy.config.core.v3.RuntimeFractionalPercent runtime_fraction = 9;
*/
public Builder setRuntimeFraction(io.envoyproxy.envoy.config.core.v3.RuntimeFractionalPercent value) {
if (runtimeFractionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
runtimeFraction_ = value;
onChanged();
} else {
runtimeFractionBuilder_.setMessage(value);
}
return this;
}
/**
*
* Indicates that the route should additionally match on a runtime key. Every time the route
* is considered for a match, it must also fall under the percentage of matches indicated by
* this field. For some fraction N/D, a random number in the range [0,D) is selected. If the
* number is <= the value of the numerator N, or if the key is not present, the default
* value, the router continues to evaluate the remaining match criteria. A runtime_fraction
* route configuration can be used to roll out route changes in a gradual manner without full
* code/config deploys. Refer to the :ref:`traffic shifting
* <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
* .. note::
* Parsing this field is implemented such that the runtime key's data may be represented
* as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
* integer with the assumption that the value is an integral percentage out of 100. For
* instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
* whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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).
*
* 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).
*
* 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).
*
* 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).
*
* 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).
*
* 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).
*
* 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).
*
* 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).
*
* 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).
*
* 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).
*
* 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).
*
* 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).
*
* 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".
*
* 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".
*
* 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".
*
* 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".
*
* 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".
*
* 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".
*
* 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".
*
* 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".
*
* 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".
*
* 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".
*
* 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".
*
* 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".
*
* If specified, only gRPC requests will be matched. The router will check
* that the content-type header has a application/grpc or one of the various
* application/grpc+ values.
*
*
* .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8;
* @return Whether the grpc field is set.
*/
public boolean hasGrpc() {
return grpcBuilder_ != null || grpc_ != null;
}
/**
*
* If specified, only gRPC requests will be matched. The router will check
* that the content-type header has a application/grpc or one of the various
* application/grpc+ values.
*
* If specified, only gRPC requests will be matched. The router will check
* that the content-type header has a application/grpc or one of the various
* application/grpc+ values.
*
*
* .envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions grpc = 8;
*/
public Builder setGrpc(io.envoyproxy.envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions value) {
if (grpcBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
grpc_ = value;
onChanged();
} else {
grpcBuilder_.setMessage(value);
}
return this;
}
/**
*
* If specified, only gRPC requests will be matched. The router will check
* that the content-type header has a application/grpc or one of the various
* application/grpc+ values.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* Specifies a set of dynamic metadata matchers on which the route should match.
* The router will check the dynamic metadata against all the specified dynamic metadata matchers.
* If the number of specified dynamic metadata matchers is nonzero, they all must match the
* dynamic metadata for a match to occur.
*
*
* repeated .envoy.type.matcher.v3.MetadataMatcher dynamic_metadata = 13;
*/
public java.util.List
getDynamicMetadataBuilderList() {
return getDynamicMetadataFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilderV3<
io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.Builder, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcherOrBuilder>
getDynamicMetadataFieldBuilder() {
if (dynamicMetadataBuilder_ == null) {
dynamicMetadataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcher.Builder, io.envoyproxy.envoy.type.matcher.v3.MetadataMatcherOrBuilder>(
dynamicMetadata_,
((bitField0_ & 0x00000004) != 0),
getParentForChildren(),
isClean());
dynamicMetadata_ = null;
}
return dynamicMetadataBuilder_;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:envoy.config.route.v3.RouteMatch)
}
// @@protoc_insertion_point(class_scope:envoy.config.route.v3.RouteMatch)
private static final io.envoyproxy.envoy.config.route.v3.RouteMatch DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new io.envoyproxy.envoy.config.route.v3.RouteMatch();
}
public static io.envoyproxy.envoy.config.route.v3.RouteMatch getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public RouteMatch parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new RouteMatch(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser getParserForType() {
return PARSER;
}
@java.lang.Override
public io.envoyproxy.envoy.config.route.v3.RouteMatch getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}