...

Text file src/github.com/datawire/ambassador/v2/api/envoy/config/route/v4alpha/route.proto

Documentation: github.com/datawire/ambassador/v2/api/envoy/config/route/v4alpha

     1syntax = "proto3";
     2
     3package envoy.config.route.v4alpha;
     4
     5import "envoy/config/core/v4alpha/base.proto";
     6import "envoy/config/core/v4alpha/config_source.proto";
     7import "envoy/config/route/v4alpha/route_components.proto";
     8
     9import "google/protobuf/wrappers.proto";
    10
    11import "udpa/annotations/status.proto";
    12import "udpa/annotations/versioning.proto";
    13import "validate/validate.proto";
    14
    15option java_package = "io.envoyproxy.envoy.config.route.v4alpha";
    16option java_outer_classname = "RouteProto";
    17option java_multiple_files = true;
    18option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE;
    19
    20// [#protodoc-title: HTTP route configuration]
    21// * Routing :ref:`architecture overview <arch_overview_http_routing>`
    22// * HTTP :ref:`router filter <config_http_filters_router>`
    23
    24// [#next-free-field: 11]
    25message RouteConfiguration {
    26  option (udpa.annotations.versioning).previous_message_type =
    27      "envoy.config.route.v3.RouteConfiguration";
    28
    29  // The name of the route configuration. For example, it might match
    30  // :ref:`route_config_name
    31  // <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.Rds.route_config_name>` in
    32  // :ref:`envoy_api_msg_extensions.filters.network.http_connection_manager.v4alpha.Rds`.
    33  string name = 1;
    34
    35  // An array of virtual hosts that make up the route table.
    36  repeated VirtualHost virtual_hosts = 2;
    37
    38  // An array of virtual hosts will be dynamically loaded via the VHDS API.
    39  // Both *virtual_hosts* and *vhds* fields will be used when present. *virtual_hosts* can be used
    40  // for a base routing table or for infrequently changing virtual hosts. *vhds* is used for
    41  // on-demand discovery of virtual hosts. The contents of these two fields will be merged to
    42  // generate a routing table for a given RouteConfiguration, with *vhds* derived configuration
    43  // taking precedence.
    44  Vhds vhds = 9;
    45
    46  // Optionally specifies a list of HTTP headers that the connection manager
    47  // will consider to be internal only. If they are found on external requests they will be cleaned
    48  // prior to filter invocation. See :ref:`config_http_conn_man_headers_x-envoy-internal` for more
    49  // information.
    50  repeated string internal_only_headers = 3 [
    51    (validate.rules).repeated = {items {string {well_known_regex: HTTP_HEADER_NAME strict: false}}}
    52  ];
    53
    54  // Specifies a list of HTTP headers that should be added to each response that
    55  // the connection manager encodes. Headers specified at this level are applied
    56  // after headers from any enclosed :ref:`envoy_api_msg_config.route.v4alpha.VirtualHost` or
    57  // :ref:`envoy_api_msg_config.route.v4alpha.RouteAction`. For more information, including details on
    58  // header value syntax, see the documentation on :ref:`custom request headers
    59  // <config_http_conn_man_headers_custom_request_headers>`.
    60  repeated core.v4alpha.HeaderValueOption response_headers_to_add = 4
    61      [(validate.rules).repeated = {max_items: 1000}];
    62
    63  // Specifies a list of HTTP headers that should be removed from each response
    64  // that the connection manager encodes.
    65  repeated string response_headers_to_remove = 5 [
    66    (validate.rules).repeated = {items {string {well_known_regex: HTTP_HEADER_NAME strict: false}}}
    67  ];
    68
    69  // Specifies a list of HTTP headers that should be added to each request
    70  // routed by the HTTP connection manager. Headers specified at this level are
    71  // applied after headers from any enclosed :ref:`envoy_api_msg_config.route.v4alpha.VirtualHost` or
    72  // :ref:`envoy_api_msg_config.route.v4alpha.RouteAction`. For more information, including details on
    73  // header value syntax, see the documentation on :ref:`custom request headers
    74  // <config_http_conn_man_headers_custom_request_headers>`.
    75  repeated core.v4alpha.HeaderValueOption request_headers_to_add = 6
    76      [(validate.rules).repeated = {max_items: 1000}];
    77
    78  // Specifies a list of HTTP headers that should be removed from each request
    79  // routed by the HTTP connection manager.
    80  repeated string request_headers_to_remove = 8 [
    81    (validate.rules).repeated = {items {string {well_known_regex: HTTP_HEADER_NAME strict: false}}}
    82  ];
    83
    84  // By default, headers that should be added/removed are evaluated from most to least specific:
    85  //
    86  // * route level
    87  // * virtual host level
    88  // * connection manager level
    89  //
    90  // To allow setting overrides at the route or virtual host level, this order can be reversed
    91  // by setting this option to true. Defaults to false.
    92  //
    93  // [#next-major-version: In the v3 API, this will default to true.]
    94  bool most_specific_header_mutations_wins = 10;
    95
    96  // An optional boolean that specifies whether the clusters that the route
    97  // table refers to will be validated by the cluster manager. If set to true
    98  // and a route refers to a non-existent cluster, the route table will not
    99  // load. If set to false and a route refers to a non-existent cluster, the
   100  // route table will load and the router filter will return a 404 if the route
   101  // is selected at runtime. This setting defaults to true if the route table
   102  // is statically defined via the :ref:`route_config
   103  // <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.route_config>`
   104  // option. This setting default to false if the route table is loaded dynamically via the
   105  // :ref:`rds
   106  // <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.rds>`
   107  // option. Users may wish to override the default behavior in certain cases (for example when
   108  // using CDS with a static route table).
   109  google.protobuf.BoolValue validate_clusters = 7;
   110}
   111
   112message Vhds {
   113  option (udpa.annotations.versioning).previous_message_type = "envoy.config.route.v3.Vhds";
   114
   115  // Configuration source specifier for VHDS.
   116  core.v4alpha.ConfigSource config_source = 1 [(validate.rules).message = {required: true}];
   117}

View as plain text