Class RouteAction

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessage
io.envoyproxy.envoy.config.route.v3.RouteAction
All Implemented Interfaces:
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, RouteActionOrBuilder, Serializable

public final class RouteAction extends com.google.protobuf.GeneratedMessage implements RouteActionOrBuilder
 [#next-free-field: 42]
 
Protobuf type envoy.config.route.v3.RouteAction
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • bitField0_

      private int bitField0_
    • clusterSpecifierCase_

      private int clusterSpecifierCase_
    • clusterSpecifier_

      private Object clusterSpecifier_
    • hostRewriteSpecifierCase_

      private int hostRewriteSpecifierCase_
    • hostRewriteSpecifier_

      private Object hostRewriteSpecifier_
    • CLUSTER_FIELD_NUMBER

      public static final int CLUSTER_FIELD_NUMBER
      See Also:
    • CLUSTER_HEADER_FIELD_NUMBER

      public static final int CLUSTER_HEADER_FIELD_NUMBER
      See Also:
    • WEIGHTED_CLUSTERS_FIELD_NUMBER

      public static final int WEIGHTED_CLUSTERS_FIELD_NUMBER
      See Also:
    • CLUSTER_SPECIFIER_PLUGIN_FIELD_NUMBER

      public static final int CLUSTER_SPECIFIER_PLUGIN_FIELD_NUMBER
      See Also:
    • INLINE_CLUSTER_SPECIFIER_PLUGIN_FIELD_NUMBER

      public static final int INLINE_CLUSTER_SPECIFIER_PLUGIN_FIELD_NUMBER
      See Also:
    • CLUSTER_NOT_FOUND_RESPONSE_CODE_FIELD_NUMBER

      public static final int CLUSTER_NOT_FOUND_RESPONSE_CODE_FIELD_NUMBER
      See Also:
    • clusterNotFoundResponseCode_

      private int clusterNotFoundResponseCode_
    • METADATA_MATCH_FIELD_NUMBER

      public static final int METADATA_MATCH_FIELD_NUMBER
      See Also:
    • metadataMatch_

      private Metadata metadataMatch_
    • PREFIX_REWRITE_FIELD_NUMBER

      public static final int PREFIX_REWRITE_FIELD_NUMBER
      See Also:
    • prefixRewrite_

      private volatile Object prefixRewrite_
    • REGEX_REWRITE_FIELD_NUMBER

      public static final int REGEX_REWRITE_FIELD_NUMBER
      See Also:
    • regexRewrite_

      private RegexMatchAndSubstitute regexRewrite_
    • PATH_REWRITE_POLICY_FIELD_NUMBER

      public static final int PATH_REWRITE_POLICY_FIELD_NUMBER
      See Also:
    • pathRewritePolicy_

      private TypedExtensionConfig pathRewritePolicy_
    • HOST_REWRITE_LITERAL_FIELD_NUMBER

      public static final int HOST_REWRITE_LITERAL_FIELD_NUMBER
      See Also:
    • AUTO_HOST_REWRITE_FIELD_NUMBER

      public static final int AUTO_HOST_REWRITE_FIELD_NUMBER
      See Also:
    • HOST_REWRITE_HEADER_FIELD_NUMBER

      public static final int HOST_REWRITE_HEADER_FIELD_NUMBER
      See Also:
    • HOST_REWRITE_PATH_REGEX_FIELD_NUMBER

      public static final int HOST_REWRITE_PATH_REGEX_FIELD_NUMBER
      See Also:
    • APPEND_X_FORWARDED_HOST_FIELD_NUMBER

      public static final int APPEND_X_FORWARDED_HOST_FIELD_NUMBER
      See Also:
    • appendXForwardedHost_

      private boolean appendXForwardedHost_
    • TIMEOUT_FIELD_NUMBER

      public static final int TIMEOUT_FIELD_NUMBER
      See Also:
    • timeout_

      private com.google.protobuf.Duration timeout_
    • IDLE_TIMEOUT_FIELD_NUMBER

      public static final int IDLE_TIMEOUT_FIELD_NUMBER
      See Also:
    • idleTimeout_

      private com.google.protobuf.Duration idleTimeout_
    • EARLY_DATA_POLICY_FIELD_NUMBER

      public static final int EARLY_DATA_POLICY_FIELD_NUMBER
      See Also:
    • earlyDataPolicy_

      private TypedExtensionConfig earlyDataPolicy_
    • RETRY_POLICY_FIELD_NUMBER

      public static final int RETRY_POLICY_FIELD_NUMBER
      See Also:
    • retryPolicy_

      private RetryPolicy retryPolicy_
    • RETRY_POLICY_TYPED_CONFIG_FIELD_NUMBER

      public static final int RETRY_POLICY_TYPED_CONFIG_FIELD_NUMBER
      See Also:
    • retryPolicyTypedConfig_

      private com.google.protobuf.Any retryPolicyTypedConfig_
    • REQUEST_MIRROR_POLICIES_FIELD_NUMBER

      public static final int REQUEST_MIRROR_POLICIES_FIELD_NUMBER
      See Also:
    • requestMirrorPolicies_

      private List<RouteAction.RequestMirrorPolicy> requestMirrorPolicies_
    • PRIORITY_FIELD_NUMBER

      public static final int PRIORITY_FIELD_NUMBER
      See Also:
    • priority_

      private int priority_
    • RATE_LIMITS_FIELD_NUMBER

      public static final int RATE_LIMITS_FIELD_NUMBER
      See Also:
    • rateLimits_

      private List<RateLimit> rateLimits_
    • INCLUDE_VH_RATE_LIMITS_FIELD_NUMBER

      public static final int INCLUDE_VH_RATE_LIMITS_FIELD_NUMBER
      See Also:
    • includeVhRateLimits_

      private com.google.protobuf.BoolValue includeVhRateLimits_
    • HASH_POLICY_FIELD_NUMBER

      public static final int HASH_POLICY_FIELD_NUMBER
      See Also:
    • hashPolicy_

      private List<RouteAction.HashPolicy> hashPolicy_
    • CORS_FIELD_NUMBER

      public static final int CORS_FIELD_NUMBER
      See Also:
    • cors_

      private CorsPolicy cors_
    • MAX_GRPC_TIMEOUT_FIELD_NUMBER

      public static final int MAX_GRPC_TIMEOUT_FIELD_NUMBER
      See Also:
    • maxGrpcTimeout_

      private com.google.protobuf.Duration maxGrpcTimeout_
    • GRPC_TIMEOUT_OFFSET_FIELD_NUMBER

      public static final int GRPC_TIMEOUT_OFFSET_FIELD_NUMBER
      See Also:
    • grpcTimeoutOffset_

      private com.google.protobuf.Duration grpcTimeoutOffset_
    • UPGRADE_CONFIGS_FIELD_NUMBER

      public static final int UPGRADE_CONFIGS_FIELD_NUMBER
      See Also:
    • upgradeConfigs_

      private List<RouteAction.UpgradeConfig> upgradeConfigs_
    • INTERNAL_REDIRECT_POLICY_FIELD_NUMBER

      public static final int INTERNAL_REDIRECT_POLICY_FIELD_NUMBER
      See Also:
    • internalRedirectPolicy_

      private InternalRedirectPolicy internalRedirectPolicy_
    • INTERNAL_REDIRECT_ACTION_FIELD_NUMBER

      public static final int INTERNAL_REDIRECT_ACTION_FIELD_NUMBER
      See Also:
    • internalRedirectAction_

      private int internalRedirectAction_
    • MAX_INTERNAL_REDIRECTS_FIELD_NUMBER

      public static final int MAX_INTERNAL_REDIRECTS_FIELD_NUMBER
      See Also:
    • maxInternalRedirects_

      private com.google.protobuf.UInt32Value maxInternalRedirects_
    • HEDGE_POLICY_FIELD_NUMBER

      public static final int HEDGE_POLICY_FIELD_NUMBER
      See Also:
    • hedgePolicy_

      private HedgePolicy hedgePolicy_
    • MAX_STREAM_DURATION_FIELD_NUMBER

      public static final int MAX_STREAM_DURATION_FIELD_NUMBER
      See Also:
    • maxStreamDuration_

      private RouteAction.MaxStreamDuration maxStreamDuration_
    • memoizedIsInitialized

      private byte memoizedIsInitialized
    • DEFAULT_INSTANCE

      private static final RouteAction DEFAULT_INSTANCE
    • PARSER

      private static final com.google.protobuf.Parser<RouteAction> PARSER
  • Constructor Details

    • RouteAction

      private RouteAction(com.google.protobuf.GeneratedMessage.Builder<?> builder)
    • RouteAction

      private RouteAction()
  • Method Details

    • getDescriptor

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

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessage
    • getClusterSpecifierCase

      public RouteAction.ClusterSpecifierCase getClusterSpecifierCase()
      Specified by:
      getClusterSpecifierCase in interface RouteActionOrBuilder
    • getHostRewriteSpecifierCase

      public RouteAction.HostRewriteSpecifierCase getHostRewriteSpecifierCase()
      Specified by:
      getHostRewriteSpecifierCase in interface RouteActionOrBuilder
    • hasCluster

      public boolean hasCluster()
       Indicates the upstream cluster to which the request should be routed
       to.
       
      string cluster = 1 [(.validate.rules) = { ... }
      Specified by:
      hasCluster in interface RouteActionOrBuilder
      Returns:
      Whether the cluster field is set.
    • getCluster

      public String getCluster()
       Indicates the upstream cluster to which the request should be routed
       to.
       
      string cluster = 1 [(.validate.rules) = { ... }
      Specified by:
      getCluster in interface RouteActionOrBuilder
      Returns:
      The cluster.
    • getClusterBytes

      public com.google.protobuf.ByteString getClusterBytes()
       Indicates the upstream cluster to which the request should be routed
       to.
       
      string cluster = 1 [(.validate.rules) = { ... }
      Specified by:
      getClusterBytes in interface RouteActionOrBuilder
      Returns:
      The bytes for cluster.
    • hasClusterHeader

      public boolean hasClusterHeader()
       Envoy will determine the cluster to route to by reading the value of the
       HTTP header named by cluster_header from the request headers. If the
       header is not found or the referenced cluster does not exist, Envoy will
       return a 404 response.
      
       .. attention::
      
       Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
       ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
      
       .. note::
      
       If the header appears multiple times only the first value is used.
       
      string cluster_header = 2 [(.validate.rules) = { ... }
      Specified by:
      hasClusterHeader in interface RouteActionOrBuilder
      Returns:
      Whether the clusterHeader field is set.
    • getClusterHeader

      public String getClusterHeader()
       Envoy will determine the cluster to route to by reading the value of the
       HTTP header named by cluster_header from the request headers. If the
       header is not found or the referenced cluster does not exist, Envoy will
       return a 404 response.
      
       .. attention::
      
       Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
       ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
      
       .. note::
      
       If the header appears multiple times only the first value is used.
       
      string cluster_header = 2 [(.validate.rules) = { ... }
      Specified by:
      getClusterHeader in interface RouteActionOrBuilder
      Returns:
      The clusterHeader.
    • getClusterHeaderBytes

      public com.google.protobuf.ByteString getClusterHeaderBytes()
       Envoy will determine the cluster to route to by reading the value of the
       HTTP header named by cluster_header from the request headers. If the
       header is not found or the referenced cluster does not exist, Envoy will
       return a 404 response.
      
       .. attention::
      
       Internally, Envoy always uses the HTTP/2 ``:authority`` header to represent the HTTP/1
       ``Host`` header. Thus, if attempting to match on ``Host``, match on ``:authority`` instead.
      
       .. note::
      
       If the header appears multiple times only the first value is used.
       
      string cluster_header = 2 [(.validate.rules) = { ... }
      Specified by:
      getClusterHeaderBytes in interface RouteActionOrBuilder
      Returns:
      The bytes for clusterHeader.
    • hasWeightedClusters

      public boolean hasWeightedClusters()
       Multiple upstream clusters can be specified for a given route. The
       request is routed to one of the upstream clusters based on weights
       assigned to each cluster. See
       :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
       for additional documentation.
       
      .envoy.config.route.v3.WeightedCluster weighted_clusters = 3;
      Specified by:
      hasWeightedClusters in interface RouteActionOrBuilder
      Returns:
      Whether the weightedClusters field is set.
    • getWeightedClusters

      public WeightedCluster getWeightedClusters()
       Multiple upstream clusters can be specified for a given route. The
       request is routed to one of the upstream clusters based on weights
       assigned to each cluster. See
       :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
       for additional documentation.
       
      .envoy.config.route.v3.WeightedCluster weighted_clusters = 3;
      Specified by:
      getWeightedClusters in interface RouteActionOrBuilder
      Returns:
      The weightedClusters.
    • getWeightedClustersOrBuilder

      public WeightedClusterOrBuilder getWeightedClustersOrBuilder()
       Multiple upstream clusters can be specified for a given route. The
       request is routed to one of the upstream clusters based on weights
       assigned to each cluster. See
       :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
       for additional documentation.
       
      .envoy.config.route.v3.WeightedCluster weighted_clusters = 3;
      Specified by:
      getWeightedClustersOrBuilder in interface RouteActionOrBuilder
    • hasClusterSpecifierPlugin

      public boolean hasClusterSpecifierPlugin()
       Name of the cluster specifier plugin to use to determine the cluster for requests on this route.
       The cluster specifier plugin name must be defined in the associated
       :ref:`cluster specifier plugins <envoy_v3_api_field_config.route.v3.RouteConfiguration.cluster_specifier_plugins>`
       in the :ref:`name <envoy_v3_api_field_config.core.v3.TypedExtensionConfig.name>` field.
       
      string cluster_specifier_plugin = 37;
      Specified by:
      hasClusterSpecifierPlugin in interface RouteActionOrBuilder
      Returns:
      Whether the clusterSpecifierPlugin field is set.
    • getClusterSpecifierPlugin

      public String getClusterSpecifierPlugin()
       Name of the cluster specifier plugin to use to determine the cluster for requests on this route.
       The cluster specifier plugin name must be defined in the associated
       :ref:`cluster specifier plugins <envoy_v3_api_field_config.route.v3.RouteConfiguration.cluster_specifier_plugins>`
       in the :ref:`name <envoy_v3_api_field_config.core.v3.TypedExtensionConfig.name>` field.
       
      string cluster_specifier_plugin = 37;
      Specified by:
      getClusterSpecifierPlugin in interface RouteActionOrBuilder
      Returns:
      The clusterSpecifierPlugin.
    • getClusterSpecifierPluginBytes

      public com.google.protobuf.ByteString getClusterSpecifierPluginBytes()
       Name of the cluster specifier plugin to use to determine the cluster for requests on this route.
       The cluster specifier plugin name must be defined in the associated
       :ref:`cluster specifier plugins <envoy_v3_api_field_config.route.v3.RouteConfiguration.cluster_specifier_plugins>`
       in the :ref:`name <envoy_v3_api_field_config.core.v3.TypedExtensionConfig.name>` field.
       
      string cluster_specifier_plugin = 37;
      Specified by:
      getClusterSpecifierPluginBytes in interface RouteActionOrBuilder
      Returns:
      The bytes for clusterSpecifierPlugin.
    • hasInlineClusterSpecifierPlugin

      public boolean hasInlineClusterSpecifierPlugin()
       Custom cluster specifier plugin configuration to use to determine the cluster for requests
       on this route.
       
      .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39;
      Specified by:
      hasInlineClusterSpecifierPlugin in interface RouteActionOrBuilder
      Returns:
      Whether the inlineClusterSpecifierPlugin field is set.
    • getInlineClusterSpecifierPlugin

      public ClusterSpecifierPlugin getInlineClusterSpecifierPlugin()
       Custom cluster specifier plugin configuration to use to determine the cluster for requests
       on this route.
       
      .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39;
      Specified by:
      getInlineClusterSpecifierPlugin in interface RouteActionOrBuilder
      Returns:
      The inlineClusterSpecifierPlugin.
    • getInlineClusterSpecifierPluginOrBuilder

      public ClusterSpecifierPluginOrBuilder getInlineClusterSpecifierPluginOrBuilder()
       Custom cluster specifier plugin configuration to use to determine the cluster for requests
       on this route.
       
      .envoy.config.route.v3.ClusterSpecifierPlugin inline_cluster_specifier_plugin = 39;
      Specified by:
      getInlineClusterSpecifierPluginOrBuilder in interface RouteActionOrBuilder
    • getClusterNotFoundResponseCodeValue

      public int getClusterNotFoundResponseCodeValue()
       The HTTP status code to use when configured cluster is not found.
       The default response code is 503 Service Unavailable.
       
      .envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode cluster_not_found_response_code = 20 [(.validate.rules) = { ... }
      Specified by:
      getClusterNotFoundResponseCodeValue in interface RouteActionOrBuilder
      Returns:
      The enum numeric value on the wire for clusterNotFoundResponseCode.
    • getClusterNotFoundResponseCode

      public RouteAction.ClusterNotFoundResponseCode getClusterNotFoundResponseCode()
       The HTTP status code to use when configured cluster is not found.
       The default response code is 503 Service Unavailable.
       
      .envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode cluster_not_found_response_code = 20 [(.validate.rules) = { ... }
      Specified by:
      getClusterNotFoundResponseCode in interface RouteActionOrBuilder
      Returns:
      The clusterNotFoundResponseCode.
    • hasMetadataMatch

      public boolean hasMetadataMatch()
       Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
       in the upstream cluster with metadata matching what's set in this field will be considered
       for load balancing. If using :ref:`weighted_clusters
       <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
       provided there taking precedence. The filter name should be specified as ``envoy.lb``.
       
      .envoy.config.core.v3.Metadata metadata_match = 4;
      Specified by:
      hasMetadataMatch in interface RouteActionOrBuilder
      Returns:
      Whether the metadataMatch field is set.
    • getMetadataMatch

      public Metadata getMetadataMatch()
       Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
       in the upstream cluster with metadata matching what's set in this field will be considered
       for load balancing. If using :ref:`weighted_clusters
       <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
       provided there taking precedence. The filter name should be specified as ``envoy.lb``.
       
      .envoy.config.core.v3.Metadata metadata_match = 4;
      Specified by:
      getMetadataMatch in interface RouteActionOrBuilder
      Returns:
      The metadataMatch.
    • getMetadataMatchOrBuilder

      public MetadataOrBuilder getMetadataMatchOrBuilder()
       Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
       in the upstream cluster with metadata matching what's set in this field will be considered
       for load balancing. If using :ref:`weighted_clusters
       <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
       provided there taking precedence. The filter name should be specified as ``envoy.lb``.
       
      .envoy.config.core.v3.Metadata metadata_match = 4;
      Specified by:
      getMetadataMatchOrBuilder in interface RouteActionOrBuilder
    • getPrefixRewrite

      public String getPrefixRewrite()
       Indicates that during forwarding, the matched prefix (or path) should be
       swapped with this value. This option allows application URLs to be rooted
       at a different path from those exposed at the reverse proxy layer. The router filter will
       place the original path before rewrite into the :ref:`x-envoy-original-path
       <config_http_filters_router_x-envoy-original-path>` header.
      
       Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`
       :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`,
       or :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>` may be specified.
      
       .. attention::
      
       Pay careful attention to the use of trailing slashes in the
       :ref:`route's match <envoy_v3_api_field_config.route.v3.Route.match>` prefix value.
       Stripping a prefix from a path requires multiple Routes to handle all cases. For example,
       rewriting ``/prefix`` to ``/`` and ``/prefix/etc`` to ``/etc`` cannot be done in a single
       :ref:`Route <envoy_v3_api_msg_config.route.v3.Route>`, as shown by the below config entries:
      
       .. code-block:: yaml
      
       - match:
       prefix: "/prefix/"
       route:
       prefix_rewrite: "/"
       - match:
       prefix: "/prefix"
       route:
       prefix_rewrite: "/"
      
       Having above entries in the config, requests to ``/prefix`` will be stripped to ``/``, while
       requests to ``/prefix/etc`` will be stripped to ``/etc``.
       
      string prefix_rewrite = 5 [(.validate.rules) = { ... }
      Specified by:
      getPrefixRewrite in interface RouteActionOrBuilder
      Returns:
      The prefixRewrite.
    • getPrefixRewriteBytes

      public com.google.protobuf.ByteString getPrefixRewriteBytes()
       Indicates that during forwarding, the matched prefix (or path) should be
       swapped with this value. This option allows application URLs to be rooted
       at a different path from those exposed at the reverse proxy layer. The router filter will
       place the original path before rewrite into the :ref:`x-envoy-original-path
       <config_http_filters_router_x-envoy-original-path>` header.
      
       Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`
       :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`,
       or :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>` may be specified.
      
       .. attention::
      
       Pay careful attention to the use of trailing slashes in the
       :ref:`route's match <envoy_v3_api_field_config.route.v3.Route.match>` prefix value.
       Stripping a prefix from a path requires multiple Routes to handle all cases. For example,
       rewriting ``/prefix`` to ``/`` and ``/prefix/etc`` to ``/etc`` cannot be done in a single
       :ref:`Route <envoy_v3_api_msg_config.route.v3.Route>`, as shown by the below config entries:
      
       .. code-block:: yaml
      
       - match:
       prefix: "/prefix/"
       route:
       prefix_rewrite: "/"
       - match:
       prefix: "/prefix"
       route:
       prefix_rewrite: "/"
      
       Having above entries in the config, requests to ``/prefix`` will be stripped to ``/``, while
       requests to ``/prefix/etc`` will be stripped to ``/etc``.
       
      string prefix_rewrite = 5 [(.validate.rules) = { ... }
      Specified by:
      getPrefixRewriteBytes in interface RouteActionOrBuilder
      Returns:
      The bytes for prefixRewrite.
    • hasRegexRewrite

      public boolean hasRegexRewrite()
       Indicates that during forwarding, portions of the path that match the
       pattern should be rewritten, even allowing the substitution of capture
       groups from the pattern into the new path as specified by the rewrite
       substitution string. This is useful to allow application paths to be
       rewritten in a way that is aware of segments with variable content like
       identifiers. The router filter will place the original path as it was
       before the rewrite into the :ref:`x-envoy-original-path
       <config_http_filters_router_x-envoy-original-path>` header.
      
       Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
       :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
       :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
       may be specified.
      
       Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
      
       * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
       string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
       into ``/v1/api/instance/foo``.
      
       * The pattern ``one`` paired with a substitution string of ``two`` would
       transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
      
       * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
       ``\1two\2`` would replace only the first occurrence of ``one``,
       transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
      
       * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
       would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
       ``/aaa/yyy/bbb``.
       
      .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32;
      Specified by:
      hasRegexRewrite in interface RouteActionOrBuilder
      Returns:
      Whether the regexRewrite field is set.
    • getRegexRewrite

      public RegexMatchAndSubstitute getRegexRewrite()
       Indicates that during forwarding, portions of the path that match the
       pattern should be rewritten, even allowing the substitution of capture
       groups from the pattern into the new path as specified by the rewrite
       substitution string. This is useful to allow application paths to be
       rewritten in a way that is aware of segments with variable content like
       identifiers. The router filter will place the original path as it was
       before the rewrite into the :ref:`x-envoy-original-path
       <config_http_filters_router_x-envoy-original-path>` header.
      
       Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
       :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
       :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
       may be specified.
      
       Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
      
       * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
       string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
       into ``/v1/api/instance/foo``.
      
       * The pattern ``one`` paired with a substitution string of ``two`` would
       transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
      
       * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
       ``\1two\2`` would replace only the first occurrence of ``one``,
       transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
      
       * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
       would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
       ``/aaa/yyy/bbb``.
       
      .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32;
      Specified by:
      getRegexRewrite in interface RouteActionOrBuilder
      Returns:
      The regexRewrite.
    • getRegexRewriteOrBuilder

      public RegexMatchAndSubstituteOrBuilder getRegexRewriteOrBuilder()
       Indicates that during forwarding, portions of the path that match the
       pattern should be rewritten, even allowing the substitution of capture
       groups from the pattern into the new path as specified by the rewrite
       substitution string. This is useful to allow application paths to be
       rewritten in a way that is aware of segments with variable content like
       identifiers. The router filter will place the original path as it was
       before the rewrite into the :ref:`x-envoy-original-path
       <config_http_filters_router_x-envoy-original-path>` header.
      
       Only one of :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
       :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`, or
       :ref:`path_rewrite_policy <envoy_v3_api_field_config.route.v3.RouteAction.path_rewrite_policy>`]
       may be specified.
      
       Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
      
       * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
       string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
       into ``/v1/api/instance/foo``.
      
       * The pattern ``one`` paired with a substitution string of ``two`` would
       transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
      
       * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
       ``\1two\2`` would replace only the first occurrence of ``one``,
       transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
      
       * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
       would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
       ``/aaa/yyy/bbb``.
       
      .envoy.type.matcher.v3.RegexMatchAndSubstitute regex_rewrite = 32;
      Specified by:
      getRegexRewriteOrBuilder in interface RouteActionOrBuilder
    • hasPathRewritePolicy

      public boolean hasPathRewritePolicy()
       [#extension-category: envoy.path.rewrite]
       
      .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41;
      Specified by:
      hasPathRewritePolicy in interface RouteActionOrBuilder
      Returns:
      Whether the pathRewritePolicy field is set.
    • getPathRewritePolicy

      public TypedExtensionConfig getPathRewritePolicy()
       [#extension-category: envoy.path.rewrite]
       
      .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41;
      Specified by:
      getPathRewritePolicy in interface RouteActionOrBuilder
      Returns:
      The pathRewritePolicy.
    • getPathRewritePolicyOrBuilder

      public TypedExtensionConfigOrBuilder getPathRewritePolicyOrBuilder()
       [#extension-category: envoy.path.rewrite]
       
      .envoy.config.core.v3.TypedExtensionConfig path_rewrite_policy = 41;
      Specified by:
      getPathRewritePolicyOrBuilder in interface RouteActionOrBuilder
    • hasHostRewriteLiteral

      public boolean hasHostRewriteLiteral()
       Indicates that during forwarding, the host header will be swapped with
       this value. Using this option will append the
       :ref:`config_http_conn_man_headers_x-forwarded-host` header if
       :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
       is set.
       
      string host_rewrite_literal = 6 [(.validate.rules) = { ... }
      Specified by:
      hasHostRewriteLiteral in interface RouteActionOrBuilder
      Returns:
      Whether the hostRewriteLiteral field is set.
    • getHostRewriteLiteral

      public String getHostRewriteLiteral()
       Indicates that during forwarding, the host header will be swapped with
       this value. Using this option will append the
       :ref:`config_http_conn_man_headers_x-forwarded-host` header if
       :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
       is set.
       
      string host_rewrite_literal = 6 [(.validate.rules) = { ... }
      Specified by:
      getHostRewriteLiteral in interface RouteActionOrBuilder
      Returns:
      The hostRewriteLiteral.
    • getHostRewriteLiteralBytes

      public com.google.protobuf.ByteString getHostRewriteLiteralBytes()
       Indicates that during forwarding, the host header will be swapped with
       this value. Using this option will append the
       :ref:`config_http_conn_man_headers_x-forwarded-host` header if
       :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
       is set.
       
      string host_rewrite_literal = 6 [(.validate.rules) = { ... }
      Specified by:
      getHostRewriteLiteralBytes in interface RouteActionOrBuilder
      Returns:
      The bytes for hostRewriteLiteral.
    • hasAutoHostRewrite

      public boolean hasAutoHostRewrite()
       Indicates that during forwarding, the host header will be swapped with
       the hostname of the upstream host chosen by the cluster manager. This
       option is applicable only when the destination cluster for a route is of
       type ``strict_dns`` or ``logical_dns``,
       or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
       field is not empty. Setting this to true with other cluster types
       has no effect. Using this option will append the
       :ref:`config_http_conn_man_headers_x-forwarded-host` header if
       :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
       is set.
       
      .google.protobuf.BoolValue auto_host_rewrite = 7;
      Specified by:
      hasAutoHostRewrite in interface RouteActionOrBuilder
      Returns:
      Whether the autoHostRewrite field is set.
    • getAutoHostRewrite

      public com.google.protobuf.BoolValue getAutoHostRewrite()
       Indicates that during forwarding, the host header will be swapped with
       the hostname of the upstream host chosen by the cluster manager. This
       option is applicable only when the destination cluster for a route is of
       type ``strict_dns`` or ``logical_dns``,
       or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
       field is not empty. Setting this to true with other cluster types
       has no effect. Using this option will append the
       :ref:`config_http_conn_man_headers_x-forwarded-host` header if
       :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
       is set.
       
      .google.protobuf.BoolValue auto_host_rewrite = 7;
      Specified by:
      getAutoHostRewrite in interface RouteActionOrBuilder
      Returns:
      The autoHostRewrite.
    • getAutoHostRewriteOrBuilder

      public com.google.protobuf.BoolValueOrBuilder getAutoHostRewriteOrBuilder()
       Indicates that during forwarding, the host header will be swapped with
       the hostname of the upstream host chosen by the cluster manager. This
       option is applicable only when the destination cluster for a route is of
       type ``strict_dns`` or ``logical_dns``,
       or when :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.hostname>`
       field is not empty. Setting this to true with other cluster types
       has no effect. Using this option will append the
       :ref:`config_http_conn_man_headers_x-forwarded-host` header if
       :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
       is set.
       
      .google.protobuf.BoolValue auto_host_rewrite = 7;
      Specified by:
      getAutoHostRewriteOrBuilder in interface RouteActionOrBuilder
    • hasHostRewriteHeader

      public boolean hasHostRewriteHeader()
       Indicates that during forwarding, the host header will be swapped with the content of given
       downstream or :ref:`custom <config_http_conn_man_headers_custom_request_headers>` header.
       If header value is empty, host header is left intact. Using this option will append the
       :ref:`config_http_conn_man_headers_x-forwarded-host` header if
       :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
       is set.
      
       .. attention::
      
       Pay attention to the potential security implications of using this option. Provided header
       must come from trusted source.
      
       .. note::
      
       If the header appears multiple times only the first value is used.
       
      string host_rewrite_header = 29 [(.validate.rules) = { ... }
      Specified by:
      hasHostRewriteHeader in interface RouteActionOrBuilder
      Returns:
      Whether the hostRewriteHeader field is set.
    • getHostRewriteHeader

      public String getHostRewriteHeader()
       Indicates that during forwarding, the host header will be swapped with the content of given
       downstream or :ref:`custom <config_http_conn_man_headers_custom_request_headers>` header.
       If header value is empty, host header is left intact. Using this option will append the
       :ref:`config_http_conn_man_headers_x-forwarded-host` header if
       :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
       is set.
      
       .. attention::
      
       Pay attention to the potential security implications of using this option. Provided header
       must come from trusted source.
      
       .. note::
      
       If the header appears multiple times only the first value is used.
       
      string host_rewrite_header = 29 [(.validate.rules) = { ... }
      Specified by:
      getHostRewriteHeader in interface RouteActionOrBuilder
      Returns:
      The hostRewriteHeader.
    • getHostRewriteHeaderBytes

      public com.google.protobuf.ByteString getHostRewriteHeaderBytes()
       Indicates that during forwarding, the host header will be swapped with the content of given
       downstream or :ref:`custom <config_http_conn_man_headers_custom_request_headers>` header.
       If header value is empty, host header is left intact. Using this option will append the
       :ref:`config_http_conn_man_headers_x-forwarded-host` header if
       :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
       is set.
      
       .. attention::
      
       Pay attention to the potential security implications of using this option. Provided header
       must come from trusted source.
      
       .. note::
      
       If the header appears multiple times only the first value is used.
       
      string host_rewrite_header = 29 [(.validate.rules) = { ... }
      Specified by:
      getHostRewriteHeaderBytes in interface RouteActionOrBuilder
      Returns:
      The bytes for hostRewriteHeader.
    • hasHostRewritePathRegex

      public boolean hasHostRewritePathRegex()
       Indicates that during forwarding, the host header will be swapped with
       the result of the regex substitution executed on path value with query and fragment removed.
       This is useful for transitioning variable content between path segment and subdomain.
       Using this option will append the
       :ref:`config_http_conn_man_headers_x-forwarded-host` header if
       :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
       is set.
      
       For example with the following config:
      
       .. code-block:: yaml
      
       host_rewrite_path_regex:
       pattern:
       google_re2: {}
       regex: "^/(.+)/.+$"
       substitution: \1
      
       Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
       
      .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35;
      Specified by:
      hasHostRewritePathRegex in interface RouteActionOrBuilder
      Returns:
      Whether the hostRewritePathRegex field is set.
    • getHostRewritePathRegex

      public RegexMatchAndSubstitute getHostRewritePathRegex()
       Indicates that during forwarding, the host header will be swapped with
       the result of the regex substitution executed on path value with query and fragment removed.
       This is useful for transitioning variable content between path segment and subdomain.
       Using this option will append the
       :ref:`config_http_conn_man_headers_x-forwarded-host` header if
       :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
       is set.
      
       For example with the following config:
      
       .. code-block:: yaml
      
       host_rewrite_path_regex:
       pattern:
       google_re2: {}
       regex: "^/(.+)/.+$"
       substitution: \1
      
       Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
       
      .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35;
      Specified by:
      getHostRewritePathRegex in interface RouteActionOrBuilder
      Returns:
      The hostRewritePathRegex.
    • getHostRewritePathRegexOrBuilder

      public RegexMatchAndSubstituteOrBuilder getHostRewritePathRegexOrBuilder()
       Indicates that during forwarding, the host header will be swapped with
       the result of the regex substitution executed on path value with query and fragment removed.
       This is useful for transitioning variable content between path segment and subdomain.
       Using this option will append the
       :ref:`config_http_conn_man_headers_x-forwarded-host` header if
       :ref:`append_x_forwarded_host <envoy_v3_api_field_config.route.v3.RouteAction.append_x_forwarded_host>`
       is set.
      
       For example with the following config:
      
       .. code-block:: yaml
      
       host_rewrite_path_regex:
       pattern:
       google_re2: {}
       regex: "^/(.+)/.+$"
       substitution: \1
      
       Would rewrite the host header to ``envoyproxy.io`` given the path ``/envoyproxy.io/some/path``.
       
      .envoy.type.matcher.v3.RegexMatchAndSubstitute host_rewrite_path_regex = 35;
      Specified by:
      getHostRewritePathRegexOrBuilder in interface RouteActionOrBuilder
    • getAppendXForwardedHost

      public boolean getAppendXForwardedHost()
       If set, then a host rewrite action (one of
       :ref:`host_rewrite_literal <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_literal>`,
       :ref:`auto_host_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.auto_host_rewrite>`,
       :ref:`host_rewrite_header <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_header>`, or
       :ref:`host_rewrite_path_regex <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_path_regex>`)
       causes the original value of the host header, if any, to be appended to the
       :ref:`config_http_conn_man_headers_x-forwarded-host` HTTP header if it is different to the last value appended.
       
      bool append_x_forwarded_host = 38;
      Specified by:
      getAppendXForwardedHost in interface RouteActionOrBuilder
      Returns:
      The appendXForwardedHost.
    • hasTimeout

      public boolean hasTimeout()
       Specifies the upstream timeout for the route. If not specified, the default is 15s. This
       spans between the point at which the entire downstream request (i.e. end-of-stream) has been
       processed and when the upstream response has been completely processed. A value of 0 will
       disable the route's timeout.
      
       .. note::
      
       This timeout includes all retries. See also
       :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
       :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
       :ref:`retry overview <arch_overview_http_routing_retry>`.
       
      .google.protobuf.Duration timeout = 8;
      Specified by:
      hasTimeout in interface RouteActionOrBuilder
      Returns:
      Whether the timeout field is set.
    • getTimeout

      public com.google.protobuf.Duration getTimeout()
       Specifies the upstream timeout for the route. If not specified, the default is 15s. This
       spans between the point at which the entire downstream request (i.e. end-of-stream) has been
       processed and when the upstream response has been completely processed. A value of 0 will
       disable the route's timeout.
      
       .. note::
      
       This timeout includes all retries. See also
       :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
       :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
       :ref:`retry overview <arch_overview_http_routing_retry>`.
       
      .google.protobuf.Duration timeout = 8;
      Specified by:
      getTimeout in interface RouteActionOrBuilder
      Returns:
      The timeout.
    • getTimeoutOrBuilder

      public com.google.protobuf.DurationOrBuilder getTimeoutOrBuilder()
       Specifies the upstream timeout for the route. If not specified, the default is 15s. This
       spans between the point at which the entire downstream request (i.e. end-of-stream) has been
       processed and when the upstream response has been completely processed. A value of 0 will
       disable the route's timeout.
      
       .. note::
      
       This timeout includes all retries. See also
       :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
       :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
       :ref:`retry overview <arch_overview_http_routing_retry>`.
       
      .google.protobuf.Duration timeout = 8;
      Specified by:
      getTimeoutOrBuilder in interface RouteActionOrBuilder
    • hasIdleTimeout

      public boolean hasIdleTimeout()
       Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
       although the connection manager wide :ref:`stream_idle_timeout
       <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
       will still apply. A value of 0 will completely disable the route's idle timeout, even if a
       connection manager stream idle timeout is configured.
      
       The idle timeout is distinct to :ref:`timeout
       <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
       on the upstream response time; :ref:`idle_timeout
       <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
       of time the request's stream may be idle.
      
       After header decoding, the idle timeout will apply on downstream and
       upstream request events. Each time an encode/decode event for headers or
       data is processed for the stream, the timer will be reset. If the timeout
       fires, the stream is terminated with a 408 Request Timeout error code if no
       upstream response header has been received, otherwise a stream reset
       occurs.
      
       If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
       is configured, this timeout is scaled according to the value for
       :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
       
      .google.protobuf.Duration idle_timeout = 24;
      Specified by:
      hasIdleTimeout in interface RouteActionOrBuilder
      Returns:
      Whether the idleTimeout field is set.
    • getIdleTimeout

      public com.google.protobuf.Duration getIdleTimeout()
       Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
       although the connection manager wide :ref:`stream_idle_timeout
       <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
       will still apply. A value of 0 will completely disable the route's idle timeout, even if a
       connection manager stream idle timeout is configured.
      
       The idle timeout is distinct to :ref:`timeout
       <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
       on the upstream response time; :ref:`idle_timeout
       <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
       of time the request's stream may be idle.
      
       After header decoding, the idle timeout will apply on downstream and
       upstream request events. Each time an encode/decode event for headers or
       data is processed for the stream, the timer will be reset. If the timeout
       fires, the stream is terminated with a 408 Request Timeout error code if no
       upstream response header has been received, otherwise a stream reset
       occurs.
      
       If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
       is configured, this timeout is scaled according to the value for
       :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
       
      .google.protobuf.Duration idle_timeout = 24;
      Specified by:
      getIdleTimeout in interface RouteActionOrBuilder
      Returns:
      The idleTimeout.
    • getIdleTimeoutOrBuilder

      public com.google.protobuf.DurationOrBuilder getIdleTimeoutOrBuilder()
       Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
       although the connection manager wide :ref:`stream_idle_timeout
       <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
       will still apply. A value of 0 will completely disable the route's idle timeout, even if a
       connection manager stream idle timeout is configured.
      
       The idle timeout is distinct to :ref:`timeout
       <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
       on the upstream response time; :ref:`idle_timeout
       <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
       of time the request's stream may be idle.
      
       After header decoding, the idle timeout will apply on downstream and
       upstream request events. Each time an encode/decode event for headers or
       data is processed for the stream, the timer will be reset. If the timeout
       fires, the stream is terminated with a 408 Request Timeout error code if no
       upstream response header has been received, otherwise a stream reset
       occurs.
      
       If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
       is configured, this timeout is scaled according to the value for
       :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
       
      .google.protobuf.Duration idle_timeout = 24;
      Specified by:
      getIdleTimeoutOrBuilder in interface RouteActionOrBuilder
    • hasEarlyDataPolicy

      public boolean hasEarlyDataPolicy()
       Specifies how to send request over TLS early data.
       If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
       [#extension-category: envoy.route.early_data_policy]
       
      .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40;
      Specified by:
      hasEarlyDataPolicy in interface RouteActionOrBuilder
      Returns:
      Whether the earlyDataPolicy field is set.
    • getEarlyDataPolicy

      public TypedExtensionConfig getEarlyDataPolicy()
       Specifies how to send request over TLS early data.
       If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
       [#extension-category: envoy.route.early_data_policy]
       
      .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40;
      Specified by:
      getEarlyDataPolicy in interface RouteActionOrBuilder
      Returns:
      The earlyDataPolicy.
    • getEarlyDataPolicyOrBuilder

      public TypedExtensionConfigOrBuilder getEarlyDataPolicyOrBuilder()
       Specifies how to send request over TLS early data.
       If absent, allows `safe HTTP requests <https://www.rfc-editor.org/rfc/rfc7231#section-4.2.1>`_ to be sent on early data.
       [#extension-category: envoy.route.early_data_policy]
       
      .envoy.config.core.v3.TypedExtensionConfig early_data_policy = 40;
      Specified by:
      getEarlyDataPolicyOrBuilder in interface RouteActionOrBuilder
    • hasRetryPolicy

      public boolean hasRetryPolicy()
       Indicates that the route has a retry policy. Note that if this is set,
       it'll take precedence over the virtual host level retry policy entirely
       (e.g.: policies are not merged, most internal one becomes the enforced policy).
       
      .envoy.config.route.v3.RetryPolicy retry_policy = 9;
      Specified by:
      hasRetryPolicy in interface RouteActionOrBuilder
      Returns:
      Whether the retryPolicy field is set.
    • getRetryPolicy

      public RetryPolicy getRetryPolicy()
       Indicates that the route has a retry policy. Note that if this is set,
       it'll take precedence over the virtual host level retry policy entirely
       (e.g.: policies are not merged, most internal one becomes the enforced policy).
       
      .envoy.config.route.v3.RetryPolicy retry_policy = 9;
      Specified by:
      getRetryPolicy in interface RouteActionOrBuilder
      Returns:
      The retryPolicy.
    • getRetryPolicyOrBuilder

      public RetryPolicyOrBuilder getRetryPolicyOrBuilder()
       Indicates that the route has a retry policy. Note that if this is set,
       it'll take precedence over the virtual host level retry policy entirely
       (e.g.: policies are not merged, most internal one becomes the enforced policy).
       
      .envoy.config.route.v3.RetryPolicy retry_policy = 9;
      Specified by:
      getRetryPolicyOrBuilder in interface RouteActionOrBuilder
    • hasRetryPolicyTypedConfig

      public boolean hasRetryPolicyTypedConfig()
       [#not-implemented-hide:]
       Specifies the configuration for retry policy extension. Note that if this is set, it'll take
       precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
       most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
       should not be set if this field is used.
       
      .google.protobuf.Any retry_policy_typed_config = 33;
      Specified by:
      hasRetryPolicyTypedConfig in interface RouteActionOrBuilder
      Returns:
      Whether the retryPolicyTypedConfig field is set.
    • getRetryPolicyTypedConfig

      public com.google.protobuf.Any getRetryPolicyTypedConfig()
       [#not-implemented-hide:]
       Specifies the configuration for retry policy extension. Note that if this is set, it'll take
       precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
       most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
       should not be set if this field is used.
       
      .google.protobuf.Any retry_policy_typed_config = 33;
      Specified by:
      getRetryPolicyTypedConfig in interface RouteActionOrBuilder
      Returns:
      The retryPolicyTypedConfig.
    • getRetryPolicyTypedConfigOrBuilder

      public com.google.protobuf.AnyOrBuilder getRetryPolicyTypedConfigOrBuilder()
       [#not-implemented-hide:]
       Specifies the configuration for retry policy extension. Note that if this is set, it'll take
       precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
       most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
       should not be set if this field is used.
       
      .google.protobuf.Any retry_policy_typed_config = 33;
      Specified by:
      getRetryPolicyTypedConfigOrBuilder in interface RouteActionOrBuilder
    • getRequestMirrorPoliciesList

      public List<RouteAction.RequestMirrorPolicy> getRequestMirrorPoliciesList()
       Specify a set of route request mirroring policies.
       It takes precedence over the virtual host and route config mirror policy entirely.
       That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
       
      repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30;
      Specified by:
      getRequestMirrorPoliciesList in interface RouteActionOrBuilder
    • getRequestMirrorPoliciesOrBuilderList

      public List<? extends RouteAction.RequestMirrorPolicyOrBuilder> getRequestMirrorPoliciesOrBuilderList()
       Specify a set of route request mirroring policies.
       It takes precedence over the virtual host and route config mirror policy entirely.
       That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
       
      repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30;
      Specified by:
      getRequestMirrorPoliciesOrBuilderList in interface RouteActionOrBuilder
    • getRequestMirrorPoliciesCount

      public int getRequestMirrorPoliciesCount()
       Specify a set of route request mirroring policies.
       It takes precedence over the virtual host and route config mirror policy entirely.
       That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
       
      repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30;
      Specified by:
      getRequestMirrorPoliciesCount in interface RouteActionOrBuilder
    • getRequestMirrorPolicies

      public RouteAction.RequestMirrorPolicy getRequestMirrorPolicies(int index)
       Specify a set of route request mirroring policies.
       It takes precedence over the virtual host and route config mirror policy entirely.
       That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
       
      repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30;
      Specified by:
      getRequestMirrorPolicies in interface RouteActionOrBuilder
    • getRequestMirrorPoliciesOrBuilder

      public RouteAction.RequestMirrorPolicyOrBuilder getRequestMirrorPoliciesOrBuilder(int index)
       Specify a set of route request mirroring policies.
       It takes precedence over the virtual host and route config mirror policy entirely.
       That is, policies are not merged, the most specific non-empty one becomes the mirror policies.
       
      repeated .envoy.config.route.v3.RouteAction.RequestMirrorPolicy request_mirror_policies = 30;
      Specified by:
      getRequestMirrorPoliciesOrBuilder in interface RouteActionOrBuilder
    • getPriorityValue

      public int getPriorityValue()
       Optionally specifies the :ref:`routing priority <arch_overview_http_routing_priority>`.
       
      .envoy.config.core.v3.RoutingPriority priority = 11 [(.validate.rules) = { ... }
      Specified by:
      getPriorityValue in interface RouteActionOrBuilder
      Returns:
      The enum numeric value on the wire for priority.
    • getPriority

      public RoutingPriority getPriority()
       Optionally specifies the :ref:`routing priority <arch_overview_http_routing_priority>`.
       
      .envoy.config.core.v3.RoutingPriority priority = 11 [(.validate.rules) = { ... }
      Specified by:
      getPriority in interface RouteActionOrBuilder
      Returns:
      The priority.
    • getRateLimitsList

      public List<RateLimit> getRateLimitsList()
       Specifies a set of rate limit configurations that could be applied to the
       route.
       
      repeated .envoy.config.route.v3.RateLimit rate_limits = 13;
      Specified by:
      getRateLimitsList in interface RouteActionOrBuilder
    • getRateLimitsOrBuilderList

      public List<? extends RateLimitOrBuilder> getRateLimitsOrBuilderList()
       Specifies a set of rate limit configurations that could be applied to the
       route.
       
      repeated .envoy.config.route.v3.RateLimit rate_limits = 13;
      Specified by:
      getRateLimitsOrBuilderList in interface RouteActionOrBuilder
    • getRateLimitsCount

      public int getRateLimitsCount()
       Specifies a set of rate limit configurations that could be applied to the
       route.
       
      repeated .envoy.config.route.v3.RateLimit rate_limits = 13;
      Specified by:
      getRateLimitsCount in interface RouteActionOrBuilder
    • getRateLimits

      public RateLimit getRateLimits(int index)
       Specifies a set of rate limit configurations that could be applied to the
       route.
       
      repeated .envoy.config.route.v3.RateLimit rate_limits = 13;
      Specified by:
      getRateLimits in interface RouteActionOrBuilder
    • getRateLimitsOrBuilder

      public RateLimitOrBuilder getRateLimitsOrBuilder(int index)
       Specifies a set of rate limit configurations that could be applied to the
       route.
       
      repeated .envoy.config.route.v3.RateLimit rate_limits = 13;
      Specified by:
      getRateLimitsOrBuilder in interface RouteActionOrBuilder
    • hasIncludeVhRateLimits

      @Deprecated public boolean hasIncludeVhRateLimits()
      Deprecated.
      envoy.config.route.v3.RouteAction.include_vh_rate_limits is deprecated. See envoy/config/route/v3/route_components.proto;l=1295
       Specifies if the rate limit filter should include the virtual host rate
       limits. By default, if the route configured rate limits, the virtual host
       :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
       request.
      
       This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
       
      .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      hasIncludeVhRateLimits in interface RouteActionOrBuilder
      Returns:
      Whether the includeVhRateLimits field is set.
    • getIncludeVhRateLimits

      @Deprecated public com.google.protobuf.BoolValue getIncludeVhRateLimits()
      Deprecated.
      envoy.config.route.v3.RouteAction.include_vh_rate_limits is deprecated. See envoy/config/route/v3/route_components.proto;l=1295
       Specifies if the rate limit filter should include the virtual host rate
       limits. By default, if the route configured rate limits, the virtual host
       :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
       request.
      
       This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
       
      .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      getIncludeVhRateLimits in interface RouteActionOrBuilder
      Returns:
      The includeVhRateLimits.
    • getIncludeVhRateLimitsOrBuilder

      @Deprecated public com.google.protobuf.BoolValueOrBuilder getIncludeVhRateLimitsOrBuilder()
      Deprecated.
       Specifies if the rate limit filter should include the virtual host rate
       limits. By default, if the route configured rate limits, the virtual host
       :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
       request.
      
       This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
       
      .google.protobuf.BoolValue include_vh_rate_limits = 14 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      getIncludeVhRateLimitsOrBuilder in interface RouteActionOrBuilder
    • getHashPolicyList

      public List<RouteAction.HashPolicy> getHashPolicyList()
       Specifies a list of hash policies to use for ring hash load balancing. Each
       hash policy is evaluated individually and the combined result is used to
       route the request. The method of combination is deterministic such that
       identical lists of hash policies will produce the same hash. Since a hash
       policy examines specific parts of a request, it can fail to produce a hash
       (i.e. if the hashed header is not present). If (and only if) all configured
       hash policies fail to generate a hash, no hash will be produced for
       the route. In this case, the behavior is the same as if no hash policies
       were specified (i.e. the ring hash load balancer will choose a random
       backend). If a hash policy has the "terminal" attribute set to true, and
       there is already a hash generated, the hash is returned immediately,
       ignoring the rest of the hash policy list.
       
      repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15;
      Specified by:
      getHashPolicyList in interface RouteActionOrBuilder
    • getHashPolicyOrBuilderList

      public List<? extends RouteAction.HashPolicyOrBuilder> getHashPolicyOrBuilderList()
       Specifies a list of hash policies to use for ring hash load balancing. Each
       hash policy is evaluated individually and the combined result is used to
       route the request. The method of combination is deterministic such that
       identical lists of hash policies will produce the same hash. Since a hash
       policy examines specific parts of a request, it can fail to produce a hash
       (i.e. if the hashed header is not present). If (and only if) all configured
       hash policies fail to generate a hash, no hash will be produced for
       the route. In this case, the behavior is the same as if no hash policies
       were specified (i.e. the ring hash load balancer will choose a random
       backend). If a hash policy has the "terminal" attribute set to true, and
       there is already a hash generated, the hash is returned immediately,
       ignoring the rest of the hash policy list.
       
      repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15;
      Specified by:
      getHashPolicyOrBuilderList in interface RouteActionOrBuilder
    • getHashPolicyCount

      public int getHashPolicyCount()
       Specifies a list of hash policies to use for ring hash load balancing. Each
       hash policy is evaluated individually and the combined result is used to
       route the request. The method of combination is deterministic such that
       identical lists of hash policies will produce the same hash. Since a hash
       policy examines specific parts of a request, it can fail to produce a hash
       (i.e. if the hashed header is not present). If (and only if) all configured
       hash policies fail to generate a hash, no hash will be produced for
       the route. In this case, the behavior is the same as if no hash policies
       were specified (i.e. the ring hash load balancer will choose a random
       backend). If a hash policy has the "terminal" attribute set to true, and
       there is already a hash generated, the hash is returned immediately,
       ignoring the rest of the hash policy list.
       
      repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15;
      Specified by:
      getHashPolicyCount in interface RouteActionOrBuilder
    • getHashPolicy

      public RouteAction.HashPolicy getHashPolicy(int index)
       Specifies a list of hash policies to use for ring hash load balancing. Each
       hash policy is evaluated individually and the combined result is used to
       route the request. The method of combination is deterministic such that
       identical lists of hash policies will produce the same hash. Since a hash
       policy examines specific parts of a request, it can fail to produce a hash
       (i.e. if the hashed header is not present). If (and only if) all configured
       hash policies fail to generate a hash, no hash will be produced for
       the route. In this case, the behavior is the same as if no hash policies
       were specified (i.e. the ring hash load balancer will choose a random
       backend). If a hash policy has the "terminal" attribute set to true, and
       there is already a hash generated, the hash is returned immediately,
       ignoring the rest of the hash policy list.
       
      repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15;
      Specified by:
      getHashPolicy in interface RouteActionOrBuilder
    • getHashPolicyOrBuilder

      public RouteAction.HashPolicyOrBuilder getHashPolicyOrBuilder(int index)
       Specifies a list of hash policies to use for ring hash load balancing. Each
       hash policy is evaluated individually and the combined result is used to
       route the request. The method of combination is deterministic such that
       identical lists of hash policies will produce the same hash. Since a hash
       policy examines specific parts of a request, it can fail to produce a hash
       (i.e. if the hashed header is not present). If (and only if) all configured
       hash policies fail to generate a hash, no hash will be produced for
       the route. In this case, the behavior is the same as if no hash policies
       were specified (i.e. the ring hash load balancer will choose a random
       backend). If a hash policy has the "terminal" attribute set to true, and
       there is already a hash generated, the hash is returned immediately,
       ignoring the rest of the hash policy list.
       
      repeated .envoy.config.route.v3.RouteAction.HashPolicy hash_policy = 15;
      Specified by:
      getHashPolicyOrBuilder in interface RouteActionOrBuilder
    • hasCors

      @Deprecated public boolean hasCors()
      Deprecated.
      envoy.config.route.v3.RouteAction.cors is deprecated. See envoy/config/route/v3/route_components.proto;l=1322
       Indicates that the route has a CORS policy. This field is ignored if related cors policy is
       found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
       :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
      
       .. attention::
      
       This option has been deprecated. Please use
       :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
       :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
       to configure the CORS HTTP filter.
       
      .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      hasCors in interface RouteActionOrBuilder
      Returns:
      Whether the cors field is set.
    • getCors

      @Deprecated public CorsPolicy getCors()
      Deprecated.
      envoy.config.route.v3.RouteAction.cors is deprecated. See envoy/config/route/v3/route_components.proto;l=1322
       Indicates that the route has a CORS policy. This field is ignored if related cors policy is
       found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
       :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
      
       .. attention::
      
       This option has been deprecated. Please use
       :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
       :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
       to configure the CORS HTTP filter.
       
      .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      getCors in interface RouteActionOrBuilder
      Returns:
      The cors.
    • getCorsOrBuilder

      @Deprecated public CorsPolicyOrBuilder getCorsOrBuilder()
      Deprecated.
       Indicates that the route has a CORS policy. This field is ignored if related cors policy is
       found in the :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
       :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`.
      
       .. attention::
      
       This option has been deprecated. Please use
       :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>` or
       :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
       to configure the CORS HTTP filter.
       
      .envoy.config.route.v3.CorsPolicy cors = 17 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      getCorsOrBuilder in interface RouteActionOrBuilder
    • hasMaxGrpcTimeout

      @Deprecated public boolean hasMaxGrpcTimeout()
      Deprecated.
      envoy.config.route.v3.RouteAction.max_grpc_timeout is deprecated. See envoy/config/route/v3/route_components.proto;l=1344
       Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
       If present, and the request is a gRPC request, use the
       `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
       or its default value (infinity) instead of
       :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
       to the maximum value specified here. If configured as 0, the maximum allowed timeout for
       gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
       and gRPC requests time out like any other requests using
       :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
       This can be used to prevent unexpected upstream request timeouts due to potentially long
       time gaps between gRPC request and response in gRPC streaming mode.
      
       .. note::
      
       If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
       precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
       both are present. See also
       :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
       :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
       :ref:`retry overview <arch_overview_http_routing_retry>`.
       
      .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      hasMaxGrpcTimeout in interface RouteActionOrBuilder
      Returns:
      Whether the maxGrpcTimeout field is set.
    • getMaxGrpcTimeout

      @Deprecated public com.google.protobuf.Duration getMaxGrpcTimeout()
      Deprecated.
      envoy.config.route.v3.RouteAction.max_grpc_timeout is deprecated. See envoy/config/route/v3/route_components.proto;l=1344
       Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
       If present, and the request is a gRPC request, use the
       `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
       or its default value (infinity) instead of
       :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
       to the maximum value specified here. If configured as 0, the maximum allowed timeout for
       gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
       and gRPC requests time out like any other requests using
       :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
       This can be used to prevent unexpected upstream request timeouts due to potentially long
       time gaps between gRPC request and response in gRPC streaming mode.
      
       .. note::
      
       If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
       precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
       both are present. See also
       :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
       :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
       :ref:`retry overview <arch_overview_http_routing_retry>`.
       
      .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      getMaxGrpcTimeout in interface RouteActionOrBuilder
      Returns:
      The maxGrpcTimeout.
    • getMaxGrpcTimeoutOrBuilder

      @Deprecated public com.google.protobuf.DurationOrBuilder getMaxGrpcTimeoutOrBuilder()
      Deprecated.
       Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
       If present, and the request is a gRPC request, use the
       `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
       or its default value (infinity) instead of
       :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
       to the maximum value specified here. If configured as 0, the maximum allowed timeout for
       gRPC requests is infinity. If not configured at all, the ``grpc-timeout`` header is not used
       and gRPC requests time out like any other requests using
       :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
       This can be used to prevent unexpected upstream request timeouts due to potentially long
       time gaps between gRPC request and response in gRPC streaming mode.
      
       .. note::
      
       If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
       precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
       both are present. See also
       :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
       :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
       :ref:`retry overview <arch_overview_http_routing_retry>`.
       
      .google.protobuf.Duration max_grpc_timeout = 23 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      getMaxGrpcTimeoutOrBuilder in interface RouteActionOrBuilder
    • hasGrpcTimeoutOffset

      @Deprecated public boolean hasGrpcTimeoutOffset()
      Deprecated.
      envoy.config.route.v3.RouteAction.grpc_timeout_offset is deprecated. See envoy/config/route/v3/route_components.proto;l=1355
       Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
       If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
       the provided duration from the header. This is useful in allowing Envoy to set its global
       timeout to be less than that of the deadline imposed by the calling client, which makes it more
       likely that Envoy will handle the timeout instead of having the call canceled by the client.
       The offset will only be applied if the provided grpc_timeout is greater than the offset. This
       ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
       infinity).
       
      .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      hasGrpcTimeoutOffset in interface RouteActionOrBuilder
      Returns:
      Whether the grpcTimeoutOffset field is set.
    • getGrpcTimeoutOffset

      @Deprecated public com.google.protobuf.Duration getGrpcTimeoutOffset()
      Deprecated.
      envoy.config.route.v3.RouteAction.grpc_timeout_offset is deprecated. See envoy/config/route/v3/route_components.proto;l=1355
       Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
       If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
       the provided duration from the header. This is useful in allowing Envoy to set its global
       timeout to be less than that of the deadline imposed by the calling client, which makes it more
       likely that Envoy will handle the timeout instead of having the call canceled by the client.
       The offset will only be applied if the provided grpc_timeout is greater than the offset. This
       ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
       infinity).
       
      .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      getGrpcTimeoutOffset in interface RouteActionOrBuilder
      Returns:
      The grpcTimeoutOffset.
    • getGrpcTimeoutOffsetOrBuilder

      @Deprecated public com.google.protobuf.DurationOrBuilder getGrpcTimeoutOffsetOrBuilder()
      Deprecated.
       Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
       If present, Envoy will adjust the timeout provided by the ``grpc-timeout`` header by subtracting
       the provided duration from the header. This is useful in allowing Envoy to set its global
       timeout to be less than that of the deadline imposed by the calling client, which makes it more
       likely that Envoy will handle the timeout instead of having the call canceled by the client.
       The offset will only be applied if the provided grpc_timeout is greater than the offset. This
       ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
       infinity).
       
      .google.protobuf.Duration grpc_timeout_offset = 28 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      getGrpcTimeoutOffsetOrBuilder in interface RouteActionOrBuilder
    • getUpgradeConfigsList

      public List<RouteAction.UpgradeConfig> getUpgradeConfigsList()
      repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25;
      Specified by:
      getUpgradeConfigsList in interface RouteActionOrBuilder
    • getUpgradeConfigsOrBuilderList

      public List<? extends RouteAction.UpgradeConfigOrBuilder> getUpgradeConfigsOrBuilderList()
      repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25;
      Specified by:
      getUpgradeConfigsOrBuilderList in interface RouteActionOrBuilder
    • getUpgradeConfigsCount

      public int getUpgradeConfigsCount()
      repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25;
      Specified by:
      getUpgradeConfigsCount in interface RouteActionOrBuilder
    • getUpgradeConfigs

      public RouteAction.UpgradeConfig getUpgradeConfigs(int index)
      repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25;
      Specified by:
      getUpgradeConfigs in interface RouteActionOrBuilder
    • getUpgradeConfigsOrBuilder

      public RouteAction.UpgradeConfigOrBuilder getUpgradeConfigsOrBuilder(int index)
      repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25;
      Specified by:
      getUpgradeConfigsOrBuilder in interface RouteActionOrBuilder
    • hasInternalRedirectPolicy

      public boolean hasInternalRedirectPolicy()
       If present, Envoy will try to follow an upstream redirect response instead of proxying the
       response back to the downstream. An upstream redirect response is defined
       by :ref:`redirect_response_codes
       <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
       
      .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34;
      Specified by:
      hasInternalRedirectPolicy in interface RouteActionOrBuilder
      Returns:
      Whether the internalRedirectPolicy field is set.
    • getInternalRedirectPolicy

      public InternalRedirectPolicy getInternalRedirectPolicy()
       If present, Envoy will try to follow an upstream redirect response instead of proxying the
       response back to the downstream. An upstream redirect response is defined
       by :ref:`redirect_response_codes
       <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
       
      .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34;
      Specified by:
      getInternalRedirectPolicy in interface RouteActionOrBuilder
      Returns:
      The internalRedirectPolicy.
    • getInternalRedirectPolicyOrBuilder

      public InternalRedirectPolicyOrBuilder getInternalRedirectPolicyOrBuilder()
       If present, Envoy will try to follow an upstream redirect response instead of proxying the
       response back to the downstream. An upstream redirect response is defined
       by :ref:`redirect_response_codes
       <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
       
      .envoy.config.route.v3.InternalRedirectPolicy internal_redirect_policy = 34;
      Specified by:
      getInternalRedirectPolicyOrBuilder in interface RouteActionOrBuilder
    • getInternalRedirectActionValue

      @Deprecated public int getInternalRedirectActionValue()
      Deprecated.
      envoy.config.route.v3.RouteAction.internal_redirect_action is deprecated. See envoy/config/route/v3/route_components.proto;l=1366
      .envoy.config.route.v3.RouteAction.InternalRedirectAction internal_redirect_action = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      getInternalRedirectActionValue in interface RouteActionOrBuilder
      Returns:
      The enum numeric value on the wire for internalRedirectAction.
    • getInternalRedirectAction

      @Deprecated public RouteAction.InternalRedirectAction getInternalRedirectAction()
      Deprecated.
      envoy.config.route.v3.RouteAction.internal_redirect_action is deprecated. See envoy/config/route/v3/route_components.proto;l=1366
      .envoy.config.route.v3.RouteAction.InternalRedirectAction internal_redirect_action = 26 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      getInternalRedirectAction in interface RouteActionOrBuilder
      Returns:
      The internalRedirectAction.
    • hasMaxInternalRedirects

      @Deprecated public boolean hasMaxInternalRedirects()
      Deprecated.
      envoy.config.route.v3.RouteAction.max_internal_redirects is deprecated. See envoy/config/route/v3/route_components.proto;l=1383
       An internal redirect is handled, iff the number of previous internal redirects that a
       downstream request has encountered is lower than this value, and
       :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
       is set to :ref:`HANDLE_INTERNAL_REDIRECT
       <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
       In the case where a downstream request is bounced among multiple routes by internal redirect,
       the first route that hits this threshold, or has
       :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
       set to
       :ref:`PASS_THROUGH_INTERNAL_REDIRECT
       <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
       will pass the redirect back to downstream.
      
       If not specified, at most one redirect will be followed.
       
      .google.protobuf.UInt32Value max_internal_redirects = 31 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      hasMaxInternalRedirects in interface RouteActionOrBuilder
      Returns:
      Whether the maxInternalRedirects field is set.
    • getMaxInternalRedirects

      @Deprecated public com.google.protobuf.UInt32Value getMaxInternalRedirects()
      Deprecated.
      envoy.config.route.v3.RouteAction.max_internal_redirects is deprecated. See envoy/config/route/v3/route_components.proto;l=1383
       An internal redirect is handled, iff the number of previous internal redirects that a
       downstream request has encountered is lower than this value, and
       :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
       is set to :ref:`HANDLE_INTERNAL_REDIRECT
       <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
       In the case where a downstream request is bounced among multiple routes by internal redirect,
       the first route that hits this threshold, or has
       :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
       set to
       :ref:`PASS_THROUGH_INTERNAL_REDIRECT
       <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
       will pass the redirect back to downstream.
      
       If not specified, at most one redirect will be followed.
       
      .google.protobuf.UInt32Value max_internal_redirects = 31 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      getMaxInternalRedirects in interface RouteActionOrBuilder
      Returns:
      The maxInternalRedirects.
    • getMaxInternalRedirectsOrBuilder

      @Deprecated public com.google.protobuf.UInt32ValueOrBuilder getMaxInternalRedirectsOrBuilder()
      Deprecated.
       An internal redirect is handled, iff the number of previous internal redirects that a
       downstream request has encountered is lower than this value, and
       :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
       is set to :ref:`HANDLE_INTERNAL_REDIRECT
       <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
       In the case where a downstream request is bounced among multiple routes by internal redirect,
       the first route that hits this threshold, or has
       :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
       set to
       :ref:`PASS_THROUGH_INTERNAL_REDIRECT
       <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
       will pass the redirect back to downstream.
      
       If not specified, at most one redirect will be followed.
       
      .google.protobuf.UInt32Value max_internal_redirects = 31 [deprecated = true, (.envoy.annotations.deprecated_at_minor_version) = "3.0"];
      Specified by:
      getMaxInternalRedirectsOrBuilder in interface RouteActionOrBuilder
    • hasHedgePolicy

      public boolean hasHedgePolicy()
       Indicates that the route has a hedge policy. Note that if this is set,
       it'll take precedence over the virtual host level hedge policy entirely
       (e.g.: policies are not merged, most internal one becomes the enforced policy).
       
      .envoy.config.route.v3.HedgePolicy hedge_policy = 27;
      Specified by:
      hasHedgePolicy in interface RouteActionOrBuilder
      Returns:
      Whether the hedgePolicy field is set.
    • getHedgePolicy

      public HedgePolicy getHedgePolicy()
       Indicates that the route has a hedge policy. Note that if this is set,
       it'll take precedence over the virtual host level hedge policy entirely
       (e.g.: policies are not merged, most internal one becomes the enforced policy).
       
      .envoy.config.route.v3.HedgePolicy hedge_policy = 27;
      Specified by:
      getHedgePolicy in interface RouteActionOrBuilder
      Returns:
      The hedgePolicy.
    • getHedgePolicyOrBuilder

      public HedgePolicyOrBuilder getHedgePolicyOrBuilder()
       Indicates that the route has a hedge policy. Note that if this is set,
       it'll take precedence over the virtual host level hedge policy entirely
       (e.g.: policies are not merged, most internal one becomes the enforced policy).
       
      .envoy.config.route.v3.HedgePolicy hedge_policy = 27;
      Specified by:
      getHedgePolicyOrBuilder in interface RouteActionOrBuilder
    • hasMaxStreamDuration

      public boolean hasMaxStreamDuration()
       Specifies the maximum stream duration for this route.
       
      .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36;
      Specified by:
      hasMaxStreamDuration in interface RouteActionOrBuilder
      Returns:
      Whether the maxStreamDuration field is set.
    • getMaxStreamDuration

      public RouteAction.MaxStreamDuration getMaxStreamDuration()
       Specifies the maximum stream duration for this route.
       
      .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36;
      Specified by:
      getMaxStreamDuration in interface RouteActionOrBuilder
      Returns:
      The maxStreamDuration.
    • getMaxStreamDurationOrBuilder

      public RouteAction.MaxStreamDurationOrBuilder getMaxStreamDurationOrBuilder()
       Specifies the maximum stream duration for this route.
       
      .envoy.config.route.v3.RouteAction.MaxStreamDuration max_stream_duration = 36;
      Specified by:
      getMaxStreamDurationOrBuilder in interface RouteActionOrBuilder
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessage
    • 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.GeneratedMessage
      Throws:
      IOException
    • getSerializedSize

      public int getSerializedSize()
      Specified by:
      getSerializedSize in interface com.google.protobuf.MessageLite
      Overrides:
      getSerializedSize in class com.google.protobuf.GeneratedMessage
    • 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 RouteAction parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

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

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

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

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

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

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

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

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

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

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

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

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

      public static RouteAction.Builder newBuilder()
    • newBuilder

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

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

      protected RouteAction.Builder newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent)
      Overrides:
      newBuilderForType in class com.google.protobuf.AbstractMessage
    • getDefaultInstance

      public static RouteAction getDefaultInstance()
    • parser

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

      public com.google.protobuf.Parser<RouteAction> 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.GeneratedMessage
    • getDefaultInstanceForType

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