Class HttpProtocolOptions.Builder

  • All Implemented Interfaces:
    com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, HttpProtocolOptionsOrBuilder, Cloneable
    Enclosing class:
    HttpProtocolOptions

    public static final class HttpProtocolOptions.Builder
    extends com.google.protobuf.GeneratedMessageV3.Builder<HttpProtocolOptions.Builder>
    implements HttpProtocolOptionsOrBuilder
     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: 6]
     
    Protobuf type envoy.extensions.upstreams.http.v3.HttpProtocolOptions
    • Method Detail

      • getDescriptor

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      • internalGetFieldAccessorTable

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Specified by:
        internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<HttpProtocolOptions.Builder>
      • clear

        public HttpProtocolOptions.Builder clear()
        Specified by:
        clear in interface com.google.protobuf.Message.Builder
        Specified by:
        clear in interface com.google.protobuf.MessageLite.Builder
        Overrides:
        clear in class com.google.protobuf.GeneratedMessageV3.Builder<HttpProtocolOptions.Builder>
      • getDescriptorForType

        public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
        Specified by:
        getDescriptorForType in interface com.google.protobuf.Message.Builder
        Specified by:
        getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
        Overrides:
        getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<HttpProtocolOptions.Builder>
      • getDefaultInstanceForType

        public HttpProtocolOptions getDefaultInstanceForType()
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
      • build

        public HttpProtocolOptions build()
        Specified by:
        build in interface com.google.protobuf.Message.Builder
        Specified by:
        build in interface com.google.protobuf.MessageLite.Builder
      • buildPartial

        public HttpProtocolOptions buildPartial()
        Specified by:
        buildPartial in interface com.google.protobuf.Message.Builder
        Specified by:
        buildPartial in interface com.google.protobuf.MessageLite.Builder
      • clone

        public HttpProtocolOptions.Builder clone()
        Specified by:
        clone in interface com.google.protobuf.Message.Builder
        Specified by:
        clone in interface com.google.protobuf.MessageLite.Builder
        Overrides:
        clone in class com.google.protobuf.GeneratedMessageV3.Builder<HttpProtocolOptions.Builder>
      • setField

        public HttpProtocolOptions.Builder setField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                    Object value)
        Specified by:
        setField in interface com.google.protobuf.Message.Builder
        Overrides:
        setField in class com.google.protobuf.GeneratedMessageV3.Builder<HttpProtocolOptions.Builder>
      • clearField

        public HttpProtocolOptions.Builder clearField​(com.google.protobuf.Descriptors.FieldDescriptor field)
        Specified by:
        clearField in interface com.google.protobuf.Message.Builder
        Overrides:
        clearField in class com.google.protobuf.GeneratedMessageV3.Builder<HttpProtocolOptions.Builder>
      • clearOneof

        public HttpProtocolOptions.Builder clearOneof​(com.google.protobuf.Descriptors.OneofDescriptor oneof)
        Specified by:
        clearOneof in interface com.google.protobuf.Message.Builder
        Overrides:
        clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<HttpProtocolOptions.Builder>
      • setRepeatedField

        public HttpProtocolOptions.Builder setRepeatedField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                            int index,
                                                            Object value)
        Specified by:
        setRepeatedField in interface com.google.protobuf.Message.Builder
        Overrides:
        setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<HttpProtocolOptions.Builder>
      • addRepeatedField

        public HttpProtocolOptions.Builder addRepeatedField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                            Object value)
        Specified by:
        addRepeatedField in interface com.google.protobuf.Message.Builder
        Overrides:
        addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<HttpProtocolOptions.Builder>
      • mergeFrom

        public HttpProtocolOptions.Builder mergeFrom​(com.google.protobuf.Message other)
        Specified by:
        mergeFrom in interface com.google.protobuf.Message.Builder
        Overrides:
        mergeFrom in class com.google.protobuf.AbstractMessage.Builder<HttpProtocolOptions.Builder>
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<HttpProtocolOptions.Builder>
      • mergeFrom

        public HttpProtocolOptions.Builder mergeFrom​(com.google.protobuf.CodedInputStream input,
                                                     com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                              throws IOException
        Specified by:
        mergeFrom in interface com.google.protobuf.Message.Builder
        Specified by:
        mergeFrom in interface com.google.protobuf.MessageLite.Builder
        Overrides:
        mergeFrom in class com.google.protobuf.AbstractMessage.Builder<HttpProtocolOptions.Builder>
        Throws:
        IOException
      • hasCommonHttpProtocolOptions

        public boolean hasCommonHttpProtocolOptions()
         This contains options common across HTTP/1 and HTTP/2
         
        .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 1;
        Specified by:
        hasCommonHttpProtocolOptions in interface HttpProtocolOptionsOrBuilder
        Returns:
        Whether the commonHttpProtocolOptions field is set.
      • setCommonHttpProtocolOptions

        public HttpProtocolOptions.Builder setCommonHttpProtocolOptions​(HttpProtocolOptions value)
         This contains options common across HTTP/1 and HTTP/2
         
        .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 1;
      • setCommonHttpProtocolOptions

        public HttpProtocolOptions.Builder setCommonHttpProtocolOptions​(HttpProtocolOptions.Builder builderForValue)
         This contains options common across HTTP/1 and HTTP/2
         
        .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 1;
      • mergeCommonHttpProtocolOptions

        public HttpProtocolOptions.Builder mergeCommonHttpProtocolOptions​(HttpProtocolOptions value)
         This contains options common across HTTP/1 and HTTP/2
         
        .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 1;
      • clearCommonHttpProtocolOptions

        public HttpProtocolOptions.Builder clearCommonHttpProtocolOptions()
         This contains options common across HTTP/1 and HTTP/2
         
        .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 1;
      • getCommonHttpProtocolOptionsBuilder

        public HttpProtocolOptions.Builder getCommonHttpProtocolOptionsBuilder()
         This contains options common across HTTP/1 and HTTP/2
         
        .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 1;
      • hasUpstreamHttpProtocolOptions

        public boolean hasUpstreamHttpProtocolOptions()
         This contains common protocol options which are only applied upstream.
         
        .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 2;
        Specified by:
        hasUpstreamHttpProtocolOptions in interface HttpProtocolOptionsOrBuilder
        Returns:
        Whether the upstreamHttpProtocolOptions field is set.
      • setUpstreamHttpProtocolOptions

        public HttpProtocolOptions.Builder setUpstreamHttpProtocolOptions​(UpstreamHttpProtocolOptions value)
         This contains common protocol options which are only applied upstream.
         
        .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 2;
      • setUpstreamHttpProtocolOptions

        public HttpProtocolOptions.Builder setUpstreamHttpProtocolOptions​(UpstreamHttpProtocolOptions.Builder builderForValue)
         This contains common protocol options which are only applied upstream.
         
        .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 2;
      • mergeUpstreamHttpProtocolOptions

        public HttpProtocolOptions.Builder mergeUpstreamHttpProtocolOptions​(UpstreamHttpProtocolOptions value)
         This contains common protocol options which are only applied upstream.
         
        .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 2;
      • clearUpstreamHttpProtocolOptions

        public HttpProtocolOptions.Builder clearUpstreamHttpProtocolOptions()
         This contains common protocol options which are only applied upstream.
         
        .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 2;
      • getUpstreamHttpProtocolOptionsBuilder

        public UpstreamHttpProtocolOptions.Builder getUpstreamHttpProtocolOptionsBuilder()
         This contains common protocol options which are only applied upstream.
         
        .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 2;
      • hasExplicitHttpConfig

        public boolean hasExplicitHttpConfig()
         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;
        Specified by:
        hasExplicitHttpConfig in interface HttpProtocolOptionsOrBuilder
        Returns:
        Whether the explicitHttpConfig field is set.
      • getExplicitHttpConfig

        public HttpProtocolOptions.ExplicitHttpConfig getExplicitHttpConfig()
         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;
        Specified by:
        getExplicitHttpConfig in interface HttpProtocolOptionsOrBuilder
        Returns:
        The explicitHttpConfig.
      • setExplicitHttpConfig

        public HttpProtocolOptions.Builder setExplicitHttpConfig​(HttpProtocolOptions.ExplicitHttpConfig value)
         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;
      • setExplicitHttpConfig

        public HttpProtocolOptions.Builder setExplicitHttpConfig​(HttpProtocolOptions.ExplicitHttpConfig.Builder builderForValue)
         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;
      • mergeExplicitHttpConfig

        public HttpProtocolOptions.Builder mergeExplicitHttpConfig​(HttpProtocolOptions.ExplicitHttpConfig value)
         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;
      • clearExplicitHttpConfig

        public HttpProtocolOptions.Builder clearExplicitHttpConfig()
         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;
      • getExplicitHttpConfigBuilder

        public HttpProtocolOptions.ExplicitHttpConfig.Builder getExplicitHttpConfigBuilder()
         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;
      • hasUseDownstreamProtocolConfig

        public boolean hasUseDownstreamProtocolConfig()
         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;
        Specified by:
        hasUseDownstreamProtocolConfig in interface HttpProtocolOptionsOrBuilder
        Returns:
        Whether the useDownstreamProtocolConfig field is set.
      • setUseDownstreamProtocolConfig

        public HttpProtocolOptions.Builder setUseDownstreamProtocolConfig​(HttpProtocolOptions.UseDownstreamHttpConfig value)
         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;
      • mergeUseDownstreamProtocolConfig

        public HttpProtocolOptions.Builder mergeUseDownstreamProtocolConfig​(HttpProtocolOptions.UseDownstreamHttpConfig value)
         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;
      • clearUseDownstreamProtocolConfig

        public HttpProtocolOptions.Builder clearUseDownstreamProtocolConfig()
         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;
      • getUseDownstreamProtocolConfigBuilder

        public HttpProtocolOptions.UseDownstreamHttpConfig.Builder getUseDownstreamProtocolConfigBuilder()
         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;
      • hasAutoConfig

        public boolean hasAutoConfig()
         This allows switching on protocol based on ALPN
         
        .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig auto_config = 5;
        Specified by:
        hasAutoConfig in interface HttpProtocolOptionsOrBuilder
        Returns:
        Whether the autoConfig field is set.
      • clearAutoConfig

        public HttpProtocolOptions.Builder clearAutoConfig()
         This allows switching on protocol based on ALPN
         
        .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig auto_config = 5;
      • getAutoConfigBuilder

        public HttpProtocolOptions.AutoHttpConfig.Builder getAutoConfigBuilder()
         This allows switching on protocol based on ALPN
         
        .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig auto_config = 5;
      • setUnknownFields

        public final HttpProtocolOptions.Builder setUnknownFields​(com.google.protobuf.UnknownFieldSet unknownFields)
        Specified by:
        setUnknownFields in interface com.google.protobuf.Message.Builder
        Overrides:
        setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<HttpProtocolOptions.Builder>
      • mergeUnknownFields

        public final HttpProtocolOptions.Builder mergeUnknownFields​(com.google.protobuf.UnknownFieldSet unknownFields)
        Specified by:
        mergeUnknownFields in interface com.google.protobuf.Message.Builder
        Overrides:
        mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<HttpProtocolOptions.Builder>