java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder
com.google.protobuf.AbstractMessage.Builder<BuilderT>
com.google.protobuf.GeneratedMessageV3.Builder<ClusterConfig.Builder>
io.envoyproxy.envoy.extensions.clusters.dynamic_forward_proxy.v3.ClusterConfig.Builder
All Implemented Interfaces:
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, ClusterConfigOrBuilder, Cloneable
Enclosing class:
ClusterConfig

public static final class ClusterConfig.Builder extends com.google.protobuf.GeneratedMessageV3.Builder<ClusterConfig.Builder> implements ClusterConfigOrBuilder
 Configuration for the dynamic forward proxy cluster. See the :ref:`architecture overview
 <arch_overview_http_dynamic_forward_proxy>` for more information.
 [#extension: envoy.clusters.dynamic_forward_proxy]
 
Protobuf type envoy.extensions.clusters.dynamic_forward_proxy.v3.ClusterConfig
  • Method Details

    • 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<ClusterConfig.Builder>
    • clear

      public ClusterConfig.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<ClusterConfig.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<ClusterConfig.Builder>
    • getDefaultInstanceForType

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

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

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

      public ClusterConfig.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<ClusterConfig.Builder>
    • setField

      public ClusterConfig.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<ClusterConfig.Builder>
    • clearField

      public ClusterConfig.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<ClusterConfig.Builder>
    • clearOneof

      public ClusterConfig.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<ClusterConfig.Builder>
    • setRepeatedField

      public ClusterConfig.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<ClusterConfig.Builder>
    • addRepeatedField

      public ClusterConfig.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<ClusterConfig.Builder>
    • mergeFrom

      public ClusterConfig.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<ClusterConfig.Builder>
    • mergeFrom

      public ClusterConfig.Builder mergeFrom(ClusterConfig other)
    • isInitialized

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

      public ClusterConfig.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<ClusterConfig.Builder>
      Throws:
      IOException
    • getClusterImplementationSpecifierCase

      public ClusterConfig.ClusterImplementationSpecifierCase getClusterImplementationSpecifierCase()
      Specified by:
      getClusterImplementationSpecifierCase in interface ClusterConfigOrBuilder
    • clearClusterImplementationSpecifier

      public ClusterConfig.Builder clearClusterImplementationSpecifier()
    • hasDnsCacheConfig

      public boolean hasDnsCacheConfig()
       The DNS cache configuration that the cluster will attach to. Note this configuration must
       match that of associated :ref:`dynamic forward proxy HTTP filter configuration
       <envoy_v3_api_field_extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig.dns_cache_config>`.
       
      .envoy.extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1;
      Specified by:
      hasDnsCacheConfig in interface ClusterConfigOrBuilder
      Returns:
      Whether the dnsCacheConfig field is set.
    • getDnsCacheConfig

      public DnsCacheConfig getDnsCacheConfig()
       The DNS cache configuration that the cluster will attach to. Note this configuration must
       match that of associated :ref:`dynamic forward proxy HTTP filter configuration
       <envoy_v3_api_field_extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig.dns_cache_config>`.
       
      .envoy.extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1;
      Specified by:
      getDnsCacheConfig in interface ClusterConfigOrBuilder
      Returns:
      The dnsCacheConfig.
    • setDnsCacheConfig

      public ClusterConfig.Builder setDnsCacheConfig(DnsCacheConfig value)
       The DNS cache configuration that the cluster will attach to. Note this configuration must
       match that of associated :ref:`dynamic forward proxy HTTP filter configuration
       <envoy_v3_api_field_extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig.dns_cache_config>`.
       
      .envoy.extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1;
    • setDnsCacheConfig

      public ClusterConfig.Builder setDnsCacheConfig(DnsCacheConfig.Builder builderForValue)
       The DNS cache configuration that the cluster will attach to. Note this configuration must
       match that of associated :ref:`dynamic forward proxy HTTP filter configuration
       <envoy_v3_api_field_extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig.dns_cache_config>`.
       
      .envoy.extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1;
    • mergeDnsCacheConfig

      public ClusterConfig.Builder mergeDnsCacheConfig(DnsCacheConfig value)
       The DNS cache configuration that the cluster will attach to. Note this configuration must
       match that of associated :ref:`dynamic forward proxy HTTP filter configuration
       <envoy_v3_api_field_extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig.dns_cache_config>`.
       
      .envoy.extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1;
    • clearDnsCacheConfig

      public ClusterConfig.Builder clearDnsCacheConfig()
       The DNS cache configuration that the cluster will attach to. Note this configuration must
       match that of associated :ref:`dynamic forward proxy HTTP filter configuration
       <envoy_v3_api_field_extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig.dns_cache_config>`.
       
      .envoy.extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1;
    • getDnsCacheConfigBuilder

      public DnsCacheConfig.Builder getDnsCacheConfigBuilder()
       The DNS cache configuration that the cluster will attach to. Note this configuration must
       match that of associated :ref:`dynamic forward proxy HTTP filter configuration
       <envoy_v3_api_field_extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig.dns_cache_config>`.
       
      .envoy.extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1;
    • getDnsCacheConfigOrBuilder

      public DnsCacheConfigOrBuilder getDnsCacheConfigOrBuilder()
       The DNS cache configuration that the cluster will attach to. Note this configuration must
       match that of associated :ref:`dynamic forward proxy HTTP filter configuration
       <envoy_v3_api_field_extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig.dns_cache_config>`.
       
      .envoy.extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1;
      Specified by:
      getDnsCacheConfigOrBuilder in interface ClusterConfigOrBuilder
    • hasSubClustersConfig

      public boolean hasSubClustersConfig()
       Configuration for sub clusters, when this configuration is enabled,
       Envoy will create an independent sub cluster dynamically for each host:port.
       Most of the configuration of a sub cluster is inherited from the current cluster,
       i.e. health_checks, dns_resolvers and etc.
       And the load_assignment will be set to the only one endpoint, host:port.
      
       Compared to the dns_cache_config, it has the following advantages:
      
       1. sub clusters will be created with the STRICT_DNS DiscoveryType,
          so that Envoy will use all of the IPs resolved from the host.
      
       2. each sub cluster is full featured cluster, with lb_policy and health check and etc enabled.
       
      .envoy.extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig sub_clusters_config = 4;
      Specified by:
      hasSubClustersConfig in interface ClusterConfigOrBuilder
      Returns:
      Whether the subClustersConfig field is set.
    • getSubClustersConfig

      public SubClustersConfig getSubClustersConfig()
       Configuration for sub clusters, when this configuration is enabled,
       Envoy will create an independent sub cluster dynamically for each host:port.
       Most of the configuration of a sub cluster is inherited from the current cluster,
       i.e. health_checks, dns_resolvers and etc.
       And the load_assignment will be set to the only one endpoint, host:port.
      
       Compared to the dns_cache_config, it has the following advantages:
      
       1. sub clusters will be created with the STRICT_DNS DiscoveryType,
          so that Envoy will use all of the IPs resolved from the host.
      
       2. each sub cluster is full featured cluster, with lb_policy and health check and etc enabled.
       
      .envoy.extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig sub_clusters_config = 4;
      Specified by:
      getSubClustersConfig in interface ClusterConfigOrBuilder
      Returns:
      The subClustersConfig.
    • setSubClustersConfig

      public ClusterConfig.Builder setSubClustersConfig(SubClustersConfig value)
       Configuration for sub clusters, when this configuration is enabled,
       Envoy will create an independent sub cluster dynamically for each host:port.
       Most of the configuration of a sub cluster is inherited from the current cluster,
       i.e. health_checks, dns_resolvers and etc.
       And the load_assignment will be set to the only one endpoint, host:port.
      
       Compared to the dns_cache_config, it has the following advantages:
      
       1. sub clusters will be created with the STRICT_DNS DiscoveryType,
          so that Envoy will use all of the IPs resolved from the host.
      
       2. each sub cluster is full featured cluster, with lb_policy and health check and etc enabled.
       
      .envoy.extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig sub_clusters_config = 4;
    • setSubClustersConfig

      public ClusterConfig.Builder setSubClustersConfig(SubClustersConfig.Builder builderForValue)
       Configuration for sub clusters, when this configuration is enabled,
       Envoy will create an independent sub cluster dynamically for each host:port.
       Most of the configuration of a sub cluster is inherited from the current cluster,
       i.e. health_checks, dns_resolvers and etc.
       And the load_assignment will be set to the only one endpoint, host:port.
      
       Compared to the dns_cache_config, it has the following advantages:
      
       1. sub clusters will be created with the STRICT_DNS DiscoveryType,
          so that Envoy will use all of the IPs resolved from the host.
      
       2. each sub cluster is full featured cluster, with lb_policy and health check and etc enabled.
       
      .envoy.extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig sub_clusters_config = 4;
    • mergeSubClustersConfig

      public ClusterConfig.Builder mergeSubClustersConfig(SubClustersConfig value)
       Configuration for sub clusters, when this configuration is enabled,
       Envoy will create an independent sub cluster dynamically for each host:port.
       Most of the configuration of a sub cluster is inherited from the current cluster,
       i.e. health_checks, dns_resolvers and etc.
       And the load_assignment will be set to the only one endpoint, host:port.
      
       Compared to the dns_cache_config, it has the following advantages:
      
       1. sub clusters will be created with the STRICT_DNS DiscoveryType,
          so that Envoy will use all of the IPs resolved from the host.
      
       2. each sub cluster is full featured cluster, with lb_policy and health check and etc enabled.
       
      .envoy.extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig sub_clusters_config = 4;
    • clearSubClustersConfig

      public ClusterConfig.Builder clearSubClustersConfig()
       Configuration for sub clusters, when this configuration is enabled,
       Envoy will create an independent sub cluster dynamically for each host:port.
       Most of the configuration of a sub cluster is inherited from the current cluster,
       i.e. health_checks, dns_resolvers and etc.
       And the load_assignment will be set to the only one endpoint, host:port.
      
       Compared to the dns_cache_config, it has the following advantages:
      
       1. sub clusters will be created with the STRICT_DNS DiscoveryType,
          so that Envoy will use all of the IPs resolved from the host.
      
       2. each sub cluster is full featured cluster, with lb_policy and health check and etc enabled.
       
      .envoy.extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig sub_clusters_config = 4;
    • getSubClustersConfigBuilder

      public SubClustersConfig.Builder getSubClustersConfigBuilder()
       Configuration for sub clusters, when this configuration is enabled,
       Envoy will create an independent sub cluster dynamically for each host:port.
       Most of the configuration of a sub cluster is inherited from the current cluster,
       i.e. health_checks, dns_resolvers and etc.
       And the load_assignment will be set to the only one endpoint, host:port.
      
       Compared to the dns_cache_config, it has the following advantages:
      
       1. sub clusters will be created with the STRICT_DNS DiscoveryType,
          so that Envoy will use all of the IPs resolved from the host.
      
       2. each sub cluster is full featured cluster, with lb_policy and health check and etc enabled.
       
      .envoy.extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig sub_clusters_config = 4;
    • getSubClustersConfigOrBuilder

      public SubClustersConfigOrBuilder getSubClustersConfigOrBuilder()
       Configuration for sub clusters, when this configuration is enabled,
       Envoy will create an independent sub cluster dynamically for each host:port.
       Most of the configuration of a sub cluster is inherited from the current cluster,
       i.e. health_checks, dns_resolvers and etc.
       And the load_assignment will be set to the only one endpoint, host:port.
      
       Compared to the dns_cache_config, it has the following advantages:
      
       1. sub clusters will be created with the STRICT_DNS DiscoveryType,
          so that Envoy will use all of the IPs resolved from the host.
      
       2. each sub cluster is full featured cluster, with lb_policy and health check and etc enabled.
       
      .envoy.extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig sub_clusters_config = 4;
      Specified by:
      getSubClustersConfigOrBuilder in interface ClusterConfigOrBuilder
    • getAllowInsecureClusterOptions

      public boolean getAllowInsecureClusterOptions()
       If true allow the cluster configuration to disable the auto_sni and auto_san_validation options
       in the :ref:`cluster's upstream_http_protocol_options
       <envoy_v3_api_field_config.cluster.v3.Cluster.upstream_http_protocol_options>`
       
      bool allow_insecure_cluster_options = 2;
      Specified by:
      getAllowInsecureClusterOptions in interface ClusterConfigOrBuilder
      Returns:
      The allowInsecureClusterOptions.
    • setAllowInsecureClusterOptions

      public ClusterConfig.Builder setAllowInsecureClusterOptions(boolean value)
       If true allow the cluster configuration to disable the auto_sni and auto_san_validation options
       in the :ref:`cluster's upstream_http_protocol_options
       <envoy_v3_api_field_config.cluster.v3.Cluster.upstream_http_protocol_options>`
       
      bool allow_insecure_cluster_options = 2;
      Parameters:
      value - The allowInsecureClusterOptions to set.
      Returns:
      This builder for chaining.
    • clearAllowInsecureClusterOptions

      public ClusterConfig.Builder clearAllowInsecureClusterOptions()
       If true allow the cluster configuration to disable the auto_sni and auto_san_validation options
       in the :ref:`cluster's upstream_http_protocol_options
       <envoy_v3_api_field_config.cluster.v3.Cluster.upstream_http_protocol_options>`
       
      bool allow_insecure_cluster_options = 2;
      Returns:
      This builder for chaining.
    • getAllowCoalescedConnections

      public boolean getAllowCoalescedConnections()
       If true allow HTTP/2 and HTTP/3 connections to be reused for requests to different
       origins than the connection was initially created for. This will only happen when the
       resolved address for the new connection matches the peer address of the connection and
       the TLS certificate is also valid for the new hostname. For example, if a connection
       has previously been established to foo.example.com at IP 1.2.3.4 with a certificate
       that is valid for ``*.example.com``, then this connection could be used for requests to
       bar.example.com if that also resolved to 1.2.3.4.
      
       .. note::
         By design, this feature will maximize reuse of connections. This means that instead
         opening a new connection when an existing connection reaches the maximum number of
         concurrent streams, requests will instead be sent to the existing connection.
      
       .. note::
         The coalesced connections might be to upstreams that would not be otherwise
         selected by Envoy. See the section `Connection Reuse in RFC 7540
         <https://datatracker.ietf.org/doc/html/rfc7540#section-9.1.1>`_
       
      bool allow_coalesced_connections = 3;
      Specified by:
      getAllowCoalescedConnections in interface ClusterConfigOrBuilder
      Returns:
      The allowCoalescedConnections.
    • setAllowCoalescedConnections

      public ClusterConfig.Builder setAllowCoalescedConnections(boolean value)
       If true allow HTTP/2 and HTTP/3 connections to be reused for requests to different
       origins than the connection was initially created for. This will only happen when the
       resolved address for the new connection matches the peer address of the connection and
       the TLS certificate is also valid for the new hostname. For example, if a connection
       has previously been established to foo.example.com at IP 1.2.3.4 with a certificate
       that is valid for ``*.example.com``, then this connection could be used for requests to
       bar.example.com if that also resolved to 1.2.3.4.
      
       .. note::
         By design, this feature will maximize reuse of connections. This means that instead
         opening a new connection when an existing connection reaches the maximum number of
         concurrent streams, requests will instead be sent to the existing connection.
      
       .. note::
         The coalesced connections might be to upstreams that would not be otherwise
         selected by Envoy. See the section `Connection Reuse in RFC 7540
         <https://datatracker.ietf.org/doc/html/rfc7540#section-9.1.1>`_
       
      bool allow_coalesced_connections = 3;
      Parameters:
      value - The allowCoalescedConnections to set.
      Returns:
      This builder for chaining.
    • clearAllowCoalescedConnections

      public ClusterConfig.Builder clearAllowCoalescedConnections()
       If true allow HTTP/2 and HTTP/3 connections to be reused for requests to different
       origins than the connection was initially created for. This will only happen when the
       resolved address for the new connection matches the peer address of the connection and
       the TLS certificate is also valid for the new hostname. For example, if a connection
       has previously been established to foo.example.com at IP 1.2.3.4 with a certificate
       that is valid for ``*.example.com``, then this connection could be used for requests to
       bar.example.com if that also resolved to 1.2.3.4.
      
       .. note::
         By design, this feature will maximize reuse of connections. This means that instead
         opening a new connection when an existing connection reaches the maximum number of
         concurrent streams, requests will instead be sent to the existing connection.
      
       .. note::
         The coalesced connections might be to upstreams that would not be otherwise
         selected by Envoy. See the section `Connection Reuse in RFC 7540
         <https://datatracker.ietf.org/doc/html/rfc7540#section-9.1.1>`_
       
      bool allow_coalesced_connections = 3;
      Returns:
      This builder for chaining.
    • setUnknownFields

      public final ClusterConfig.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<ClusterConfig.Builder>
    • mergeUnknownFields

      public final ClusterConfig.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<ClusterConfig.Builder>