.. _envoy_api_file_envoy/api/v2/rds.proto:

HTTP route configuration
========================

* Routing :ref:`architecture overview <arch_overview_http_routing>`
* HTTP :ref:`router filter <config_http_filters_router>`

.. _envoy_api_msg_RouteConfiguration:

RouteConfiguration
------------------

`[RouteConfiguration proto] <https://github.com/envoyproxy/envoy/blob/master/api/envoy/api/v2/rds.proto#L44>`_


.. code-block:: json

  {
    "name": "...",
    "virtual_hosts": [],
    "internal_only_headers": [],
    "response_headers_to_add": [],
    "response_headers_to_remove": [],
    "request_headers_to_add": [],
    "request_headers_to_remove": [],
    "validate_clusters": "{...}"
  }

.. _envoy_api_field_RouteConfiguration.name:

name
  (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The name of the route configuration. For example, it might match
  :ref:`route_config_name
  <envoy_api_field_config.filter.network.http_connection_manager.v2.Rds.route_config_name>` in
  :ref:`envoy_api_msg_config.filter.network.http_connection_manager.v2.Rds`.
  
  
.. _envoy_api_field_RouteConfiguration.virtual_hosts:

virtual_hosts
  (:ref:`route.VirtualHost <envoy_api_msg_route.VirtualHost>`) An array of virtual hosts that make up the route table.
  
  
.. _envoy_api_field_RouteConfiguration.internal_only_headers:

internal_only_headers
  (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) Optionally specifies a list of HTTP headers that the connection manager
  will consider to be internal only. If they are found on external requests they will be cleaned
  prior to filter invocation. See :ref:`config_http_conn_man_headers_x-envoy-internal` for more
  information.
  
  
.. _envoy_api_field_RouteConfiguration.response_headers_to_add:

response_headers_to_add
  (:ref:`core.HeaderValueOption <envoy_api_msg_core.HeaderValueOption>`) Specifies a list of HTTP headers that should be added to each response that
  the connection manager encodes. Headers specified at this level are applied
  after headers from any enclosed :ref:`envoy_api_msg_route.VirtualHost` or
  :ref:`envoy_api_msg_route.RouteAction`. For more information, including details on
  header value syntax, see the documentation on :ref:`custom request headers
  <config_http_conn_man_headers_custom_request_headers>`.
  
  
.. _envoy_api_field_RouteConfiguration.response_headers_to_remove:

response_headers_to_remove
  (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) Specifies a list of HTTP headers that should be removed from each response
  that the connection manager encodes.
  
  
.. _envoy_api_field_RouteConfiguration.request_headers_to_add:

request_headers_to_add
  (:ref:`core.HeaderValueOption <envoy_api_msg_core.HeaderValueOption>`) Specifies a list of HTTP headers that should be added to each request
  routed by the HTTP connection manager. Headers specified at this level are
  applied after headers from any enclosed :ref:`envoy_api_msg_route.VirtualHost` or
  :ref:`envoy_api_msg_route.RouteAction`. For more information, including details on
  header value syntax, see the documentation on :ref:`custom request headers
  <config_http_conn_man_headers_custom_request_headers>`.
  
  
.. _envoy_api_field_RouteConfiguration.request_headers_to_remove:

request_headers_to_remove
  (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) Specifies a list of HTTP headers that should be removed from each request
  routed by the HTTP connection manager.
  
  
.. _envoy_api_field_RouteConfiguration.validate_clusters:

validate_clusters
  (`BoolValue <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#boolvalue>`_) An optional boolean that specifies whether the clusters that the route
  table refers to will be validated by the cluster manager. If set to true
  and a route refers to a non-existent cluster, the route table will not
  load. If set to false and a route refers to a non-existent cluster, the
  route table will load and the router filter will return a 404 if the route
  is selected at runtime. This setting defaults to true if the route table
  is statically defined via the :ref:`route_config
  <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.route_config>`
  option. This setting default to false if the route table is loaded dynamically via the
  :ref:`rds
  <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.rds>`
  option. Users may which to override the default behavior in certain cases (for example when
  using CDS with a static route table).