async-grpc-xds 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/fixtures/async/grpc/test_interface.rb +79 -0
  4. data/fixtures/async/grpc/test_message.rb +56 -0
  5. data/lib/async/grpc/xds/ads_stream.rb +70 -0
  6. data/lib/async/grpc/xds/client.rb +255 -0
  7. data/lib/async/grpc/xds/context.rb +201 -0
  8. data/lib/async/grpc/xds/control_plane.rb +143 -0
  9. data/lib/async/grpc/xds/discovery_client.rb +356 -0
  10. data/lib/async/grpc/xds/health_checker.rb +88 -0
  11. data/lib/async/grpc/xds/load_balancer.rb +196 -0
  12. data/lib/async/grpc/xds/resource_builder.rb +138 -0
  13. data/lib/async/grpc/xds/resource_cache.rb +55 -0
  14. data/lib/async/grpc/xds/resources.rb +270 -0
  15. data/lib/async/grpc/xds/server.rb +34 -0
  16. data/lib/async/grpc/xds/service.rb +117 -0
  17. data/lib/async/grpc/xds/version.rb +12 -0
  18. data/lib/async/grpc/xds.rb +42 -0
  19. data/lib/envoy/annotations/deprecation_pb.rb +19 -0
  20. data/lib/envoy/config/cluster/v3/circuit_breaker_pb.rb +31 -0
  21. data/lib/envoy/config/cluster/v3/cluster_pb.rb +80 -0
  22. data/lib/envoy/config/cluster/v3/filter_pb.rb +28 -0
  23. data/lib/envoy/config/cluster/v3/outlier_detection_pb.rb +29 -0
  24. data/lib/envoy/config/core/v3/address_pb.rb +38 -0
  25. data/lib/envoy/config/core/v3/backoff_pb.rb +27 -0
  26. data/lib/envoy/config/core/v3/base_pb.rb +68 -0
  27. data/lib/envoy/config/core/v3/cel_pb.rb +24 -0
  28. data/lib/envoy/config/core/v3/config_source_pb.rb +42 -0
  29. data/lib/envoy/config/core/v3/event_service_config_pb.rb +27 -0
  30. data/lib/envoy/config/core/v3/extension_pb.rb +26 -0
  31. data/lib/envoy/config/core/v3/grpc_method_list_pb.rb +27 -0
  32. data/lib/envoy/config/core/v3/grpc_service_pb.rb +45 -0
  33. data/lib/envoy/config/core/v3/health_check_pb.rb +47 -0
  34. data/lib/envoy/config/core/v3/http_service_pb.rb +27 -0
  35. data/lib/envoy/config/core/v3/http_uri_pb.rb +27 -0
  36. data/lib/envoy/config/core/v3/protocol_pb.rb +51 -0
  37. data/lib/envoy/config/core/v3/proxy_protocol_pb.rb +31 -0
  38. data/lib/envoy/config/core/v3/resolver_pb.rb +27 -0
  39. data/lib/envoy/config/core/v3/socket_cmsg_headers_pb.rb +25 -0
  40. data/lib/envoy/config/core/v3/socket_option_pb.rb +31 -0
  41. data/lib/envoy/config/core/v3/substitution_format_string_pb.rb +30 -0
  42. data/lib/envoy/config/core/v3/udp_socket_config_pb.rb +26 -0
  43. data/lib/envoy/config/endpoint/v3/endpoint_components_pb.rb +40 -0
  44. data/lib/envoy/config/endpoint/v3/endpoint_pb.rb +32 -0
  45. data/lib/envoy/config/endpoint/v3/load_report_pb.rb +36 -0
  46. data/lib/envoy/service/discovery/v3/ads_pb.rb +26 -0
  47. data/lib/envoy/service/discovery/v3/aggregated_discovery_service.rb +64 -0
  48. data/lib/envoy/service/discovery/v3/discovery_pb.rb +42 -0
  49. data/lib/envoy/type/matcher/v3/address_pb.rb +25 -0
  50. data/lib/envoy/type/matcher/v3/filter_state_pb.rb +27 -0
  51. data/lib/envoy/type/matcher/v3/http_inputs_pb.rb +29 -0
  52. data/lib/envoy/type/matcher/v3/metadata_pb.rb +28 -0
  53. data/lib/envoy/type/matcher/v3/node_pb.rb +27 -0
  54. data/lib/envoy/type/matcher/v3/number_pb.rb +27 -0
  55. data/lib/envoy/type/matcher/v3/path_pb.rb +27 -0
  56. data/lib/envoy/type/matcher/v3/regex_pb.rb +30 -0
  57. data/lib/envoy/type/matcher/v3/status_code_input_pb.rb +25 -0
  58. data/lib/envoy/type/matcher/v3/string_pb.rb +29 -0
  59. data/lib/envoy/type/matcher/v3/struct_pb.rb +28 -0
  60. data/lib/envoy/type/matcher/v3/value_pb.rb +31 -0
  61. data/lib/envoy/type/metadata/v3/metadata_pb.rb +32 -0
  62. data/lib/envoy/type/v3/hash_policy_pb.rb +26 -0
  63. data/lib/envoy/type/v3/http_pb.rb +22 -0
  64. data/lib/envoy/type/v3/http_status_pb.rb +25 -0
  65. data/lib/envoy/type/v3/percent_pb.rb +26 -0
  66. data/lib/envoy/type/v3/range_pb.rb +25 -0
  67. data/lib/envoy/type/v3/ratelimit_strategy_pb.rb +28 -0
  68. data/lib/envoy/type/v3/ratelimit_unit_pb.rb +22 -0
  69. data/lib/envoy/type/v3/semantic_version_pb.rb +23 -0
  70. data/lib/envoy/type/v3/token_bucket_pb.rb +26 -0
  71. data/lib/envoy.rb +83 -0
  72. data/lib/google/protobuf/any_pb.rb +18 -0
  73. data/lib/google/protobuf/duration_pb.rb +18 -0
  74. data/lib/google/protobuf/empty_pb.rb +18 -0
  75. data/lib/google/protobuf/struct_pb.rb +21 -0
  76. data/lib/google/protobuf/timestamp_pb.rb +18 -0
  77. data/lib/google/protobuf/wrappers_pb.rb +26 -0
  78. data/lib/google/rpc/status_pb.rb +20 -0
  79. data/lib/udpa/annotations/migrate_pb.rb +22 -0
  80. data/lib/udpa/annotations/security_pb.rb +23 -0
  81. data/lib/udpa/annotations/sensitive_pb.rb +19 -0
  82. data/lib/udpa/annotations/status_pb.rb +21 -0
  83. data/lib/udpa/annotations/versioning_pb.rb +20 -0
  84. data/lib/validate/validate_pb.rb +43 -0
  85. data/lib/xds/annotations/v3/status_pb.rb +26 -0
  86. data/lib/xds/core/v3/authority_pb.rb +23 -0
  87. data/lib/xds/core/v3/cidr_pb.rb +24 -0
  88. data/lib/xds/core/v3/collection_entry_pb.rb +26 -0
  89. data/lib/xds/core/v3/context_params_pb.rb +22 -0
  90. data/lib/xds/core/v3/extension_pb.rb +23 -0
  91. data/lib/xds/core/v3/resource_locator_pb.rb +26 -0
  92. data/lib/xds/core/v3/resource_name_pb.rb +24 -0
  93. data/lib/xds/core/v3/resource_pb.rb +24 -0
  94. data/lib/xds/type/matcher/v3/domain_pb.rb +27 -0
  95. data/lib/xds/type/matcher/v3/http_inputs_pb.rb +22 -0
  96. data/lib/xds/type/matcher/v3/ip_pb.rb +28 -0
  97. data/lib/xds/type/matcher/v3/matcher_pb.rb +34 -0
  98. data/lib/xds/type/matcher/v3/range_pb.rb +31 -0
  99. data/lib/xds/type/matcher/v3/regex_pb.rb +25 -0
  100. data/lib/xds/type/matcher/v3/string_pb.rb +27 -0
  101. data/license.md +21 -0
  102. data/plan.md +156 -0
  103. data/proto/envoy/annotations/deprecation.proto +34 -0
  104. data/proto/envoy/annotations/resource.proto +19 -0
  105. data/proto/envoy/config/README.md +3 -0
  106. data/proto/envoy/config/cluster/v3/BUILD +18 -0
  107. data/proto/envoy/config/cluster/v3/circuit_breaker.proto +121 -0
  108. data/proto/envoy/config/cluster/v3/cluster.proto +1407 -0
  109. data/proto/envoy/config/cluster/v3/filter.proto +40 -0
  110. data/proto/envoy/config/cluster/v3/outlier_detection.proto +180 -0
  111. data/proto/envoy/config/core/v3/BUILD +16 -0
  112. data/proto/envoy/config/core/v3/address.proto +214 -0
  113. data/proto/envoy/config/core/v3/backoff.proto +37 -0
  114. data/proto/envoy/config/core/v3/base.proto +662 -0
  115. data/proto/envoy/config/core/v3/cel.proto +63 -0
  116. data/proto/envoy/config/core/v3/config_source.proto +283 -0
  117. data/proto/envoy/config/core/v3/event_service_config.proto +29 -0
  118. data/proto/envoy/config/core/v3/extension.proto +32 -0
  119. data/proto/envoy/config/core/v3/grpc_method_list.proto +33 -0
  120. data/proto/envoy/config/core/v3/grpc_service.proto +355 -0
  121. data/proto/envoy/config/core/v3/health_check.proto +443 -0
  122. data/proto/envoy/config/core/v3/http_service.proto +35 -0
  123. data/proto/envoy/config/core/v3/http_uri.proto +58 -0
  124. data/proto/envoy/config/core/v3/protocol.proto +807 -0
  125. data/proto/envoy/config/core/v3/proxy_protocol.proto +114 -0
  126. data/proto/envoy/config/core/v3/resolver.proto +36 -0
  127. data/proto/envoy/config/core/v3/socket_cmsg_headers.proto +28 -0
  128. data/proto/envoy/config/core/v3/socket_option.proto +108 -0
  129. data/proto/envoy/config/core/v3/substitution_format_string.proto +136 -0
  130. data/proto/envoy/config/core/v3/udp_socket_config.proto +32 -0
  131. data/proto/envoy/config/endpoint/v3/BUILD +16 -0
  132. data/proto/envoy/config/endpoint/v3/endpoint.proto +137 -0
  133. data/proto/envoy/config/endpoint/v3/endpoint_components.proto +229 -0
  134. data/proto/envoy/config/endpoint/v3/load_report.proto +220 -0
  135. data/proto/envoy/config/listener/v3/BUILD +18 -0
  136. data/proto/envoy/config/listener/v3/api_listener.proto +34 -0
  137. data/proto/envoy/config/listener/v3/listener.proto +455 -0
  138. data/proto/envoy/config/listener/v3/listener_components.proto +353 -0
  139. data/proto/envoy/config/listener/v3/quic_config.proto +108 -0
  140. data/proto/envoy/config/listener/v3/udp_listener_config.proto +52 -0
  141. data/proto/envoy/config/route/v3/BUILD +19 -0
  142. data/proto/envoy/config/route/v3/route.proto +172 -0
  143. data/proto/envoy/config/route/v3/route_components.proto +2918 -0
  144. data/proto/envoy/config/route/v3/scoped_route.proto +133 -0
  145. data/proto/envoy/extensions/transport_sockets/tls/v3/BUILD +14 -0
  146. data/proto/envoy/extensions/transport_sockets/tls/v3/cert.proto +12 -0
  147. data/proto/envoy/extensions/transport_sockets/tls/v3/common.proto +597 -0
  148. data/proto/envoy/extensions/transport_sockets/tls/v3/secret.proto +61 -0
  149. data/proto/envoy/extensions/transport_sockets/tls/v3/tls.proto +366 -0
  150. data/proto/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.proto +67 -0
  151. data/proto/envoy/service/README.md +3 -0
  152. data/proto/envoy/service/discovery/v3/BUILD +13 -0
  153. data/proto/envoy/service/discovery/v3/ads.proto +44 -0
  154. data/proto/envoy/service/discovery/v3/discovery.proto +443 -0
  155. data/proto/envoy/type/BUILD +9 -0
  156. data/proto/envoy/type/hash_policy.proto +28 -0
  157. data/proto/envoy/type/http.proto +24 -0
  158. data/proto/envoy/type/http_status.proto +140 -0
  159. data/proto/envoy/type/matcher/v3/address.proto +22 -0
  160. data/proto/envoy/type/matcher/v3/filter_state.proto +33 -0
  161. data/proto/envoy/type/matcher/v3/http_inputs.proto +71 -0
  162. data/proto/envoy/type/matcher/v3/metadata.proto +110 -0
  163. data/proto/envoy/type/matcher/v3/node.proto +29 -0
  164. data/proto/envoy/type/matcher/v3/number.proto +33 -0
  165. data/proto/envoy/type/matcher/v3/path.proto +31 -0
  166. data/proto/envoy/type/matcher/v3/regex.proto +97 -0
  167. data/proto/envoy/type/matcher/v3/status_code_input.proto +23 -0
  168. data/proto/envoy/type/matcher/v3/string.proto +94 -0
  169. data/proto/envoy/type/matcher/v3/struct.proto +91 -0
  170. data/proto/envoy/type/matcher/v3/value.proto +80 -0
  171. data/proto/envoy/type/metadata/v3/metadata.proto +117 -0
  172. data/proto/envoy/type/percent.proto +52 -0
  173. data/proto/envoy/type/range.proto +43 -0
  174. data/proto/envoy/type/semantic_version.proto +24 -0
  175. data/proto/envoy/type/token_bucket.proto +36 -0
  176. data/proto/envoy/type/v3/BUILD +12 -0
  177. data/proto/envoy/type/v3/hash_policy.proto +43 -0
  178. data/proto/envoy/type/v3/http.proto +24 -0
  179. data/proto/envoy/type/v3/http_status.proto +199 -0
  180. data/proto/envoy/type/v3/percent.proto +57 -0
  181. data/proto/envoy/type/v3/range.proto +50 -0
  182. data/proto/envoy/type/v3/ratelimit_strategy.proto +79 -0
  183. data/proto/envoy/type/v3/ratelimit_unit.proto +37 -0
  184. data/proto/envoy/type/v3/semantic_version.proto +27 -0
  185. data/proto/envoy/type/v3/token_bucket.proto +39 -0
  186. data/proto/google/protobuf/any.proto +162 -0
  187. data/proto/google/protobuf/duration.proto +115 -0
  188. data/proto/google/protobuf/empty.proto +51 -0
  189. data/proto/google/protobuf/struct.proto +95 -0
  190. data/proto/google/protobuf/timestamp.proto +145 -0
  191. data/proto/google/protobuf/wrappers.proto +157 -0
  192. data/proto/google/rpc/status.proto +47 -0
  193. data/proto/readme.md +70 -0
  194. data/proto/udpa/annotations/migrate.proto +49 -0
  195. data/proto/udpa/annotations/security.proto +31 -0
  196. data/proto/udpa/annotations/sensitive.proto +14 -0
  197. data/proto/udpa/annotations/status.proto +34 -0
  198. data/proto/udpa/annotations/versioning.proto +17 -0
  199. data/proto/validate/validate.proto +862 -0
  200. data/proto/xds/annotations/v3/migrate.proto +46 -0
  201. data/proto/xds/annotations/v3/security.proto +30 -0
  202. data/proto/xds/annotations/v3/sensitive.proto +16 -0
  203. data/proto/xds/annotations/v3/status.proto +59 -0
  204. data/proto/xds/annotations/v3/versioning.proto +20 -0
  205. data/proto/xds/core/v3/authority.proto +22 -0
  206. data/proto/xds/core/v3/cidr.proto +25 -0
  207. data/proto/xds/core/v3/collection_entry.proto +55 -0
  208. data/proto/xds/core/v3/context_params.proto +23 -0
  209. data/proto/xds/core/v3/extension.proto +26 -0
  210. data/proto/xds/core/v3/resource.proto +29 -0
  211. data/proto/xds/core/v3/resource_locator.proto +118 -0
  212. data/proto/xds/core/v3/resource_name.proto +42 -0
  213. data/proto/xds/type/matcher/v3/cel.proto +37 -0
  214. data/proto/xds/type/matcher/v3/domain.proto +46 -0
  215. data/proto/xds/type/matcher/v3/http_inputs.proto +23 -0
  216. data/proto/xds/type/matcher/v3/ip.proto +53 -0
  217. data/proto/xds/type/matcher/v3/matcher.proto +144 -0
  218. data/proto/xds/type/matcher/v3/range.proto +69 -0
  219. data/proto/xds/type/matcher/v3/regex.proto +46 -0
  220. data/proto/xds/type/matcher/v3/string.proto +71 -0
  221. data/proto/xds/type/v3/cel.proto +77 -0
  222. data/proto/xds/type/v3/range.proto +40 -0
  223. data/proto/xds/type/v3/typed_struct.proto +44 -0
  224. data/readme.md +37 -0
  225. data/releases.md +5 -0
  226. data/xds/Dockerfile.backend +24 -0
  227. data/xds/Dockerfile.control-plane +22 -0
  228. data/xds/backend_server.rb +68 -0
  229. data/xds/docker-compose.yaml +89 -0
  230. data/xds/go.mod +22 -0
  231. data/xds/go.sum +82 -0
  232. data/xds/readme.md +122 -0
  233. data/xds/test/async/grpc/xds/client.rb +294 -0
  234. data/xds/test/async/grpc/xds/control_plane.rb +94 -0
  235. data/xds/test_server.go +355 -0
  236. data/xds/update_protos.sh +123 -0
  237. data.tar.gz.sig +0 -0
  238. metadata +386 -0
  239. metadata.gz.sig +2 -0
