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/extensions/upstreams/http/v3/http_protocol_options.proto
package io.envoyproxy.envoy.extensions.upstreams.http.v3;
/**
*
* HttpProtocolOptions specifies Http upstream protocol options. This object
* is used in
* :ref:`typed_extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`,
* keyed by the name ``envoy.extensions.upstreams.http.v3.HttpProtocolOptions``.
* This controls what protocol(s) should be used for upstream and how said protocol(s) are configured.
* This replaces the prior pattern of explicit protocol configuration directly
* in the cluster. So a configuration like this, explicitly configuring the use of HTTP/2 upstream:
* .. code::
* clusters:
* - name: some_service
* connect_timeout: 5s
* upstream_http_protocol_options:
* auto_sni: true
* common_http_protocol_options:
* idle_timeout: 1s
* http2_protocol_options:
* max_concurrent_streams: 100
* .... [further cluster config]
* Would now look like this:
* .. code::
* clusters:
* - name: some_service
* connect_timeout: 5s
* typed_extension_protocol_options:
* envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
* "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
* upstream_http_protocol_options:
* auto_sni: true
* common_http_protocol_options:
* idle_timeout: 1s
* explicit_http_config:
* http2_protocol_options:
* max_concurrent_streams: 100
* .... [further cluster config]
* [#next-free-field: 8]
*
*
* Protobuf type {@code envoy.extensions.upstreams.http.v3.HttpProtocolOptions}
*/
public final class HttpProtocolOptions extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:envoy.extensions.upstreams.http.v3.HttpProtocolOptions)
HttpProtocolOptionsOrBuilder {
private static final long serialVersionUID = 0L;
// Use HttpProtocolOptions.newBuilder() to construct.
private HttpProtocolOptions(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private HttpProtocolOptions() {
httpFilters_ = java.util.Collections.emptyList();
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new HttpProtocolOptions();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private HttpProtocolOptions(
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: {
io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions.Builder subBuilder = null;
if (commonHttpProtocolOptions_ != null) {
subBuilder = commonHttpProtocolOptions_.toBuilder();
}
commonHttpProtocolOptions_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(commonHttpProtocolOptions_);
commonHttpProtocolOptions_ = subBuilder.buildPartial();
}
break;
}
case 18: {
io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions.Builder subBuilder = null;
if (upstreamHttpProtocolOptions_ != null) {
subBuilder = upstreamHttpProtocolOptions_.toBuilder();
}
upstreamHttpProtocolOptions_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptions.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(upstreamHttpProtocolOptions_);
upstreamHttpProtocolOptions_ = subBuilder.buildPartial();
}
break;
}
case 26: {
io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig.Builder subBuilder = null;
if (upstreamProtocolOptionsCase_ == 3) {
subBuilder = ((io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig) upstreamProtocolOptions_).toBuilder();
}
upstreamProtocolOptions_ =
input.readMessage(io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom((io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig) upstreamProtocolOptions_);
upstreamProtocolOptions_ = subBuilder.buildPartial();
}
upstreamProtocolOptionsCase_ = 3;
break;
}
case 34: {
io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig.Builder subBuilder = null;
if (upstreamProtocolOptionsCase_ == 4) {
subBuilder = ((io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig) upstreamProtocolOptions_).toBuilder();
}
upstreamProtocolOptions_ =
input.readMessage(io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom((io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig) upstreamProtocolOptions_);
upstreamProtocolOptions_ = subBuilder.buildPartial();
}
upstreamProtocolOptionsCase_ = 4;
break;
}
case 42: {
io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig.Builder subBuilder = null;
if (upstreamProtocolOptionsCase_ == 5) {
subBuilder = ((io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig) upstreamProtocolOptions_).toBuilder();
}
upstreamProtocolOptions_ =
input.readMessage(io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom((io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig) upstreamProtocolOptions_);
upstreamProtocolOptions_ = subBuilder.buildPartial();
}
upstreamProtocolOptionsCase_ = 5;
break;
}
case 50: {
if (!((mutable_bitField0_ & 0x00000001) != 0)) {
httpFilters_ = new java.util.ArrayList();
mutable_bitField0_ |= 0x00000001;
}
httpFilters_.add(
input.readMessage(io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter.parser(), extensionRegistry));
break;
}
case 58: {
io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder subBuilder = null;
if (headerValidationConfig_ != null) {
subBuilder = headerValidationConfig_.toBuilder();
}
headerValidationConfig_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(headerValidationConfig_);
headerValidationConfig_ = subBuilder.buildPartial();
}
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (com.google.protobuf.UninitializedMessageException e) {
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
if (((mutable_bitField0_ & 0x00000001) != 0)) {
httpFilters_ = java.util.Collections.unmodifiableList(httpFilters_);
}
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptionsProto.internal_static_envoy_extensions_upstreams_http_v3_HttpProtocolOptions_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptionsProto.internal_static_envoy_extensions_upstreams_http_v3_HttpProtocolOptions_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.class, io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.Builder.class);
}
public interface ExplicitHttpConfigOrBuilder extends
// @@protoc_insertion_point(interface_extends:envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig)
com.google.protobuf.MessageOrBuilder {
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
* @return Whether the httpProtocolOptions field is set.
*/
boolean hasHttpProtocolOptions();
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
* @return The httpProtocolOptions.
*/
io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions getHttpProtocolOptions();
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
*/
io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptionsOrBuilder getHttpProtocolOptionsOrBuilder();
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
* @return Whether the http2ProtocolOptions field is set.
*/
boolean hasHttp2ProtocolOptions();
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
* @return The http2ProtocolOptions.
*/
io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions getHttp2ProtocolOptions();
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
*/
io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptionsOrBuilder getHttp2ProtocolOptionsOrBuilder();
/**
*
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
*
* .envoy.config.core.v3.Http3ProtocolOptions http3_protocol_options = 3;
* @return Whether the http3ProtocolOptions field is set.
*/
boolean hasHttp3ProtocolOptions();
/**
*
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
* If this is used, the cluster will only operate on one of the possible upstream protocols.
* Note that HTTP/2 or above should generally be used for upstream gRPC clusters.
*
*
* Protobuf type {@code envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig}
*/
public static final class ExplicitHttpConfig extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig)
ExplicitHttpConfigOrBuilder {
private static final long serialVersionUID = 0L;
// Use ExplicitHttpConfig.newBuilder() to construct.
private ExplicitHttpConfig(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private ExplicitHttpConfig() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new ExplicitHttpConfig();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private ExplicitHttpConfig(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 10: {
io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.Builder subBuilder = null;
if (protocolConfigCase_ == 1) {
subBuilder = ((io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions) protocolConfig_).toBuilder();
}
protocolConfig_ =
input.readMessage(io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom((io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions) protocolConfig_);
protocolConfig_ = subBuilder.buildPartial();
}
protocolConfigCase_ = 1;
break;
}
case 18: {
io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.Builder subBuilder = null;
if (protocolConfigCase_ == 2) {
subBuilder = ((io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions) protocolConfig_).toBuilder();
}
protocolConfig_ =
input.readMessage(io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom((io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions) protocolConfig_);
protocolConfig_ = subBuilder.buildPartial();
}
protocolConfigCase_ = 2;
break;
}
case 26: {
io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions.Builder subBuilder = null;
if (protocolConfigCase_ == 3) {
subBuilder = ((io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions) protocolConfig_).toBuilder();
}
protocolConfig_ =
input.readMessage(io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom((io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions) protocolConfig_);
protocolConfig_ = subBuilder.buildPartial();
}
protocolConfigCase_ = 3;
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.extensions.upstreams.http.v3.HttpProtocolOptionsProto.internal_static_envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptionsProto.internal_static_envoy_extensions_upstreams_http_v3_HttpProtocolOptions_ExplicitHttpConfig_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig.class, io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig.Builder.class);
}
private int protocolConfigCase_ = 0;
private java.lang.Object protocolConfig_;
public enum ProtocolConfigCase
implements com.google.protobuf.Internal.EnumLite,
com.google.protobuf.AbstractMessage.InternalOneOfEnum {
HTTP_PROTOCOL_OPTIONS(1),
HTTP2_PROTOCOL_OPTIONS(2),
HTTP3_PROTOCOL_OPTIONS(3),
PROTOCOLCONFIG_NOT_SET(0);
private final int value;
private ProtocolConfigCase(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 ProtocolConfigCase valueOf(int value) {
return forNumber(value);
}
public static ProtocolConfigCase forNumber(int value) {
switch (value) {
case 1: return HTTP_PROTOCOL_OPTIONS;
case 2: return HTTP2_PROTOCOL_OPTIONS;
case 3: return HTTP3_PROTOCOL_OPTIONS;
case 0: return PROTOCOLCONFIG_NOT_SET;
default: return null;
}
}
public int getNumber() {
return this.value;
}
};
public ProtocolConfigCase
getProtocolConfigCase() {
return ProtocolConfigCase.forNumber(
protocolConfigCase_);
}
public static final int HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER = 1;
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
* @return Whether the httpProtocolOptions field is set.
*/
@java.lang.Override
public boolean hasHttpProtocolOptions() {
return protocolConfigCase_ == 1;
}
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
* @return The httpProtocolOptions.
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions getHttpProtocolOptions() {
if (protocolConfigCase_ == 1) {
return (io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions) protocolConfig_;
}
return io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.getDefaultInstance();
}
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptionsOrBuilder getHttpProtocolOptionsOrBuilder() {
if (protocolConfigCase_ == 1) {
return (io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions) protocolConfig_;
}
return io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.getDefaultInstance();
}
public static final int HTTP2_PROTOCOL_OPTIONS_FIELD_NUMBER = 2;
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
* @return Whether the http2ProtocolOptions field is set.
*/
@java.lang.Override
public boolean hasHttp2ProtocolOptions() {
return protocolConfigCase_ == 2;
}
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
* @return The http2ProtocolOptions.
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions getHttp2ProtocolOptions() {
if (protocolConfigCase_ == 2) {
return (io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions) protocolConfig_;
}
return io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.getDefaultInstance();
}
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptionsOrBuilder getHttp2ProtocolOptionsOrBuilder() {
if (protocolConfigCase_ == 2) {
return (io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions) protocolConfig_;
}
return io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.getDefaultInstance();
}
public static final int HTTP3_PROTOCOL_OPTIONS_FIELD_NUMBER = 3;
/**
*
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
*
* .envoy.config.core.v3.Http3ProtocolOptions http3_protocol_options = 3;
* @return Whether the http3ProtocolOptions field is set.
*/
@java.lang.Override
public boolean hasHttp3ProtocolOptions() {
return protocolConfigCase_ == 3;
}
/**
*
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
*
* .envoy.config.core.v3.Http3ProtocolOptions http3_protocol_options = 3;
* @return The http3ProtocolOptions.
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions getHttp3ProtocolOptions() {
if (protocolConfigCase_ == 3) {
return (io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions) protocolConfig_;
}
return io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions.getDefaultInstance();
}
/**
*
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
*
* .envoy.config.core.v3.Http3ProtocolOptions http3_protocol_options = 3;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptionsOrBuilder getHttp3ProtocolOptionsOrBuilder() {
if (protocolConfigCase_ == 3) {
return (io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions) protocolConfig_;
}
return io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions.getDefaultInstance();
}
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 (protocolConfigCase_ == 1) {
output.writeMessage(1, (io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions) protocolConfig_);
}
if (protocolConfigCase_ == 2) {
output.writeMessage(2, (io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions) protocolConfig_);
}
if (protocolConfigCase_ == 3) {
output.writeMessage(3, (io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions) protocolConfig_);
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (protocolConfigCase_ == 1) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(1, (io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions) protocolConfig_);
}
if (protocolConfigCase_ == 2) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, (io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions) protocolConfig_);
}
if (protocolConfigCase_ == 3) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, (io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions) protocolConfig_);
}
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.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig)) {
return super.equals(obj);
}
io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig other = (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig) obj;
if (!getProtocolConfigCase().equals(other.getProtocolConfigCase())) return false;
switch (protocolConfigCase_) {
case 1:
if (!getHttpProtocolOptions()
.equals(other.getHttpProtocolOptions())) return false;
break;
case 2:
if (!getHttp2ProtocolOptions()
.equals(other.getHttp2ProtocolOptions())) return false;
break;
case 3:
if (!getHttp3ProtocolOptions()
.equals(other.getHttp3ProtocolOptions())) 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();
switch (protocolConfigCase_) {
case 1:
hash = (37 * hash) + HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER;
hash = (53 * hash) + getHttpProtocolOptions().hashCode();
break;
case 2:
hash = (37 * hash) + HTTP2_PROTOCOL_OPTIONS_FIELD_NUMBER;
hash = (53 * hash) + getHttp2ProtocolOptions().hashCode();
break;
case 3:
hash = (37 * hash) + HTTP3_PROTOCOL_OPTIONS_FIELD_NUMBER;
hash = (53 * hash) + getHttp3ProtocolOptions().hashCode();
break;
case 0:
default:
}
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig 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 this is used, the cluster will only operate on one of the possible upstream protocols.
* Note that HTTP/2 or above should generally be used for upstream gRPC clusters.
*
* If this is used, the cluster can use either of the configured protocols, and
* will use whichever protocol was used by the downstream connection.
* If HTTP/3 is configured for downstream and not configured for upstream,
* HTTP/3 requests will fail over to HTTP/2.
*
*
* Protobuf type {@code envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig}
*/
public static final class UseDownstreamHttpConfig extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig)
UseDownstreamHttpConfigOrBuilder {
private static final long serialVersionUID = 0L;
// Use UseDownstreamHttpConfig.newBuilder() to construct.
private UseDownstreamHttpConfig(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private UseDownstreamHttpConfig() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new UseDownstreamHttpConfig();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private UseDownstreamHttpConfig(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 10: {
io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.Builder subBuilder = null;
if (httpProtocolOptions_ != null) {
subBuilder = httpProtocolOptions_.toBuilder();
}
httpProtocolOptions_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(httpProtocolOptions_);
httpProtocolOptions_ = subBuilder.buildPartial();
}
break;
}
case 18: {
io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.Builder subBuilder = null;
if (http2ProtocolOptions_ != null) {
subBuilder = http2ProtocolOptions_.toBuilder();
}
http2ProtocolOptions_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(http2ProtocolOptions_);
http2ProtocolOptions_ = subBuilder.buildPartial();
}
break;
}
case 26: {
io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions.Builder subBuilder = null;
if (http3ProtocolOptions_ != null) {
subBuilder = http3ProtocolOptions_.toBuilder();
}
http3ProtocolOptions_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(http3ProtocolOptions_);
http3ProtocolOptions_ = 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.extensions.upstreams.http.v3.HttpProtocolOptionsProto.internal_static_envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptionsProto.internal_static_envoy_extensions_upstreams_http_v3_HttpProtocolOptions_UseDownstreamHttpConfig_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig.class, io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig.Builder.class);
}
public static final int HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER = 1;
private io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions httpProtocolOptions_;
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
* @return Whether the httpProtocolOptions field is set.
*/
@java.lang.Override
public boolean hasHttpProtocolOptions() {
return httpProtocolOptions_ != null;
}
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
* @return The httpProtocolOptions.
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions getHttpProtocolOptions() {
return httpProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.getDefaultInstance() : httpProtocolOptions_;
}
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptionsOrBuilder getHttpProtocolOptionsOrBuilder() {
return getHttpProtocolOptions();
}
public static final int HTTP2_PROTOCOL_OPTIONS_FIELD_NUMBER = 2;
private io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions http2ProtocolOptions_;
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
* @return Whether the http2ProtocolOptions field is set.
*/
@java.lang.Override
public boolean hasHttp2ProtocolOptions() {
return http2ProtocolOptions_ != null;
}
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
* @return The http2ProtocolOptions.
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions getHttp2ProtocolOptions() {
return http2ProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.getDefaultInstance() : http2ProtocolOptions_;
}
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptionsOrBuilder getHttp2ProtocolOptionsOrBuilder() {
return getHttp2ProtocolOptions();
}
public static final int HTTP3_PROTOCOL_OPTIONS_FIELD_NUMBER = 3;
private io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions http3ProtocolOptions_;
/**
*
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
*
* .envoy.config.core.v3.Http3ProtocolOptions http3_protocol_options = 3;
* @return Whether the http3ProtocolOptions field is set.
*/
@java.lang.Override
public boolean hasHttp3ProtocolOptions() {
return http3ProtocolOptions_ != null;
}
/**
*
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
*
* .envoy.config.core.v3.Http3ProtocolOptions http3_protocol_options = 3;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptionsOrBuilder getHttp3ProtocolOptionsOrBuilder() {
return getHttp3ProtocolOptions();
}
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 (httpProtocolOptions_ != null) {
output.writeMessage(1, getHttpProtocolOptions());
}
if (http2ProtocolOptions_ != null) {
output.writeMessage(2, getHttp2ProtocolOptions());
}
if (http3ProtocolOptions_ != null) {
output.writeMessage(3, getHttp3ProtocolOptions());
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (httpProtocolOptions_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(1, getHttpProtocolOptions());
}
if (http2ProtocolOptions_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, getHttp2ProtocolOptions());
}
if (http3ProtocolOptions_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, getHttp3ProtocolOptions());
}
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.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig)) {
return super.equals(obj);
}
io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig other = (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig) obj;
if (hasHttpProtocolOptions() != other.hasHttpProtocolOptions()) return false;
if (hasHttpProtocolOptions()) {
if (!getHttpProtocolOptions()
.equals(other.getHttpProtocolOptions())) return false;
}
if (hasHttp2ProtocolOptions() != other.hasHttp2ProtocolOptions()) return false;
if (hasHttp2ProtocolOptions()) {
if (!getHttp2ProtocolOptions()
.equals(other.getHttp2ProtocolOptions())) return false;
}
if (hasHttp3ProtocolOptions() != other.hasHttp3ProtocolOptions()) return false;
if (hasHttp3ProtocolOptions()) {
if (!getHttp3ProtocolOptions()
.equals(other.getHttp3ProtocolOptions())) 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 (hasHttpProtocolOptions()) {
hash = (37 * hash) + HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER;
hash = (53 * hash) + getHttpProtocolOptions().hashCode();
}
if (hasHttp2ProtocolOptions()) {
hash = (37 * hash) + HTTP2_PROTOCOL_OPTIONS_FIELD_NUMBER;
hash = (53 * hash) + getHttp2ProtocolOptions().hashCode();
}
if (hasHttp3ProtocolOptions()) {
hash = (37 * hash) + HTTP3_PROTOCOL_OPTIONS_FIELD_NUMBER;
hash = (53 * hash) + getHttp3ProtocolOptions().hashCode();
}
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig 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 this is used, the cluster can use either of the configured protocols, and
* will use whichever protocol was used by the downstream connection.
* If HTTP/3 is configured for downstream and not configured for upstream,
* HTTP/3 requests will fail over to HTTP/2.
*
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
*
* .envoy.config.core.v3.Http3ProtocolOptions http3_protocol_options = 3;
*/
private com.google.protobuf.SingleFieldBuilderV3<
io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions, io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions.Builder, io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptionsOrBuilder>
getHttp3ProtocolOptionsFieldBuilder() {
if (http3ProtocolOptionsBuilder_ == null) {
http3ProtocolOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions, io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions.Builder, io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptionsOrBuilder>(
getHttp3ProtocolOptions(),
getParentForChildren(),
isClean());
http3ProtocolOptions_ = null;
}
return http3ProtocolOptionsBuilder_;
}
@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.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig)
}
// @@protoc_insertion_point(class_scope:envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig)
private static final io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig();
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public UseDownstreamHttpConfig parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new UseDownstreamHttpConfig(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.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
public interface AutoHttpConfigOrBuilder extends
// @@protoc_insertion_point(interface_extends:envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig)
com.google.protobuf.MessageOrBuilder {
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
* @return Whether the httpProtocolOptions field is set.
*/
boolean hasHttpProtocolOptions();
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
* @return The httpProtocolOptions.
*/
io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions getHttpProtocolOptions();
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
*/
io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptionsOrBuilder getHttpProtocolOptionsOrBuilder();
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
* @return Whether the http2ProtocolOptions field is set.
*/
boolean hasHttp2ProtocolOptions();
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
* @return The http2ProtocolOptions.
*/
io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions getHttp2ProtocolOptions();
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
*/
io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptionsOrBuilder getHttp2ProtocolOptionsOrBuilder();
/**
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
*
* .envoy.config.core.v3.Http3ProtocolOptions http3_protocol_options = 3;
* @return Whether the http3ProtocolOptions field is set.
*/
boolean hasHttp3ProtocolOptions();
/**
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
*
* .envoy.config.core.v3.AlternateProtocolsCacheOptions alternate_protocols_cache_options = 4;
* @return Whether the alternateProtocolsCacheOptions field is set.
*/
boolean hasAlternateProtocolsCacheOptions();
/**
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
* If this is used, the cluster can use either HTTP/1 or HTTP/2, and will use whichever
* protocol is negotiated by ALPN with the upstream.
* Clusters configured with ``AutoHttpConfig`` will use the highest available
* protocol; HTTP/2 if supported, otherwise HTTP/1.
* If the upstream does not support ALPN, ``AutoHttpConfig`` will fail over to HTTP/1.
* This can only be used with transport sockets which support ALPN. Using a
* transport socket which does not support ALPN will result in configuration
* failure. The transport layer may be configured with custom ALPN, but the default ALPN
* for the cluster (or if custom ALPN fails) will be "h2,http/1.1".
*
*
* Protobuf type {@code envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig}
*/
public static final class AutoHttpConfig extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig)
AutoHttpConfigOrBuilder {
private static final long serialVersionUID = 0L;
// Use AutoHttpConfig.newBuilder() to construct.
private AutoHttpConfig(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private AutoHttpConfig() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new AutoHttpConfig();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private AutoHttpConfig(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 10: {
io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.Builder subBuilder = null;
if (httpProtocolOptions_ != null) {
subBuilder = httpProtocolOptions_.toBuilder();
}
httpProtocolOptions_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(httpProtocolOptions_);
httpProtocolOptions_ = subBuilder.buildPartial();
}
break;
}
case 18: {
io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.Builder subBuilder = null;
if (http2ProtocolOptions_ != null) {
subBuilder = http2ProtocolOptions_.toBuilder();
}
http2ProtocolOptions_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(http2ProtocolOptions_);
http2ProtocolOptions_ = subBuilder.buildPartial();
}
break;
}
case 26: {
io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions.Builder subBuilder = null;
if (http3ProtocolOptions_ != null) {
subBuilder = http3ProtocolOptions_.toBuilder();
}
http3ProtocolOptions_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(http3ProtocolOptions_);
http3ProtocolOptions_ = subBuilder.buildPartial();
}
break;
}
case 34: {
io.envoyproxy.envoy.config.core.v3.AlternateProtocolsCacheOptions.Builder subBuilder = null;
if (alternateProtocolsCacheOptions_ != null) {
subBuilder = alternateProtocolsCacheOptions_.toBuilder();
}
alternateProtocolsCacheOptions_ = input.readMessage(io.envoyproxy.envoy.config.core.v3.AlternateProtocolsCacheOptions.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(alternateProtocolsCacheOptions_);
alternateProtocolsCacheOptions_ = 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.extensions.upstreams.http.v3.HttpProtocolOptionsProto.internal_static_envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptionsProto.internal_static_envoy_extensions_upstreams_http_v3_HttpProtocolOptions_AutoHttpConfig_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig.class, io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig.Builder.class);
}
public static final int HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER = 1;
private io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions httpProtocolOptions_;
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
* @return Whether the httpProtocolOptions field is set.
*/
@java.lang.Override
public boolean hasHttpProtocolOptions() {
return httpProtocolOptions_ != null;
}
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
* @return The httpProtocolOptions.
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions getHttpProtocolOptions() {
return httpProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptions.getDefaultInstance() : httpProtocolOptions_;
}
/**
* .envoy.config.core.v3.Http1ProtocolOptions http_protocol_options = 1;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http1ProtocolOptionsOrBuilder getHttpProtocolOptionsOrBuilder() {
return getHttpProtocolOptions();
}
public static final int HTTP2_PROTOCOL_OPTIONS_FIELD_NUMBER = 2;
private io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions http2ProtocolOptions_;
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
* @return Whether the http2ProtocolOptions field is set.
*/
@java.lang.Override
public boolean hasHttp2ProtocolOptions() {
return http2ProtocolOptions_ != null;
}
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
* @return The http2ProtocolOptions.
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions getHttp2ProtocolOptions() {
return http2ProtocolOptions_ == null ? io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptions.getDefaultInstance() : http2ProtocolOptions_;
}
/**
* .envoy.config.core.v3.Http2ProtocolOptions http2_protocol_options = 2;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http2ProtocolOptionsOrBuilder getHttp2ProtocolOptionsOrBuilder() {
return getHttp2ProtocolOptions();
}
public static final int HTTP3_PROTOCOL_OPTIONS_FIELD_NUMBER = 3;
private io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions http3ProtocolOptions_;
/**
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
*
* .envoy.config.core.v3.Http3ProtocolOptions http3_protocol_options = 3;
* @return Whether the http3ProtocolOptions field is set.
*/
@java.lang.Override
public boolean hasHttp3ProtocolOptions() {
return http3ProtocolOptions_ != null;
}
/**
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
*
* .envoy.config.core.v3.Http3ProtocolOptions http3_protocol_options = 3;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptionsOrBuilder getHttp3ProtocolOptionsOrBuilder() {
return getHttp3ProtocolOptions();
}
public static final int ALTERNATE_PROTOCOLS_CACHE_OPTIONS_FIELD_NUMBER = 4;
private io.envoyproxy.envoy.config.core.v3.AlternateProtocolsCacheOptions alternateProtocolsCacheOptions_;
/**
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
*
* .envoy.config.core.v3.AlternateProtocolsCacheOptions alternate_protocols_cache_options = 4;
* @return Whether the alternateProtocolsCacheOptions field is set.
*/
@java.lang.Override
public boolean hasAlternateProtocolsCacheOptions() {
return alternateProtocolsCacheOptions_ != null;
}
/**
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
*
* .envoy.config.core.v3.AlternateProtocolsCacheOptions alternate_protocols_cache_options = 4;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.AlternateProtocolsCacheOptionsOrBuilder getAlternateProtocolsCacheOptionsOrBuilder() {
return getAlternateProtocolsCacheOptions();
}
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 (httpProtocolOptions_ != null) {
output.writeMessage(1, getHttpProtocolOptions());
}
if (http2ProtocolOptions_ != null) {
output.writeMessage(2, getHttp2ProtocolOptions());
}
if (http3ProtocolOptions_ != null) {
output.writeMessage(3, getHttp3ProtocolOptions());
}
if (alternateProtocolsCacheOptions_ != null) {
output.writeMessage(4, getAlternateProtocolsCacheOptions());
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (httpProtocolOptions_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(1, getHttpProtocolOptions());
}
if (http2ProtocolOptions_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, getHttp2ProtocolOptions());
}
if (http3ProtocolOptions_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, getHttp3ProtocolOptions());
}
if (alternateProtocolsCacheOptions_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(4, getAlternateProtocolsCacheOptions());
}
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.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig)) {
return super.equals(obj);
}
io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig other = (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig) obj;
if (hasHttpProtocolOptions() != other.hasHttpProtocolOptions()) return false;
if (hasHttpProtocolOptions()) {
if (!getHttpProtocolOptions()
.equals(other.getHttpProtocolOptions())) return false;
}
if (hasHttp2ProtocolOptions() != other.hasHttp2ProtocolOptions()) return false;
if (hasHttp2ProtocolOptions()) {
if (!getHttp2ProtocolOptions()
.equals(other.getHttp2ProtocolOptions())) return false;
}
if (hasHttp3ProtocolOptions() != other.hasHttp3ProtocolOptions()) return false;
if (hasHttp3ProtocolOptions()) {
if (!getHttp3ProtocolOptions()
.equals(other.getHttp3ProtocolOptions())) return false;
}
if (hasAlternateProtocolsCacheOptions() != other.hasAlternateProtocolsCacheOptions()) return false;
if (hasAlternateProtocolsCacheOptions()) {
if (!getAlternateProtocolsCacheOptions()
.equals(other.getAlternateProtocolsCacheOptions())) 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 (hasHttpProtocolOptions()) {
hash = (37 * hash) + HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER;
hash = (53 * hash) + getHttpProtocolOptions().hashCode();
}
if (hasHttp2ProtocolOptions()) {
hash = (37 * hash) + HTTP2_PROTOCOL_OPTIONS_FIELD_NUMBER;
hash = (53 * hash) + getHttp2ProtocolOptions().hashCode();
}
if (hasHttp3ProtocolOptions()) {
hash = (37 * hash) + HTTP3_PROTOCOL_OPTIONS_FIELD_NUMBER;
hash = (53 * hash) + getHttp3ProtocolOptions().hashCode();
}
if (hasAlternateProtocolsCacheOptions()) {
hash = (37 * hash) + ALTERNATE_PROTOCOLS_CACHE_OPTIONS_FIELD_NUMBER;
hash = (53 * hash) + getAlternateProtocolsCacheOptions().hashCode();
}
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig 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.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig 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 this is used, the cluster can use either HTTP/1 or HTTP/2, and will use whichever
* protocol is negotiated by ALPN with the upstream.
* Clusters configured with ``AutoHttpConfig`` will use the highest available
* protocol; HTTP/2 if supported, otherwise HTTP/1.
* If the upstream does not support ALPN, ``AutoHttpConfig`` will fail over to HTTP/1.
* This can only be used with transport sockets which support ALPN. Using a
* transport socket which does not support ALPN will result in configuration
* failure. The transport layer may be configured with custom ALPN, but the default ALPN
* for the cluster (or if custom ALPN fails) will be "h2,http/1.1".
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
*
* .envoy.config.core.v3.Http3ProtocolOptions http3_protocol_options = 3;
* @return Whether the http3ProtocolOptions field is set.
*/
public boolean hasHttp3ProtocolOptions() {
return http3ProtocolOptionsBuilder_ != null || http3ProtocolOptions_ != null;
}
/**
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
*
* .envoy.config.core.v3.Http3ProtocolOptions http3_protocol_options = 3;
*/
public Builder setHttp3ProtocolOptions(io.envoyproxy.envoy.config.core.v3.Http3ProtocolOptions value) {
if (http3ProtocolOptionsBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
http3ProtocolOptions_ = value;
onChanged();
} else {
http3ProtocolOptionsBuilder_.setMessage(value);
}
return this;
}
/**
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
* Unlike HTTP/1 and HTTP/2, HTTP/3 will not be configured unless it is
* present, and (soon) only if there is an indication of server side
* support.
* See :ref:`here <arch_overview_http3_upstream>` for more information on
* when HTTP/3 will be used, and when Envoy will fail over to TCP.
* .. warning::
* QUIC upstream support is currently not ready for internet use.
* Please see :ref:`here <arch_overview_http3>` for details.
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
*
* .envoy.config.core.v3.AlternateProtocolsCacheOptions alternate_protocols_cache_options = 4;
* @return Whether the alternateProtocolsCacheOptions field is set.
*/
public boolean hasAlternateProtocolsCacheOptions() {
return alternateProtocolsCacheOptionsBuilder_ != null || alternateProtocolsCacheOptions_ != null;
}
/**
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
*
* .envoy.config.core.v3.AlternateProtocolsCacheOptions alternate_protocols_cache_options = 4;
*/
public Builder setAlternateProtocolsCacheOptions(io.envoyproxy.envoy.config.core.v3.AlternateProtocolsCacheOptions value) {
if (alternateProtocolsCacheOptionsBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
alternateProtocolsCacheOptions_ = value;
onChanged();
} else {
alternateProtocolsCacheOptionsBuilder_.setMessage(value);
}
return this;
}
/**
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
* The presence of alternate protocols cache options causes the use of the
* alternate protocols cache, which is responsible for parsing and caching
* HTTP Alt-Svc headers. This enables the use of HTTP/3 for origins that
* advertise supporting it.
* .. note::
* This is required when HTTP/3 is enabled.
*
*
* .envoy.config.core.v3.AlternateProtocolsCacheOptions alternate_protocols_cache_options = 4;
*/
private com.google.protobuf.SingleFieldBuilderV3<
io.envoyproxy.envoy.config.core.v3.AlternateProtocolsCacheOptions, io.envoyproxy.envoy.config.core.v3.AlternateProtocolsCacheOptions.Builder, io.envoyproxy.envoy.config.core.v3.AlternateProtocolsCacheOptionsOrBuilder>
getAlternateProtocolsCacheOptionsFieldBuilder() {
if (alternateProtocolsCacheOptionsBuilder_ == null) {
alternateProtocolsCacheOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
io.envoyproxy.envoy.config.core.v3.AlternateProtocolsCacheOptions, io.envoyproxy.envoy.config.core.v3.AlternateProtocolsCacheOptions.Builder, io.envoyproxy.envoy.config.core.v3.AlternateProtocolsCacheOptionsOrBuilder>(
getAlternateProtocolsCacheOptions(),
getParentForChildren(),
isClean());
alternateProtocolsCacheOptions_ = null;
}
return alternateProtocolsCacheOptionsBuilder_;
}
@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.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig)
}
// @@protoc_insertion_point(class_scope:envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig)
private static final io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig();
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public AutoHttpConfig parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new AutoHttpConfig(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.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private int upstreamProtocolOptionsCase_ = 0;
private java.lang.Object upstreamProtocolOptions_;
public enum UpstreamProtocolOptionsCase
implements com.google.protobuf.Internal.EnumLite,
com.google.protobuf.AbstractMessage.InternalOneOfEnum {
EXPLICIT_HTTP_CONFIG(3),
USE_DOWNSTREAM_PROTOCOL_CONFIG(4),
AUTO_CONFIG(5),
UPSTREAMPROTOCOLOPTIONS_NOT_SET(0);
private final int value;
private UpstreamProtocolOptionsCase(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 UpstreamProtocolOptionsCase valueOf(int value) {
return forNumber(value);
}
public static UpstreamProtocolOptionsCase forNumber(int value) {
switch (value) {
case 3: return EXPLICIT_HTTP_CONFIG;
case 4: return USE_DOWNSTREAM_PROTOCOL_CONFIG;
case 5: return AUTO_CONFIG;
case 0: return UPSTREAMPROTOCOLOPTIONS_NOT_SET;
default: return null;
}
}
public int getNumber() {
return this.value;
}
};
public UpstreamProtocolOptionsCase
getUpstreamProtocolOptionsCase() {
return UpstreamProtocolOptionsCase.forNumber(
upstreamProtocolOptionsCase_);
}
public static final int COMMON_HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER = 1;
private io.envoyproxy.envoy.config.core.v3.HttpProtocolOptions commonHttpProtocolOptions_;
/**
*
* This contains options common across HTTP/1 and HTTP/2
*
*
* .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 1;
* @return Whether the commonHttpProtocolOptions field is set.
*/
@java.lang.Override
public boolean hasCommonHttpProtocolOptions() {
return commonHttpProtocolOptions_ != null;
}
/**
*
* This contains options common across HTTP/1 and HTTP/2
*
* This contains common protocol options which are only applied upstream.
*
*
* .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 2;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.UpstreamHttpProtocolOptionsOrBuilder getUpstreamHttpProtocolOptionsOrBuilder() {
return getUpstreamHttpProtocolOptions();
}
public static final int EXPLICIT_HTTP_CONFIG_FIELD_NUMBER = 3;
/**
*
* To explicitly configure either HTTP/1 or HTTP/2 (but not both!) use ``explicit_http_config``.
* If the ``explicit_http_config`` is empty, HTTP/1.1 is used.
*
*
* .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig explicit_http_config = 3;
* @return Whether the explicitHttpConfig field is set.
*/
@java.lang.Override
public boolean hasExplicitHttpConfig() {
return upstreamProtocolOptionsCase_ == 3;
}
/**
*
* To explicitly configure either HTTP/1 or HTTP/2 (but not both!) use ``explicit_http_config``.
* If the ``explicit_http_config`` is empty, HTTP/1.1 is used.
*
*
* .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig explicit_http_config = 3;
* @return The explicitHttpConfig.
*/
@java.lang.Override
public io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig getExplicitHttpConfig() {
if (upstreamProtocolOptionsCase_ == 3) {
return (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig) upstreamProtocolOptions_;
}
return io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig.getDefaultInstance();
}
/**
*
* To explicitly configure either HTTP/1 or HTTP/2 (but not both!) use ``explicit_http_config``.
* If the ``explicit_http_config`` is empty, HTTP/1.1 is used.
*
*
* .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig explicit_http_config = 3;
*/
@java.lang.Override
public io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfigOrBuilder getExplicitHttpConfigOrBuilder() {
if (upstreamProtocolOptionsCase_ == 3) {
return (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig) upstreamProtocolOptions_;
}
return io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig.getDefaultInstance();
}
public static final int USE_DOWNSTREAM_PROTOCOL_CONFIG_FIELD_NUMBER = 4;
/**
*
* This allows switching on protocol based on what protocol the downstream
* connection used.
*
*
* .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig use_downstream_protocol_config = 4;
* @return Whether the useDownstreamProtocolConfig field is set.
*/
@java.lang.Override
public boolean hasUseDownstreamProtocolConfig() {
return upstreamProtocolOptionsCase_ == 4;
}
/**
*
* This allows switching on protocol based on what protocol the downstream
* connection used.
*
*
* .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig use_downstream_protocol_config = 4;
* @return The useDownstreamProtocolConfig.
*/
@java.lang.Override
public io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig getUseDownstreamProtocolConfig() {
if (upstreamProtocolOptionsCase_ == 4) {
return (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig) upstreamProtocolOptions_;
}
return io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig.getDefaultInstance();
}
/**
*
* This allows switching on protocol based on what protocol the downstream
* connection used.
*
*
* .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig use_downstream_protocol_config = 4;
*/
@java.lang.Override
public io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfigOrBuilder getUseDownstreamProtocolConfigOrBuilder() {
if (upstreamProtocolOptionsCase_ == 4) {
return (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig) upstreamProtocolOptions_;
}
return io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig.getDefaultInstance();
}
public static final int AUTO_CONFIG_FIELD_NUMBER = 5;
/**
*
* This allows switching on protocol based on ALPN
*
*
* .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig auto_config = 5;
* @return Whether the autoConfig field is set.
*/
@java.lang.Override
public boolean hasAutoConfig() {
return upstreamProtocolOptionsCase_ == 5;
}
/**
*
* This allows switching on protocol based on ALPN
*
*
* .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig auto_config = 5;
* @return The autoConfig.
*/
@java.lang.Override
public io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig getAutoConfig() {
if (upstreamProtocolOptionsCase_ == 5) {
return (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig) upstreamProtocolOptions_;
}
return io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig.getDefaultInstance();
}
/**
*
* This allows switching on protocol based on ALPN
*
*
* .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig auto_config = 5;
*/
@java.lang.Override
public io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfigOrBuilder getAutoConfigOrBuilder() {
if (upstreamProtocolOptionsCase_ == 5) {
return (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig) upstreamProtocolOptions_;
}
return io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig.getDefaultInstance();
}
public static final int HTTP_FILTERS_FIELD_NUMBER = 6;
private java.util.List httpFilters_;
/**
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
*
* repeated .envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter http_filters = 6;
*/
@java.lang.Override
public int getHttpFiltersCount() {
return httpFilters_.size();
}
/**
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
*
* repeated .envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter http_filters = 6;
*/
@java.lang.Override
public io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilterOrBuilder getHttpFiltersOrBuilder(
int index) {
return httpFilters_.get(index);
}
public static final int HEADER_VALIDATION_CONFIG_FIELD_NUMBER = 7;
private io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig headerValidationConfig_;
/**
*
* Configuration options for Unified Header Validation (UHV).
* UHV is an extensible mechanism for checking validity of HTTP responses.
* [#comment:TODO(yanavlasov): Make it a link to the default header validator doc when it becomes visible.]
* Leaving this field unspecified, selects the default header validator ``envoy.http.header_validators.envoy_default``.
* [#not-implemented-hide:]
* [#extension-category: envoy.http.header_validators]
*
*
* .envoy.config.core.v3.TypedExtensionConfig header_validation_config = 7;
* @return Whether the headerValidationConfig field is set.
*/
@java.lang.Override
public boolean hasHeaderValidationConfig() {
return headerValidationConfig_ != null;
}
/**
*
* Configuration options for Unified Header Validation (UHV).
* UHV is an extensible mechanism for checking validity of HTTP responses.
* [#comment:TODO(yanavlasov): Make it a link to the default header validator doc when it becomes visible.]
* Leaving this field unspecified, selects the default header validator ``envoy.http.header_validators.envoy_default``.
* [#not-implemented-hide:]
* [#extension-category: envoy.http.header_validators]
*
* Configuration options for Unified Header Validation (UHV).
* UHV is an extensible mechanism for checking validity of HTTP responses.
* [#comment:TODO(yanavlasov): Make it a link to the default header validator doc when it becomes visible.]
* Leaving this field unspecified, selects the default header validator ``envoy.http.header_validators.envoy_default``.
* [#not-implemented-hide:]
* [#extension-category: envoy.http.header_validators]
*
*
* .envoy.config.core.v3.TypedExtensionConfig header_validation_config = 7;
*/
@java.lang.Override
public io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder getHeaderValidationConfigOrBuilder() {
return getHeaderValidationConfig();
}
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 (commonHttpProtocolOptions_ != null) {
output.writeMessage(1, getCommonHttpProtocolOptions());
}
if (upstreamHttpProtocolOptions_ != null) {
output.writeMessage(2, getUpstreamHttpProtocolOptions());
}
if (upstreamProtocolOptionsCase_ == 3) {
output.writeMessage(3, (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig) upstreamProtocolOptions_);
}
if (upstreamProtocolOptionsCase_ == 4) {
output.writeMessage(4, (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig) upstreamProtocolOptions_);
}
if (upstreamProtocolOptionsCase_ == 5) {
output.writeMessage(5, (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig) upstreamProtocolOptions_);
}
for (int i = 0; i < httpFilters_.size(); i++) {
output.writeMessage(6, httpFilters_.get(i));
}
if (headerValidationConfig_ != null) {
output.writeMessage(7, getHeaderValidationConfig());
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (commonHttpProtocolOptions_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(1, getCommonHttpProtocolOptions());
}
if (upstreamHttpProtocolOptions_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, getUpstreamHttpProtocolOptions());
}
if (upstreamProtocolOptionsCase_ == 3) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig) upstreamProtocolOptions_);
}
if (upstreamProtocolOptionsCase_ == 4) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(4, (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.UseDownstreamHttpConfig) upstreamProtocolOptions_);
}
if (upstreamProtocolOptionsCase_ == 5) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(5, (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig) upstreamProtocolOptions_);
}
for (int i = 0; i < httpFilters_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(6, httpFilters_.get(i));
}
if (headerValidationConfig_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(7, getHeaderValidationConfig());
}
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.extensions.upstreams.http.v3.HttpProtocolOptions)) {
return super.equals(obj);
}
io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions other = (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions) obj;
if (hasCommonHttpProtocolOptions() != other.hasCommonHttpProtocolOptions()) return false;
if (hasCommonHttpProtocolOptions()) {
if (!getCommonHttpProtocolOptions()
.equals(other.getCommonHttpProtocolOptions())) return false;
}
if (hasUpstreamHttpProtocolOptions() != other.hasUpstreamHttpProtocolOptions()) return false;
if (hasUpstreamHttpProtocolOptions()) {
if (!getUpstreamHttpProtocolOptions()
.equals(other.getUpstreamHttpProtocolOptions())) return false;
}
if (!getHttpFiltersList()
.equals(other.getHttpFiltersList())) return false;
if (hasHeaderValidationConfig() != other.hasHeaderValidationConfig()) return false;
if (hasHeaderValidationConfig()) {
if (!getHeaderValidationConfig()
.equals(other.getHeaderValidationConfig())) return false;
}
if (!getUpstreamProtocolOptionsCase().equals(other.getUpstreamProtocolOptionsCase())) return false;
switch (upstreamProtocolOptionsCase_) {
case 3:
if (!getExplicitHttpConfig()
.equals(other.getExplicitHttpConfig())) return false;
break;
case 4:
if (!getUseDownstreamProtocolConfig()
.equals(other.getUseDownstreamProtocolConfig())) return false;
break;
case 5:
if (!getAutoConfig()
.equals(other.getAutoConfig())) 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 (hasCommonHttpProtocolOptions()) {
hash = (37 * hash) + COMMON_HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER;
hash = (53 * hash) + getCommonHttpProtocolOptions().hashCode();
}
if (hasUpstreamHttpProtocolOptions()) {
hash = (37 * hash) + UPSTREAM_HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER;
hash = (53 * hash) + getUpstreamHttpProtocolOptions().hashCode();
}
if (getHttpFiltersCount() > 0) {
hash = (37 * hash) + HTTP_FILTERS_FIELD_NUMBER;
hash = (53 * hash) + getHttpFiltersList().hashCode();
}
if (hasHeaderValidationConfig()) {
hash = (37 * hash) + HEADER_VALIDATION_CONFIG_FIELD_NUMBER;
hash = (53 * hash) + getHeaderValidationConfig().hashCode();
}
switch (upstreamProtocolOptionsCase_) {
case 3:
hash = (37 * hash) + EXPLICIT_HTTP_CONFIG_FIELD_NUMBER;
hash = (53 * hash) + getExplicitHttpConfig().hashCode();
break;
case 4:
hash = (37 * hash) + USE_DOWNSTREAM_PROTOCOL_CONFIG_FIELD_NUMBER;
hash = (53 * hash) + getUseDownstreamProtocolConfig().hashCode();
break;
case 5:
hash = (37 * hash) + AUTO_CONFIG_FIELD_NUMBER;
hash = (53 * hash) + getAutoConfig().hashCode();
break;
case 0:
default:
}
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions 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.extensions.upstreams.http.v3.HttpProtocolOptions parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions 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.extensions.upstreams.http.v3.HttpProtocolOptions parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions 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.extensions.upstreams.http.v3.HttpProtocolOptions parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions 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.extensions.upstreams.http.v3.HttpProtocolOptions parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions 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.extensions.upstreams.http.v3.HttpProtocolOptions 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;
}
/**
*
* HttpProtocolOptions specifies Http upstream protocol options. This object
* is used in
* :ref:`typed_extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`,
* keyed by the name ``envoy.extensions.upstreams.http.v3.HttpProtocolOptions``.
* This controls what protocol(s) should be used for upstream and how said protocol(s) are configured.
* This replaces the prior pattern of explicit protocol configuration directly
* in the cluster. So a configuration like this, explicitly configuring the use of HTTP/2 upstream:
* .. code::
* clusters:
* - name: some_service
* connect_timeout: 5s
* upstream_http_protocol_options:
* auto_sni: true
* common_http_protocol_options:
* idle_timeout: 1s
* http2_protocol_options:
* max_concurrent_streams: 100
* .... [further cluster config]
* Would now look like this:
* .. code::
* clusters:
* - name: some_service
* connect_timeout: 5s
* typed_extension_protocol_options:
* envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
* "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
* upstream_http_protocol_options:
* auto_sni: true
* common_http_protocol_options:
* idle_timeout: 1s
* explicit_http_config:
* http2_protocol_options:
* max_concurrent_streams: 100
* .... [further cluster config]
* [#next-free-field: 8]
*
* To explicitly configure either HTTP/1 or HTTP/2 (but not both!) use ``explicit_http_config``.
* If the ``explicit_http_config`` is empty, HTTP/1.1 is used.
*
*
* .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig explicit_http_config = 3;
* @return Whether the explicitHttpConfig field is set.
*/
@java.lang.Override
public boolean hasExplicitHttpConfig() {
return upstreamProtocolOptionsCase_ == 3;
}
/**
*
* To explicitly configure either HTTP/1 or HTTP/2 (but not both!) use ``explicit_http_config``.
* If the ``explicit_http_config`` is empty, HTTP/1.1 is used.
*
*
* .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig explicit_http_config = 3;
* @return The explicitHttpConfig.
*/
@java.lang.Override
public io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig getExplicitHttpConfig() {
if (explicitHttpConfigBuilder_ == null) {
if (upstreamProtocolOptionsCase_ == 3) {
return (io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig) upstreamProtocolOptions_;
}
return io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig.getDefaultInstance();
} else {
if (upstreamProtocolOptionsCase_ == 3) {
return explicitHttpConfigBuilder_.getMessage();
}
return io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig.getDefaultInstance();
}
}
/**
*
* To explicitly configure either HTTP/1 or HTTP/2 (but not both!) use ``explicit_http_config``.
* If the ``explicit_http_config`` is empty, HTTP/1.1 is used.
*
* To explicitly configure either HTTP/1 or HTTP/2 (but not both!) use ``explicit_http_config``.
* If the ``explicit_http_config`` is empty, HTTP/1.1 is used.
*
* To explicitly configure either HTTP/1 or HTTP/2 (but not both!) use ``explicit_http_config``.
* If the ``explicit_http_config`` is empty, HTTP/1.1 is used.
*
* To explicitly configure either HTTP/1 or HTTP/2 (but not both!) use ``explicit_http_config``.
* If the ``explicit_http_config`` is empty, HTTP/1.1 is used.
*
* To explicitly configure either HTTP/1 or HTTP/2 (but not both!) use ``explicit_http_config``.
* If the ``explicit_http_config`` is empty, HTTP/1.1 is used.
*
* To explicitly configure either HTTP/1 or HTTP/2 (but not both!) use ``explicit_http_config``.
* If the ``explicit_http_config`` is empty, HTTP/1.1 is used.
*
* To explicitly configure either HTTP/1 or HTTP/2 (but not both!) use ``explicit_http_config``.
* If the ``explicit_http_config`` is empty, HTTP/1.1 is used.
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
*
* repeated .envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter http_filters = 6;
*/
public int getHttpFiltersCount() {
if (httpFiltersBuilder_ == null) {
return httpFilters_.size();
} else {
return httpFiltersBuilder_.getCount();
}
}
/**
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
*
* repeated .envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter http_filters = 6;
*/
public Builder setHttpFilters(
int index, io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter value) {
if (httpFiltersBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureHttpFiltersIsMutable();
httpFilters_.set(index, value);
onChanged();
} else {
httpFiltersBuilder_.setMessage(index, value);
}
return this;
}
/**
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
*
* repeated .envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter http_filters = 6;
*/
public Builder addHttpFilters(io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter value) {
if (httpFiltersBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureHttpFiltersIsMutable();
httpFilters_.add(value);
onChanged();
} else {
httpFiltersBuilder_.addMessage(value);
}
return this;
}
/**
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
*
* repeated .envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter http_filters = 6;
*/
public Builder addHttpFilters(
int index, io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter value) {
if (httpFiltersBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureHttpFiltersIsMutable();
httpFilters_.add(index, value);
onChanged();
} else {
httpFiltersBuilder_.addMessage(index, value);
}
return this;
}
/**
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
*
* repeated .envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter http_filters = 6;
*/
public io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter.Builder getHttpFiltersBuilder(
int index) {
return getHttpFiltersFieldBuilder().getBuilder(index);
}
/**
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
*
* repeated .envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter http_filters = 6;
*/
public io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilterOrBuilder getHttpFiltersOrBuilder(
int index) {
if (httpFiltersBuilder_ == null) {
return httpFilters_.get(index); } else {
return httpFiltersBuilder_.getMessageOrBuilder(index);
}
}
/**
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* .. note::
* Upstream HTTP filters are currently in alpha.
* Optional HTTP filters for the upstream filter chain.
* These filters will be applied for all HTTP streams which flow through this
* cluster. Unlike downstream filters, they will *not* be applied to terminated CONNECT requests.
* If using upstream filters, please be aware that local errors sent by
* upstream filters will not trigger retries, and local errors sent by
* upstream filters will count as a final response if hedging is configured.
* [#extension-category: envoy.filters.http.upstream]
*
* Configuration options for Unified Header Validation (UHV).
* UHV is an extensible mechanism for checking validity of HTTP responses.
* [#comment:TODO(yanavlasov): Make it a link to the default header validator doc when it becomes visible.]
* Leaving this field unspecified, selects the default header validator ``envoy.http.header_validators.envoy_default``.
* [#not-implemented-hide:]
* [#extension-category: envoy.http.header_validators]
*
*
* .envoy.config.core.v3.TypedExtensionConfig header_validation_config = 7;
* @return Whether the headerValidationConfig field is set.
*/
public boolean hasHeaderValidationConfig() {
return headerValidationConfigBuilder_ != null || headerValidationConfig_ != null;
}
/**
*
* Configuration options for Unified Header Validation (UHV).
* UHV is an extensible mechanism for checking validity of HTTP responses.
* [#comment:TODO(yanavlasov): Make it a link to the default header validator doc when it becomes visible.]
* Leaving this field unspecified, selects the default header validator ``envoy.http.header_validators.envoy_default``.
* [#not-implemented-hide:]
* [#extension-category: envoy.http.header_validators]
*
* Configuration options for Unified Header Validation (UHV).
* UHV is an extensible mechanism for checking validity of HTTP responses.
* [#comment:TODO(yanavlasov): Make it a link to the default header validator doc when it becomes visible.]
* Leaving this field unspecified, selects the default header validator ``envoy.http.header_validators.envoy_default``.
* [#not-implemented-hide:]
* [#extension-category: envoy.http.header_validators]
*
*
* .envoy.config.core.v3.TypedExtensionConfig header_validation_config = 7;
*/
public Builder setHeaderValidationConfig(io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig value) {
if (headerValidationConfigBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
headerValidationConfig_ = value;
onChanged();
} else {
headerValidationConfigBuilder_.setMessage(value);
}
return this;
}
/**
*
* Configuration options for Unified Header Validation (UHV).
* UHV is an extensible mechanism for checking validity of HTTP responses.
* [#comment:TODO(yanavlasov): Make it a link to the default header validator doc when it becomes visible.]
* Leaving this field unspecified, selects the default header validator ``envoy.http.header_validators.envoy_default``.
* [#not-implemented-hide:]
* [#extension-category: envoy.http.header_validators]
*
* Configuration options for Unified Header Validation (UHV).
* UHV is an extensible mechanism for checking validity of HTTP responses.
* [#comment:TODO(yanavlasov): Make it a link to the default header validator doc when it becomes visible.]
* Leaving this field unspecified, selects the default header validator ``envoy.http.header_validators.envoy_default``.
* [#not-implemented-hide:]
* [#extension-category: envoy.http.header_validators]
*
* Configuration options for Unified Header Validation (UHV).
* UHV is an extensible mechanism for checking validity of HTTP responses.
* [#comment:TODO(yanavlasov): Make it a link to the default header validator doc when it becomes visible.]
* Leaving this field unspecified, selects the default header validator ``envoy.http.header_validators.envoy_default``.
* [#not-implemented-hide:]
* [#extension-category: envoy.http.header_validators]
*
* Configuration options for Unified Header Validation (UHV).
* UHV is an extensible mechanism for checking validity of HTTP responses.
* [#comment:TODO(yanavlasov): Make it a link to the default header validator doc when it becomes visible.]
* Leaving this field unspecified, selects the default header validator ``envoy.http.header_validators.envoy_default``.
* [#not-implemented-hide:]
* [#extension-category: envoy.http.header_validators]
*
* Configuration options for Unified Header Validation (UHV).
* UHV is an extensible mechanism for checking validity of HTTP responses.
* [#comment:TODO(yanavlasov): Make it a link to the default header validator doc when it becomes visible.]
* Leaving this field unspecified, selects the default header validator ``envoy.http.header_validators.envoy_default``.
* [#not-implemented-hide:]
* [#extension-category: envoy.http.header_validators]
*
* Configuration options for Unified Header Validation (UHV).
* UHV is an extensible mechanism for checking validity of HTTP responses.
* [#comment:TODO(yanavlasov): Make it a link to the default header validator doc when it becomes visible.]
* Leaving this field unspecified, selects the default header validator ``envoy.http.header_validators.envoy_default``.
* [#not-implemented-hide:]
* [#extension-category: envoy.http.header_validators]
*
*
* .envoy.config.core.v3.TypedExtensionConfig header_validation_config = 7;
*/
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>
getHeaderValidationConfigFieldBuilder() {
if (headerValidationConfigBuilder_ == null) {
headerValidationConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig.Builder, io.envoyproxy.envoy.config.core.v3.TypedExtensionConfigOrBuilder>(
getHeaderValidationConfig(),
getParentForChildren(),
isClean());
headerValidationConfig_ = null;
}
return headerValidationConfigBuilder_;
}
@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.extensions.upstreams.http.v3.HttpProtocolOptions)
}
// @@protoc_insertion_point(class_scope:envoy.extensions.upstreams.http.v3.HttpProtocolOptions)
private static final io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions();
}
public static io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public HttpProtocolOptions parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new HttpProtocolOptions(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.extensions.upstreams.http.v3.HttpProtocolOptions getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}