Class RouteAction

  • All Implemented Interfaces:
    com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, RouteActionOrBuilder, java.io.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:
    Serialized Form
    • Field Detail

      • bitField0_

        private int bitField0_
      • clusterSpecifierCase_

        private int clusterSpecifierCase_
      • clusterSpecifier_

        private java.lang.Object clusterSpecifier_
      • hostRewriteSpecifierCase_

        private int hostRewriteSpecifierCase_
      • hostRewriteSpecifier_

        private java.lang.Object hostRewriteSpecifier_
      • CLUSTER_HEADER_FIELD_NUMBER

        public static final int CLUSTER_HEADER_FIELD_NUMBER
        See Also:
        Constant Field Values
      • WEIGHTED_CLUSTERS_FIELD_NUMBER

        public static final int WEIGHTED_CLUSTERS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • CLUSTER_SPECIFIER_PLUGIN_FIELD_NUMBER

        public static final int CLUSTER_SPECIFIER_PLUGIN_FIELD_NUMBER
        See Also:
        Constant Field Values
      • INLINE_CLUSTER_SPECIFIER_PLUGIN_FIELD_NUMBER

        public static final int INLINE_CLUSTER_SPECIFIER_PLUGIN_FIELD_NUMBER
        See Also:
        Constant Field Values
      • CLUSTER_NOT_FOUND_RESPONSE_CODE_FIELD_NUMBER

        public static final int CLUSTER_NOT_FOUND_RESPONSE_CODE_FIELD_NUMBER
        See Also:
        Constant Field Values
      • clusterNotFoundResponseCode_

        private int clusterNotFoundResponseCode_
      • METADATA_MATCH_FIELD_NUMBER

        public static final int METADATA_MATCH_FIELD_NUMBER
        See Also:
        Constant Field Values
      • metadataMatch_

        private Metadata metadataMatch_
      • PREFIX_REWRITE_FIELD_NUMBER

        public static final int PREFIX_REWRITE_FIELD_NUMBER
        See Also:
        Constant Field Values
      • prefixRewrite_

        private volatile java.lang.Object prefixRewrite_
      • REGEX_REWRITE_FIELD_NUMBER

        public static final int REGEX_REWRITE_FIELD_NUMBER
        See Also:
        Constant Field Values
      • PATH_REWRITE_POLICY_FIELD_NUMBER

        public static final int PATH_REWRITE_POLICY_FIELD_NUMBER
        See Also:
        Constant Field Values
      • HOST_REWRITE_LITERAL_FIELD_NUMBER

        public static final int HOST_REWRITE_LITERAL_FIELD_NUMBER
        See Also:
        Constant Field Values
      • AUTO_HOST_REWRITE_FIELD_NUMBER

        public static final int AUTO_HOST_REWRITE_FIELD_NUMBER
        See Also:
        Constant Field Values
      • HOST_REWRITE_HEADER_FIELD_NUMBER

        public static final int HOST_REWRITE_HEADER_FIELD_NUMBER
        See Also:
        Constant Field Values
      • HOST_REWRITE_PATH_REGEX_FIELD_NUMBER

        public static final int HOST_REWRITE_PATH_REGEX_FIELD_NUMBER
        See Also:
        Constant Field Values
      • APPEND_X_FORWARDED_HOST_FIELD_NUMBER

        public static final int APPEND_X_FORWARDED_HOST_FIELD_NUMBER
        See Also:
        Constant Field Values
      • appendXForwardedHost_

        private boolean appendXForwardedHost_
      • timeout_

        private com.google.protobuf.Duration timeout_
      • IDLE_TIMEOUT_FIELD_NUMBER

        public static final int IDLE_TIMEOUT_FIELD_NUMBER
        See Also:
        Constant Field Values
      • idleTimeout_

        private com.google.protobuf.Duration idleTimeout_
      • EARLY_DATA_POLICY_FIELD_NUMBER

        public static final int EARLY_DATA_POLICY_FIELD_NUMBER
        See Also:
        Constant Field Values
      • RETRY_POLICY_FIELD_NUMBER

        public static final int RETRY_POLICY_FIELD_NUMBER
        See Also:
        Constant Field Values
      • RETRY_POLICY_TYPED_CONFIG_FIELD_NUMBER

        public static final int RETRY_POLICY_TYPED_CONFIG_FIELD_NUMBER
        See Also:
        Constant Field Values
      • retryPolicyTypedConfig_

        private com.google.protobuf.Any retryPolicyTypedConfig_
      • REQUEST_MIRROR_POLICIES_FIELD_NUMBER

        public static final int REQUEST_MIRROR_POLICIES_FIELD_NUMBER
        See Also:
        Constant Field Values
      • priority_

        private int priority_
      • RATE_LIMITS_FIELD_NUMBER

        public static final int RATE_LIMITS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • rateLimits_

        private java.util.List<RateLimit> rateLimits_
      • INCLUDE_VH_RATE_LIMITS_FIELD_NUMBER

        public static final int INCLUDE_VH_RATE_LIMITS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • includeVhRateLimits_

        private com.google.protobuf.BoolValue includeVhRateLimits_
      • HASH_POLICY_FIELD_NUMBER

        public static final int HASH_POLICY_FIELD_NUMBER
        See Also:
        Constant Field Values
      • MAX_GRPC_TIMEOUT_FIELD_NUMBER

        public static final int MAX_GRPC_TIMEOUT_FIELD_NUMBER
        See Also:
        Constant Field Values
      • maxGrpcTimeout_

        private com.google.protobuf.Duration maxGrpcTimeout_
      • GRPC_TIMEOUT_OFFSET_FIELD_NUMBER

        public static final int GRPC_TIMEOUT_OFFSET_FIELD_NUMBER
        See Also:
        Constant Field Values
      • grpcTimeoutOffset_

        private com.google.protobuf.Duration grpcTimeoutOffset_
      • UPGRADE_CONFIGS_FIELD_NUMBER

        public static final int UPGRADE_CONFIGS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • INTERNAL_REDIRECT_POLICY_FIELD_NUMBER

        public static final int INTERNAL_REDIRECT_POLICY_FIELD_NUMBER
        See Also:
        Constant Field Values
      • INTERNAL_REDIRECT_ACTION_FIELD_NUMBER

        public static final int INTERNAL_REDIRECT_ACTION_FIELD_NUMBER
        See Also:
        Constant Field Values
      • internalRedirectAction_

        private int internalRedirectAction_
      • MAX_INTERNAL_REDIRECTS_FIELD_NUMBER

        public static final int MAX_INTERNAL_REDIRECTS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • maxInternalRedirects_

        private com.google.protobuf.UInt32Value maxInternalRedirects_
      • HEDGE_POLICY_FIELD_NUMBER

        public static final int HEDGE_POLICY_FIELD_NUMBER
        See Also:
        Constant Field Values
      • MAX_STREAM_DURATION_FIELD_NUMBER

        public static final int MAX_STREAM_DURATION_FIELD_NUMBER
        See Also:
        Constant Field Values
      • memoizedIsInitialized

        private byte memoizedIsInitialized
      • DEFAULT_INSTANCE

        private static final RouteAction DEFAULT_INSTANCE
      • PARSER

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

      • RouteAction

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

        private RouteAction()
    • Method Detail

      • 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
      • 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 java.lang.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 java.lang.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 java.lang.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.
      • 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 java.lang.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.
      • 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 java.lang.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 java.lang.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 java.util.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 java.util.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 java.util.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 java.util.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 java.util.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 java.util.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
      • getUpgradeConfigsCount

        public int getUpgradeConfigsCount()
        repeated .envoy.config.route.v3.RouteAction.UpgradeConfig upgrade_configs = 25;
        Specified by:
        getUpgradeConfigsCount 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.
      • 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 java.io.IOException
        Specified by:
        writeTo in interface com.google.protobuf.MessageLite
        Overrides:
        writeTo in class com.google.protobuf.GeneratedMessage
        Throws:
        java.io.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​(java.lang.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​(java.nio.ByteBuffer data)
                                     throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static RouteAction parseFrom​(java.nio.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​(java.io.InputStream input)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • parseFrom

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

        public static RouteAction parseDelimitedFrom​(java.io.InputStream input)
                                              throws java.io.IOException
        Throws:
        java.io.IOException
      • parseDelimitedFrom

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

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

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

        public RouteAction.Builder newBuilderForType()
        Specified by:
        newBuilderForType in interface com.google.protobuf.Message
        Specified by:
        newBuilderForType in interface com.google.protobuf.MessageLite
      • 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