@@ -0,0 +1,172 @@
1
+ syntax = "proto3";
2
+
3
+ package envoy.config.route.v3;
4
+
5
+ import "envoy/config/core/v3/base.proto";
6
+ import "envoy/config/core/v3/config_source.proto";
7
+ import "envoy/config/route/v3/route_components.proto";
8
+
9
+ import "google/protobuf/any.proto";
10
+ import "google/protobuf/wrappers.proto";
11
+
12
+ import "udpa/annotations/status.proto";
13
+ import "udpa/annotations/versioning.proto";
14
+ import "validate/validate.proto";
15
+
16
+ option java_package = "io.envoyproxy.envoy.config.route.v3";
17
+ option java_outer_classname = "RouteProto";
18
+ option java_multiple_files = true;
19
+ option go_package = "github.com/envoyproxy/go-control-plane/envoy/config/route/v3;routev3";
20
+ option (udpa.annotations.file_status).package_version_status = ACTIVE;
21
+
22
+ // [#protodoc-title: HTTP route configuration]
23
+ // * Routing :ref:`architecture overview <arch_overview_http_routing>`
24
+ // * HTTP :ref:`router filter <config_http_filters_router>`
25
+
26
+ // [#next-free-field: 19]
27
+ message RouteConfiguration {
28
+ option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.RouteConfiguration";
29
+
30
+ // The name of the route configuration. For example, it might match
31
+ // :ref:`route_config_name
32
+ // <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.Rds.route_config_name>` in
33
+ // :ref:`envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.Rds`.
34
+ string name = 1;
35
+
36
+ // An array of virtual hosts that make up the route table.
37
+ repeated VirtualHost virtual_hosts = 2;
38
+
39
+ // An array of virtual hosts will be dynamically loaded via the VHDS API.
40
+ // Both ``virtual_hosts`` and ``vhds`` fields will be used when present. ``virtual_hosts`` can be used
41
+ // for a base routing table or for infrequently changing virtual hosts. ``vhds`` is used for
42
+ // on-demand discovery of virtual hosts. The contents of these two fields will be merged to
43
+ // generate a routing table for a given RouteConfiguration, with ``vhds`` derived configuration
44
+ // taking precedence.
45
+ Vhds vhds = 9;
46
+
47
+ // Optionally specifies a list of HTTP headers that the connection manager
48
+ // will consider to be internal only. If they are found on external requests they will be cleaned
49
+ // prior to filter invocation. See :ref:`config_http_conn_man_headers_x-envoy-internal` for more
50
+ // information.
51
+ repeated string internal_only_headers = 3 [
52
+ (validate.rules).repeated = {items {string {well_known_regex: HTTP_HEADER_NAME strict: false}}}
53
+ ];
54
+
55
+ // Specifies a list of HTTP headers that should be added to each response that
56
+ // the connection manager encodes. Headers specified at this level are applied
57
+ // after headers from any enclosed :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` or
58
+ // :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`. For more information, including details on
59
+ // header value syntax, see the documentation on :ref:`custom request headers
60
+ // <config_http_conn_man_headers_custom_request_headers>`.
61
+ repeated core.v3.HeaderValueOption response_headers_to_add = 4
62
+ [(validate.rules).repeated = {max_items: 1000}];
63
+
64
+ // Specifies a list of HTTP headers that should be removed from each response
65
+ // that the connection manager encodes.
66
+ repeated string response_headers_to_remove = 5 [
67
+ (validate.rules).repeated = {items {string {well_known_regex: HTTP_HEADER_NAME strict: false}}}
68
+ ];
69
+
70
+ // Specifies a list of HTTP headers that should be added to each request
71
+ // routed by the HTTP connection manager. Headers specified at this level are
72
+ // applied after headers from any enclosed :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` or
73
+ // :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`. For more information, including details on
74
+ // header value syntax, see the documentation on :ref:`custom request headers
75
+ // <config_http_conn_man_headers_custom_request_headers>`.
76
+ repeated core.v3.HeaderValueOption request_headers_to_add = 6
77
+ [(validate.rules).repeated = {max_items: 1000}];
78
+
79
+ // Specifies a list of HTTP headers that should be removed from each request
80
+ // routed by the HTTP connection manager.
81
+ repeated string request_headers_to_remove = 8 [
82
+ (validate.rules).repeated = {items {string {well_known_regex: HTTP_HEADER_NAME strict: false}}}
83
+ ];
84
+
85
+ // Headers mutations at all levels are evaluated, if specified. By default, the order is from most
86
+ // specific (i.e. route entry level) to least specific (i.e. route configuration level). Later header
87
+ // mutations may override earlier mutations.
88
+ // This order can be reversed by setting this field to true. In other words, most specific level mutation
89
+ // is evaluated last.
90
+ //
91
+ bool most_specific_header_mutations_wins = 10;
92
+
93
+ // An optional boolean that specifies whether the clusters that the route
94
+ // table refers to will be validated by the cluster manager. If set to true
95
+ // and a route refers to a non-existent cluster, the route table will not
96
+ // load. If set to false and a route refers to a non-existent cluster, the
97
+ // route table will load and the router filter will return a 404 if the route
98
+ // is selected at runtime. This setting defaults to true if the route table
99
+ // is statically defined via the :ref:`route_config
100
+ // <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.route_config>`
101
+ // option. This setting default to false if the route table is loaded dynamically via the
102
+ // :ref:`rds
103
+ // <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.rds>`
104
+ // option. Users may wish to override the default behavior in certain cases (for example when
105
+ // using CDS with a static route table).
106
+ google.protobuf.BoolValue validate_clusters = 7;
107
+
108
+ // The maximum bytes of the response :ref:`direct response body
109
+ // <envoy_v3_api_field_config.route.v3.DirectResponseAction.body>` size. If not specified the default
110
+ // is 4096.
111
+ //
112
+ // .. warning::
113
+ //
114
+ // Envoy currently holds the content of :ref:`direct response body
115
+ // <envoy_v3_api_field_config.route.v3.DirectResponseAction.body>` in memory. Be careful setting
116
+ // this to be larger than the default 4KB, since the allocated memory for direct response body
117
+ // is not subject to data plane buffering controls.
118
+ //
119
+ google.protobuf.UInt32Value max_direct_response_body_size_bytes = 11;
120
+
121
+ // A list of plugins and their configurations which may be used by a
122
+ // :ref:`cluster specifier plugin name <envoy_v3_api_field_config.route.v3.RouteAction.cluster_specifier_plugin>`
123
+ // within the route. All ``extension.name`` fields in this list must be unique.
124
+ repeated ClusterSpecifierPlugin cluster_specifier_plugins = 12;
125
+
126
+ // Specify a set of default request mirroring policies which apply to all routes under its virtual hosts.
127
+ // Note that policies are not merged, the most specific non-empty one becomes the mirror policies.
128
+ repeated RouteAction.RequestMirrorPolicy request_mirror_policies = 13;
129
+
130
+ // By default, port in :authority header (if any) is used in host matching.
131
+ // With this option enabled, Envoy will ignore the port number in the :authority header (if any) when picking VirtualHost.
132
+ //
133
+ // .. note::
134
+ // This option will not strip the port number (if any) contained in route config
135
+ // :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`.domains field.
136
+ bool ignore_port_in_host_matching = 14;
137
+
138
+ // Normally, virtual host matching is done using the :authority (or
139
+ // Host: in HTTP < 2) HTTP header. Setting this will instead, use a
140
+ // different HTTP header for this purpose.
141
+ string vhost_header = 18;
142
+
143
+ // Ignore path-parameters in path-matching.
144
+ // Before RFC3986, URI were like(RFC1808): <scheme>://<net_loc>/<path>;<params>?<query>#<fragment>
145
+ // Envoy by default takes ":path" as "<path>;<params>".
146
+ // For users who want to only match path on the "<path>" portion, this option should be true.
147
+ bool ignore_path_parameters_in_path_matching = 15;
148
+
149
+ // This field can be used to provide RouteConfiguration level per filter config. The key should match the
150
+ // :ref:`filter config name
151
+ // <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpFilter.name>`.
152
+ // See :ref:`Http filter route specific config <arch_overview_http_filters_per_filter_config>`
153
+ // for details.
154
+ // [#comment: An entry's value may be wrapped in a
155
+ // :ref:`FilterConfig<envoy_v3_api_msg_config.route.v3.FilterConfig>`
156
+ // message to specify additional options.]
157
+ map<string, google.protobuf.Any> typed_per_filter_config = 16;
158
+
159
+ // The metadata field can be used to provide additional information
160
+ // about the route configuration. It can be used for configuration, stats, and logging.
161
+ // The metadata should go under the filter namespace that will need it.
162
+ // For instance, if the metadata is intended for the Router filter,
163
+ // the filter name should be specified as ``envoy.filters.http.router``.
164
+ core.v3.Metadata metadata = 17;
165
+ }
166
+
167
+ message Vhds {
168
+ option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.Vhds";
169
+
170
+ // Configuration source specifier for VHDS.
171
+ core.v3.ConfigSource config_source = 1 [(validate.rules).message = {required: true}];
172
+ }