Class HttpProtocolOptions

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessageV3
io.envoyproxy.envoy.extensions.upstreams.http.v3.HttpProtocolOptions
All Implemented Interfaces:
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, HttpProtocolOptionsOrBuilder, Serializable

public final class HttpProtocolOptions extends com.google.protobuf.GeneratedMessageV3 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: 12]
 
Protobuf type envoy.extensions.upstreams.http.v3.HttpProtocolOptions
See Also:
  • Field Details

    • COMMON_HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER

      public static final int COMMON_HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER
      See Also:
    • UPSTREAM_HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER

      public static final int UPSTREAM_HTTP_PROTOCOL_OPTIONS_FIELD_NUMBER
      See Also:
    • EXPLICIT_HTTP_CONFIG_FIELD_NUMBER

      public static final int EXPLICIT_HTTP_CONFIG_FIELD_NUMBER
      See Also:
    • USE_DOWNSTREAM_PROTOCOL_CONFIG_FIELD_NUMBER

      public static final int USE_DOWNSTREAM_PROTOCOL_CONFIG_FIELD_NUMBER
      See Also:
    • AUTO_CONFIG_FIELD_NUMBER

      public static final int AUTO_CONFIG_FIELD_NUMBER
      See Also:
    • HTTP_FILTERS_FIELD_NUMBER

      public static final int HTTP_FILTERS_FIELD_NUMBER
      See Also:
    • HEADER_VALIDATION_CONFIG_FIELD_NUMBER

      public static final int HEADER_VALIDATION_CONFIG_FIELD_NUMBER
      See Also:
    • OUTLIER_DETECTION_FIELD_NUMBER

      public static final int OUTLIER_DETECTION_FIELD_NUMBER
      See Also:
    • REQUEST_MIRROR_POLICIES_FIELD_NUMBER

      public static final int REQUEST_MIRROR_POLICIES_FIELD_NUMBER
      See Also:
    • HASH_POLICY_FIELD_NUMBER

      public static final int HASH_POLICY_FIELD_NUMBER
      See Also:
    • RETRY_POLICY_FIELD_NUMBER

      public static final int RETRY_POLICY_FIELD_NUMBER
      See Also:
  • Method Details

    • newInstance

      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      Overrides:
      newInstance in class com.google.protobuf.GeneratedMessageV3
    • 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
    • getUpstreamProtocolOptionsCase

      public HttpProtocolOptions.UpstreamProtocolOptionsCase getUpstreamProtocolOptionsCase()
      Specified by:
      getUpstreamProtocolOptionsCase in interface HttpProtocolOptionsOrBuilder
    • 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.
    • getCommonHttpProtocolOptions

      public HttpProtocolOptions getCommonHttpProtocolOptions()
       This contains options common across HTTP/1 and HTTP/2
       
      .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 1;
      Specified by:
      getCommonHttpProtocolOptions in interface HttpProtocolOptionsOrBuilder
      Returns:
      The commonHttpProtocolOptions.
    • getCommonHttpProtocolOptionsOrBuilder

      public HttpProtocolOptionsOrBuilder getCommonHttpProtocolOptionsOrBuilder()
       This contains options common across HTTP/1 and HTTP/2
       
      .envoy.config.core.v3.HttpProtocolOptions common_http_protocol_options = 1;
      Specified by:
      getCommonHttpProtocolOptionsOrBuilder in interface HttpProtocolOptionsOrBuilder
    • 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.
    • getUpstreamHttpProtocolOptions

      public UpstreamHttpProtocolOptions getUpstreamHttpProtocolOptions()
       This contains common protocol options which are only applied upstream.
       
      .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 2;
      Specified by:
      getUpstreamHttpProtocolOptions in interface HttpProtocolOptionsOrBuilder
      Returns:
      The upstreamHttpProtocolOptions.
    • getUpstreamHttpProtocolOptionsOrBuilder

      public UpstreamHttpProtocolOptionsOrBuilder getUpstreamHttpProtocolOptionsOrBuilder()
       This contains common protocol options which are only applied upstream.
       
      .envoy.config.core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 2;
      Specified by:
      getUpstreamHttpProtocolOptionsOrBuilder in interface HttpProtocolOptionsOrBuilder
    • hasExplicitHttpConfig

      public boolean hasExplicitHttpConfig()
       To explicitly configure either HTTP/1 or HTTP/2 (but not both!) use ``explicit_http_config``.
       
      .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``.
       
      .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig explicit_http_config = 3;
      Specified by:
      getExplicitHttpConfig in interface HttpProtocolOptionsOrBuilder
      Returns:
      The explicitHttpConfig.
    • getExplicitHttpConfigOrBuilder

      public HttpProtocolOptions.ExplicitHttpConfigOrBuilder getExplicitHttpConfigOrBuilder()
       To explicitly configure either HTTP/1 or HTTP/2 (but not both!) use ``explicit_http_config``.
       
      .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.ExplicitHttpConfig explicit_http_config = 3;
      Specified by:
      getExplicitHttpConfigOrBuilder in interface HttpProtocolOptionsOrBuilder
    • 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.
    • getUseDownstreamProtocolConfig

      public HttpProtocolOptions.UseDownstreamHttpConfig getUseDownstreamProtocolConfig()
       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:
      getUseDownstreamProtocolConfig in interface HttpProtocolOptionsOrBuilder
      Returns:
      The useDownstreamProtocolConfig.
    • getUseDownstreamProtocolConfigOrBuilder

      public HttpProtocolOptions.UseDownstreamHttpConfigOrBuilder getUseDownstreamProtocolConfigOrBuilder()
       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:
      getUseDownstreamProtocolConfigOrBuilder in interface HttpProtocolOptionsOrBuilder
    • 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.
    • getAutoConfig

      public HttpProtocolOptions.AutoHttpConfig getAutoConfig()
       This allows switching on protocol based on ALPN
       
      .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig auto_config = 5;
      Specified by:
      getAutoConfig in interface HttpProtocolOptionsOrBuilder
      Returns:
      The autoConfig.
    • getAutoConfigOrBuilder

      public HttpProtocolOptions.AutoHttpConfigOrBuilder getAutoConfigOrBuilder()
       This allows switching on protocol based on ALPN
       
      .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.AutoHttpConfig auto_config = 5;
      Specified by:
      getAutoConfigOrBuilder in interface HttpProtocolOptionsOrBuilder
    • getHttpFiltersList

      public List<HttpFilter> getHttpFiltersList()
       Optional HTTP filters for the upstream HTTP filter chain.
      
       .. note::
         Upstream HTTP filters are currently in alpha.
      
      
       These filters will be applied for all HTTP streams which flow through this
       cluster. Unlike downstream HTTP filters, they will *not* be applied to terminated CONNECT requests.
      
       If using upstream HTTP filters, please be aware that local errors sent by
       upstream HTTP filters will not trigger retries, and local errors sent by
       upstream HTTP 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;
      Specified by:
      getHttpFiltersList in interface HttpProtocolOptionsOrBuilder
    • getHttpFiltersOrBuilderList

      public List<? extends HttpFilterOrBuilder> getHttpFiltersOrBuilderList()
       Optional HTTP filters for the upstream HTTP filter chain.
      
       .. note::
         Upstream HTTP filters are currently in alpha.
      
      
       These filters will be applied for all HTTP streams which flow through this
       cluster. Unlike downstream HTTP filters, they will *not* be applied to terminated CONNECT requests.
      
       If using upstream HTTP filters, please be aware that local errors sent by
       upstream HTTP filters will not trigger retries, and local errors sent by
       upstream HTTP 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;
      Specified by:
      getHttpFiltersOrBuilderList in interface HttpProtocolOptionsOrBuilder
    • getHttpFiltersCount

      public int getHttpFiltersCount()
       Optional HTTP filters for the upstream HTTP filter chain.
      
       .. note::
         Upstream HTTP filters are currently in alpha.
      
      
       These filters will be applied for all HTTP streams which flow through this
       cluster. Unlike downstream HTTP filters, they will *not* be applied to terminated CONNECT requests.
      
       If using upstream HTTP filters, please be aware that local errors sent by
       upstream HTTP filters will not trigger retries, and local errors sent by
       upstream HTTP 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;
      Specified by:
      getHttpFiltersCount in interface HttpProtocolOptionsOrBuilder
    • getHttpFilters

      public HttpFilter getHttpFilters(int index)
       Optional HTTP filters for the upstream HTTP filter chain.
      
       .. note::
         Upstream HTTP filters are currently in alpha.
      
      
       These filters will be applied for all HTTP streams which flow through this
       cluster. Unlike downstream HTTP filters, they will *not* be applied to terminated CONNECT requests.
      
       If using upstream HTTP filters, please be aware that local errors sent by
       upstream HTTP filters will not trigger retries, and local errors sent by
       upstream HTTP 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;
      Specified by:
      getHttpFilters in interface HttpProtocolOptionsOrBuilder
    • getHttpFiltersOrBuilder

      public HttpFilterOrBuilder getHttpFiltersOrBuilder(int index)
       Optional HTTP filters for the upstream HTTP filter chain.
      
       .. note::
         Upstream HTTP filters are currently in alpha.
      
      
       These filters will be applied for all HTTP streams which flow through this
       cluster. Unlike downstream HTTP filters, they will *not* be applied to terminated CONNECT requests.
      
       If using upstream HTTP filters, please be aware that local errors sent by
       upstream HTTP filters will not trigger retries, and local errors sent by
       upstream HTTP 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;
      Specified by:
      getHttpFiltersOrBuilder in interface HttpProtocolOptionsOrBuilder
    • hasHeaderValidationConfig

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

      public TypedExtensionConfig getHeaderValidationConfig()
       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;
      Specified by:
      getHeaderValidationConfig in interface HttpProtocolOptionsOrBuilder
      Returns:
      The headerValidationConfig.
    • getHeaderValidationConfigOrBuilder

      public TypedExtensionConfigOrBuilder getHeaderValidationConfigOrBuilder()
       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;
      Specified by:
      getHeaderValidationConfigOrBuilder in interface HttpProtocolOptionsOrBuilder
    • hasOutlierDetection

      public boolean hasOutlierDetection()
       Defines http specific outlier detection parameters.
       
      .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.OutlierDetection outlier_detection = 8;
      Specified by:
      hasOutlierDetection in interface HttpProtocolOptionsOrBuilder
      Returns:
      Whether the outlierDetection field is set.
    • getOutlierDetection

      public HttpProtocolOptions.OutlierDetection getOutlierDetection()
       Defines http specific outlier detection parameters.
       
      .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.OutlierDetection outlier_detection = 8;
      Specified by:
      getOutlierDetection in interface HttpProtocolOptionsOrBuilder
      Returns:
      The outlierDetection.
    • getOutlierDetectionOrBuilder

      public HttpProtocolOptions.OutlierDetectionOrBuilder getOutlierDetectionOrBuilder()
       Defines http specific outlier detection parameters.
       
      .envoy.extensions.upstreams.http.v3.HttpProtocolOptions.OutlierDetection outlier_detection = 8;
      Specified by:
      getOutlierDetectionOrBuilder in interface HttpProtocolOptionsOrBuilder
    • getRequestMirrorPoliciesList

      public List<RouteAction.RequestMirrorPolicy> getRequestMirrorPoliciesList()
       Specifies a list of HTTP-level mirroring policies for requests routed to this cluster.
       Cluster-level policies override route-level policies when they both are configured.
      
       .. note::
      
         Mirroring will not be triggered if the :ref:`primary cluster
         <envoy_v3_api_field_config.route.v3.RouteAction.cluster>` does not exist.
       
      repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 9;
      Specified by:
      getRequestMirrorPoliciesList in interface HttpProtocolOptionsOrBuilder
    • getRequestMirrorPoliciesOrBuilderList

      public List<? extends RouteAction.RequestMirrorPolicyOrBuilder> getRequestMirrorPoliciesOrBuilderList()
       Specifies a list of HTTP-level mirroring policies for requests routed to this cluster.
       Cluster-level policies override route-level policies when they both are configured.
      
       .. note::
      
         Mirroring will not be triggered if the :ref:`primary cluster
         <envoy_v3_api_field_config.route.v3.RouteAction.cluster>` does not exist.
       
      repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 9;
      Specified by:
      getRequestMirrorPoliciesOrBuilderList in interface HttpProtocolOptionsOrBuilder
    • getRequestMirrorPoliciesCount

      public int getRequestMirrorPoliciesCount()
       Specifies a list of HTTP-level mirroring policies for requests routed to this cluster.
       Cluster-level policies override route-level policies when they both are configured.
      
       .. note::
      
         Mirroring will not be triggered if the :ref:`primary cluster
         <envoy_v3_api_field_config.route.v3.RouteAction.cluster>` does not exist.
       
      repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 9;
      Specified by:
      getRequestMirrorPoliciesCount in interface HttpProtocolOptionsOrBuilder
    • getRequestMirrorPolicies

      public RouteAction.RequestMirrorPolicy getRequestMirrorPolicies(int index)
       Specifies a list of HTTP-level mirroring policies for requests routed to this cluster.
       Cluster-level policies override route-level policies when they both are configured.
      
       .. note::
      
         Mirroring will not be triggered if the :ref:`primary cluster
         <envoy_v3_api_field_config.route.v3.RouteAction.cluster>` does not exist.
       
      repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 9;
      Specified by:
      getRequestMirrorPolicies in interface HttpProtocolOptionsOrBuilder
    • getRequestMirrorPoliciesOrBuilder

      public RouteAction.RequestMirrorPolicyOrBuilder getRequestMirrorPoliciesOrBuilder(int index)
       Specifies a list of HTTP-level mirroring policies for requests routed to this cluster.
       Cluster-level policies override route-level policies when they both are configured.
      
       .. note::
      
         Mirroring will not be triggered if the :ref:`primary cluster
         <envoy_v3_api_field_config.route.v3.RouteAction.cluster>` does not exist.
       
      repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 9;
      Specified by:
      getRequestMirrorPoliciesOrBuilder in interface HttpProtocolOptionsOrBuilder
    • getHashPolicyList

      public List<RouteAction.HashPolicy> getHashPolicyList()
       Specifies a list of hash policies for consistent hashing load balancing (e.g., Ring Hash or
       Maglev) for requests routed to this cluster. When configured, cluster-level policies override
       route-level policies. When not configured, route-level policies (if any) will be used.
      
       This enables consistent routing to the same upstream host for all requests to a cluster,
       which is particularly useful for stateful services like caching, session management, or
       sticky routing requirements.
      
       .. note::
      
         Hash policies are only effective when the cluster is configured with a hash-based load
         balancing policy (e.g., :ref:`RING_HASH <envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.RING_HASH>`
         or :ref:`MAGLEV <envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.MAGLEV>`).
       
      repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 10;
      Specified by:
      getHashPolicyList in interface HttpProtocolOptionsOrBuilder
    • getHashPolicyOrBuilderList

      public List<? extends RouteAction.HashPolicyOrBuilder> getHashPolicyOrBuilderList()
       Specifies a list of hash policies for consistent hashing load balancing (e.g., Ring Hash or
       Maglev) for requests routed to this cluster. When configured, cluster-level policies override
       route-level policies. When not configured, route-level policies (if any) will be used.
      
       This enables consistent routing to the same upstream host for all requests to a cluster,
       which is particularly useful for stateful services like caching, session management, or
       sticky routing requirements.
      
       .. note::
      
         Hash policies are only effective when the cluster is configured with a hash-based load
         balancing policy (e.g., :ref:`RING_HASH <envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.RING_HASH>`
         or :ref:`MAGLEV <envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.MAGLEV>`).
       
      repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 10;
      Specified by:
      getHashPolicyOrBuilderList in interface HttpProtocolOptionsOrBuilder
    • getHashPolicyCount

      public int getHashPolicyCount()
       Specifies a list of hash policies for consistent hashing load balancing (e.g., Ring Hash or
       Maglev) for requests routed to this cluster. When configured, cluster-level policies override
       route-level policies. When not configured, route-level policies (if any) will be used.
      
       This enables consistent routing to the same upstream host for all requests to a cluster,
       which is particularly useful for stateful services like caching, session management, or
       sticky routing requirements.
      
       .. note::
      
         Hash policies are only effective when the cluster is configured with a hash-based load
         balancing policy (e.g., :ref:`RING_HASH <envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.RING_HASH>`
         or :ref:`MAGLEV <envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.MAGLEV>`).
       
      repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 10;
      Specified by:
      getHashPolicyCount in interface HttpProtocolOptionsOrBuilder
    • getHashPolicy

      public RouteAction.HashPolicy getHashPolicy(int index)
       Specifies a list of hash policies for consistent hashing load balancing (e.g., Ring Hash or
       Maglev) for requests routed to this cluster. When configured, cluster-level policies override
       route-level policies. When not configured, route-level policies (if any) will be used.
      
       This enables consistent routing to the same upstream host for all requests to a cluster,
       which is particularly useful for stateful services like caching, session management, or
       sticky routing requirements.
      
       .. note::
      
         Hash policies are only effective when the cluster is configured with a hash-based load
         balancing policy (e.g., :ref:`RING_HASH <envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.RING_HASH>`
         or :ref:`MAGLEV <envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.MAGLEV>`).
       
      repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 10;
      Specified by:
      getHashPolicy in interface HttpProtocolOptionsOrBuilder
    • getHashPolicyOrBuilder

      public RouteAction.HashPolicyOrBuilder getHashPolicyOrBuilder(int index)
       Specifies a list of hash policies for consistent hashing load balancing (e.g., Ring Hash or
       Maglev) for requests routed to this cluster. When configured, cluster-level policies override
       route-level policies. When not configured, route-level policies (if any) will be used.
      
       This enables consistent routing to the same upstream host for all requests to a cluster,
       which is particularly useful for stateful services like caching, session management, or
       sticky routing requirements.
      
       .. note::
      
         Hash policies are only effective when the cluster is configured with a hash-based load
         balancing policy (e.g., :ref:`RING_HASH <envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.RING_HASH>`
         or :ref:`MAGLEV <envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.MAGLEV>`).
       
      repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 10;
      Specified by:
      getHashPolicyOrBuilder in interface HttpProtocolOptionsOrBuilder
    • hasRetryPolicy

      public boolean hasRetryPolicy()
       Specifies the retry policy for requests routed to this cluster. When configured,
       cluster-level retry policy overrides route-level retry policy. When not configured,
       route-level retry policy (if any) will be used.
      
       .. note::
      
         Cluster-level retry policy will override route-level retry policy entirely. Policies are
         not merged.
       
      .envoy.config.route.v3.RetryPolicy retry_policy = 11;
      Specified by:
      hasRetryPolicy in interface HttpProtocolOptionsOrBuilder
      Returns:
      Whether the retryPolicy field is set.
    • getRetryPolicy

      public RetryPolicy getRetryPolicy()
       Specifies the retry policy for requests routed to this cluster. When configured,
       cluster-level retry policy overrides route-level retry policy. When not configured,
       route-level retry policy (if any) will be used.
      
       .. note::
      
         Cluster-level retry policy will override route-level retry policy entirely. Policies are
         not merged.
       
      .envoy.config.route.v3.RetryPolicy retry_policy = 11;
      Specified by:
      getRetryPolicy in interface HttpProtocolOptionsOrBuilder
      Returns:
      The retryPolicy.
    • getRetryPolicyOrBuilder

      public RetryPolicyOrBuilder getRetryPolicyOrBuilder()
       Specifies the retry policy for requests routed to this cluster. When configured,
       cluster-level retry policy overrides route-level retry policy. When not configured,
       route-level retry policy (if any) will be used.
      
       .. note::
      
         Cluster-level retry policy will override route-level retry policy entirely. Policies are
         not merged.
       
      .envoy.config.route.v3.RetryPolicy retry_policy = 11;
      Specified by:
      getRetryPolicyOrBuilder in interface HttpProtocolOptionsOrBuilder
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessageV3
    • writeTo

      public void writeTo(com.google.protobuf.CodedOutputStream output) throws IOException
      Specified by:
      writeTo in interface com.google.protobuf.MessageLite
      Overrides:
      writeTo in class com.google.protobuf.GeneratedMessageV3
      Throws:
      IOException
    • getSerializedSize

      public int getSerializedSize()
      Specified by:
      getSerializedSize in interface com.google.protobuf.MessageLite
      Overrides:
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in interface com.google.protobuf.Message
      Overrides:
      equals in class com.google.protobuf.AbstractMessage
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface com.google.protobuf.Message
      Overrides:
      hashCode in class com.google.protobuf.AbstractMessage
    • parseFrom

      public static HttpProtocolOptions parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static HttpProtocolOptions parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static HttpProtocolOptions parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static HttpProtocolOptions parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static HttpProtocolOptions parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static HttpProtocolOptions parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static HttpProtocolOptions parseFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static HttpProtocolOptions parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static HttpProtocolOptions parseDelimitedFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static HttpProtocolOptions parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseFrom

      public static HttpProtocolOptions parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static HttpProtocolOptions parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • newBuilderForType

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

      public static HttpProtocolOptions.Builder newBuilder()
    • newBuilder

      public static HttpProtocolOptions.Builder newBuilder(HttpProtocolOptions prototype)
    • toBuilder

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

      protected HttpProtocolOptions.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      Specified by:
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
    • getDefaultInstance

      public static HttpProtocolOptions getDefaultInstance()
    • parser

      public static com.google.protobuf.Parser<HttpProtocolOptions> parser()
    • getParserForType

      public com.google.protobuf.Parser<HttpProtocolOptions> getParserForType()
      Specified by:
      getParserForType in interface com.google.protobuf.Message
      Specified by:
      getParserForType in interface com.google.protobuf.MessageLite
      Overrides:
      getParserForType in class com.google.protobuf.GeneratedMessageV3
    • getDefaultInstanceForType

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