docs: Simplify api build (#16277)

This fixes the refs in protos and removes the sed operations for build

The benefits are:
- less indirection in proto refs
- (small) speedup of build
- simplify docs build
- simplify reuse of proto comments (eg generating jsonschemas)

Signed-off-by: Ryan Northey <ryan@synca.io>

Mirrored from https://github.com/envoyproxy/envoy @ 45ec050f91407147ed53a999434b09ef77590177
pull/624/head
data-plane-api(Azure Pipelines) 4 years ago
parent 682dd375d7
commit 155c38d2f3
  1. 12
      envoy/admin/v3/clusters.proto
  2. 24
      envoy/admin/v3/config_dump.proto
  3. 12
      envoy/admin/v4alpha/clusters.proto
  4. 24
      envoy/admin/v4alpha/config_dump.proto
  5. 4
      envoy/config/accesslog/v3/accesslog.proto
  6. 4
      envoy/config/accesslog/v4alpha/accesslog.proto
  7. 42
      envoy/config/bootstrap/v3/bootstrap.proto
  8. 38
      envoy/config/bootstrap/v4alpha/bootstrap.proto
  9. 10
      envoy/config/cluster/v3/circuit_breaker.proto
  10. 130
      envoy/config/cluster/v3/cluster.proto
  11. 18
      envoy/config/cluster/v3/outlier_detection.proto
  12. 10
      envoy/config/cluster/v4alpha/circuit_breaker.proto
  13. 96
      envoy/config/cluster/v4alpha/cluster.proto
  14. 18
      envoy/config/cluster/v4alpha/outlier_detection.proto
  15. 14
      envoy/config/core/v3/address.proto
  16. 6
      envoy/config/core/v3/backoff.proto
  17. 16
      envoy/config/core/v3/base.proto
  18. 10
      envoy/config/core/v3/config_source.proto
  19. 8
      envoy/config/core/v3/grpc_service.proto
  20. 20
      envoy/config/core/v3/health_check.proto
  21. 6
      envoy/config/core/v3/protocol.proto
  22. 14
      envoy/config/core/v4alpha/address.proto
  23. 6
      envoy/config/core/v4alpha/backoff.proto
  24. 16
      envoy/config/core/v4alpha/base.proto
  25. 10
      envoy/config/core/v4alpha/config_source.proto
  26. 8
      envoy/config/core/v4alpha/grpc_service.proto
  27. 20
      envoy/config/core/v4alpha/health_check.proto
  28. 6
      envoy/config/core/v4alpha/protocol.proto
  29. 4
      envoy/config/endpoint/v3/endpoint.proto
  30. 10
      envoy/config/endpoint/v3/endpoint_components.proto
  31. 6
      envoy/config/endpoint/v3/load_report.proto
  32. 36
      envoy/config/listener/v3/listener.proto
  33. 4
      envoy/config/listener/v3/listener_components.proto
  34. 36
      envoy/config/listener/v4alpha/listener.proto
  35. 4
      envoy/config/listener/v4alpha/listener_components.proto
  36. 4
      envoy/config/metrics/v3/metrics_service.proto
  37. 18
      envoy/config/metrics/v3/stats.proto
  38. 4
      envoy/config/metrics/v4alpha/metrics_service.proto
  39. 18
      envoy/config/metrics/v4alpha/stats.proto
  40. 6
      envoy/config/rbac/v3/rbac.proto
  41. 6
      envoy/config/rbac/v4alpha/rbac.proto
  42. 20
      envoy/config/route/v3/route.proto
  43. 144
      envoy/config/route/v3/route_components.proto
  44. 16
      envoy/config/route/v3/scoped_route.proto
  45. 20
      envoy/config/route/v4alpha/route.proto
  46. 124
      envoy/config/route/v4alpha/route_components.proto
  47. 16
      envoy/config/route/v4alpha/scoped_route.proto
  48. 30
      envoy/config/tap/v3/common.proto
  49. 24
      envoy/config/tap/v4alpha/common.proto
  50. 6
      envoy/config/trace/v3/http_tracer.proto
  51. 6
      envoy/config/trace/v4alpha/http_tracer.proto
  52. 10
      envoy/data/cluster/v3/outlier_detection_event.proto
  53. 2
      envoy/data/core/v3/health_check_event.proto
  54. 6
      envoy/data/tap/v3/common.proto
  55. 4
      envoy/data/tap/v3/transport.proto
  56. 2
      envoy/extensions/access_loggers/file/v3/file.proto
  57. 2
      envoy/extensions/access_loggers/file/v4alpha/file.proto
  58. 14
      envoy/extensions/access_loggers/grpc/v3/als.proto
  59. 14
      envoy/extensions/access_loggers/grpc/v4alpha/als.proto
  60. 2
      envoy/extensions/access_loggers/open_telemetry/v3alpha/logs_service.proto
  61. 2
      envoy/extensions/access_loggers/open_telemetry/v4alpha/logs_service.proto
  62. 4
      envoy/extensions/access_loggers/stream/v3/stream.proto
  63. 4
      envoy/extensions/access_loggers/stream/v4alpha/stream.proto
  64. 2
      envoy/extensions/access_loggers/wasm/v3/wasm.proto
  65. 4
      envoy/extensions/clusters/dynamic_forward_proxy/v3/cluster.proto
  66. 2
      envoy/extensions/clusters/redis/v3/redis_cluster.proto
  67. 2
      envoy/extensions/filters/http/aws_request_signing/v3/aws_request_signing.proto
  68. 4
      envoy/extensions/filters/http/composite/v3/composite.proto
  69. 2
      envoy/extensions/filters/http/compressor/v3/compressor.proto
  70. 2
      envoy/extensions/filters/http/compressor/v4alpha/compressor.proto
  71. 6
      envoy/extensions/filters/http/csrf/v3/csrf.proto
  72. 6
      envoy/extensions/filters/http/csrf/v4alpha/csrf.proto
  73. 2
      envoy/extensions/filters/http/decompressor/v3/decompressor.proto
  74. 6
      envoy/extensions/filters/http/dynamic_forward_proxy/v3/dynamic_forward_proxy.proto
  75. 38
      envoy/extensions/filters/http/ext_authz/v3/ext_authz.proto
  76. 38
      envoy/extensions/filters/http/ext_authz/v4alpha/ext_authz.proto
  77. 2
      envoy/extensions/filters/http/fault/v3/fault.proto
  78. 2
      envoy/extensions/filters/http/fault/v4alpha/fault.proto
  79. 10
      envoy/extensions/filters/http/grpc_json_transcoder/v3/transcoder.proto
  80. 4
      envoy/extensions/filters/http/grpc_stats/v3/config.proto
  81. 6
      envoy/extensions/filters/http/local_ratelimit/v3/local_rate_limit.proto
  82. 4
      envoy/extensions/filters/network/ext_authz/v3/ext_authz.proto
  83. 4
      envoy/extensions/filters/network/ext_authz/v4alpha/ext_authz.proto
  84. 50
      envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto
  85. 50
      envoy/extensions/filters/network/http_connection_manager/v4alpha/http_connection_manager.proto
  86. 2
      envoy/extensions/filters/network/local_ratelimit/v3/local_rate_limit.proto
  87. 2
      envoy/extensions/filters/network/postgres_proxy/v3alpha/postgres_proxy.proto
  88. 4
      envoy/extensions/filters/network/redis_proxy/v3/redis_proxy.proto
  89. 2
      envoy/extensions/filters/network/sni_dynamic_forward_proxy/v3alpha/sni_dynamic_forward_proxy.proto
  90. 2
      envoy/extensions/filters/network/tcp_proxy/v3/tcp_proxy.proto
  91. 2
      envoy/extensions/filters/network/tcp_proxy/v4alpha/tcp_proxy.proto
  92. 2
      envoy/extensions/filters/network/thrift_proxy/filters/ratelimit/v3/rate_limit.proto
  93. 2
      envoy/extensions/filters/network/thrift_proxy/filters/ratelimit/v4alpha/rate_limit.proto
  94. 12
      envoy/extensions/filters/network/thrift_proxy/v3/route.proto
  95. 10
      envoy/extensions/filters/network/thrift_proxy/v3/thrift_proxy.proto
  96. 12
      envoy/extensions/filters/network/thrift_proxy/v4alpha/route.proto
  97. 10
      envoy/extensions/filters/network/thrift_proxy/v4alpha/thrift_proxy.proto
  98. 2
      envoy/extensions/internal_redirect/allow_listed_routes/v3/allow_listed_routes_config.proto
  99. 32
      envoy/extensions/transport_sockets/tls/v3/common.proto
  100. 8
      envoy/extensions/transport_sockets/tls/v3/tls.proto
  101. Some files were not shown because too many files have changed in this diff Show More

@ -41,10 +41,10 @@ message ClusterStatus {
// The success rate threshold used in the last interval.
// If
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is *false*, all errors: externally and locally generated were used to calculate the threshold.
// If
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is *true*, only externally generated errors were used to calculate the threshold.
// The threshold is used to eject hosts based on their success rate. See
// :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for details.
@ -64,7 +64,7 @@ message ClusterStatus {
// The success rate threshold used in the last interval when only locally originated failures were
// taken into account and externally originated errors were treated as success.
// This field should be interpreted only when
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is *true*. The threshold is used to eject hosts based on their success rate.
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
// details.
@ -101,10 +101,10 @@ message HostStatus {
// Request success rate for this host over the last calculated interval.
// If
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is *false*, all errors: externally and locally generated were used in success rate
// calculation. If
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is *true*, only externally generated errors were used in success rate calculation.
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
// details.
@ -127,7 +127,7 @@ message HostStatus {
// interval when only locally originated errors are taken into account and externally originated
// errors were treated as success.
// This field should be interpreted only when
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is *true*.
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
// details.

@ -53,11 +53,11 @@ message ConfigDump {
// The following configurations are currently supported and will be dumped in the order given
// below:
//
// * *bootstrap*: :ref:`BootstrapConfigDump <envoy_api_msg_admin.v3.BootstrapConfigDump>`
// * *clusters*: :ref:`ClustersConfigDump <envoy_api_msg_admin.v3.ClustersConfigDump>`
// * *endpoints*: :ref:`EndpointsConfigDump <envoy_api_msg_admin.v3.EndpointsConfigDump>`
// * *listeners*: :ref:`ListenersConfigDump <envoy_api_msg_admin.v3.ListenersConfigDump>`
// * *routes*: :ref:`RoutesConfigDump <envoy_api_msg_admin.v3.RoutesConfigDump>`
// * *bootstrap*: :ref:`BootstrapConfigDump <envoy_v3_api_msg_admin.v3.BootstrapConfigDump>`
// * *clusters*: :ref:`ClustersConfigDump <envoy_v3_api_msg_admin.v3.ClustersConfigDump>`
// * *endpoints*: :ref:`EndpointsConfigDump <envoy_v3_api_msg_admin.v3.EndpointsConfigDump>`
// * *listeners*: :ref:`ListenersConfigDump <envoy_v3_api_msg_admin.v3.ListenersConfigDump>`
// * *routes*: :ref:`RoutesConfigDump <envoy_v3_api_msg_admin.v3.RoutesConfigDump>`
//
// EDS Configuration will only be dumped by using parameter `?include_eds`
//
@ -126,7 +126,7 @@ message ListenersConfigDump {
"envoy.admin.v2alpha.ListenersConfigDump.DynamicListenerState";
// This is the per-resource version information. This version is currently taken from the
// :ref:`version_info <envoy_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time
// :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time
// that the listener was loaded. In the future, discrete per-listener versions may be supported
// by the API.
string version_info = 1;
@ -174,7 +174,7 @@ message ListenersConfigDump {
ClientResourceStatus client_status = 6;
}
// This is the :ref:`version_info <envoy_api_field_service.discovery.v3.DiscoveryResponse.version_info>` in the
// This is the :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` in the
// last processed LDS discovery response. If there are only static bootstrap listeners, this field
// will be "".
string version_info = 1;
@ -212,7 +212,7 @@ message ClustersConfigDump {
"envoy.admin.v2alpha.ClustersConfigDump.DynamicCluster";
// This is the per-resource version information. This version is currently taken from the
// :ref:`version_info <envoy_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time
// :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time
// that the cluster was loaded. In the future, discrete per-cluster versions may be supported by
// the API.
string version_info = 1;
@ -235,7 +235,7 @@ message ClustersConfigDump {
ClientResourceStatus client_status = 5;
}
// This is the :ref:`version_info <envoy_api_field_service.discovery.v3.DiscoveryResponse.version_info>` in the
// This is the :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` in the
// last processed CDS discovery response. If there are only static bootstrap clusters, this field
// will be "".
string version_info = 1;
@ -280,7 +280,7 @@ message RoutesConfigDump {
"envoy.admin.v2alpha.RoutesConfigDump.DynamicRouteConfig";
// This is the per-resource version information. This version is currently taken from the
// :ref:`version_info <envoy_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
// :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
// the route configuration was loaded.
string version_info = 1;
@ -340,7 +340,7 @@ message ScopedRoutesConfigDump {
string name = 1;
// This is the per-resource version information. This version is currently taken from the
// :ref:`version_info <envoy_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
// :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
// the scoped routes configuration was loaded.
string version_info = 2;
@ -450,7 +450,7 @@ message EndpointsConfigDump {
// [#next-free-field: 6]
message DynamicEndpointConfig {
// [#not-implemented-hide:] This is the per-resource version information. This version is currently taken from the
// :ref:`version_info <envoy_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
// :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
// the endpoint configuration was loaded.
string version_info = 1;

@ -41,10 +41,10 @@ message ClusterStatus {
// The success rate threshold used in the last interval.
// If
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is *false*, all errors: externally and locally generated were used to calculate the threshold.
// If
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is *true*, only externally generated errors were used to calculate the threshold.
// The threshold is used to eject hosts based on their success rate. See
// :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for details.
@ -64,7 +64,7 @@ message ClusterStatus {
// The success rate threshold used in the last interval when only locally originated failures were
// taken into account and externally originated errors were treated as success.
// This field should be interpreted only when
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is *true*. The threshold is used to eject hosts based on their success rate.
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
// details.
@ -101,10 +101,10 @@ message HostStatus {
// Request success rate for this host over the last calculated interval.
// If
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is *false*, all errors: externally and locally generated were used in success rate
// calculation. If
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is *true*, only externally generated errors were used in success rate calculation.
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
// details.
@ -127,7 +127,7 @@ message HostStatus {
// interval when only locally originated errors are taken into account and externally originated
// errors were treated as success.
// This field should be interpreted only when
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is *true*.
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
// details.

@ -53,11 +53,11 @@ message ConfigDump {
// The following configurations are currently supported and will be dumped in the order given
// below:
//
// * *bootstrap*: :ref:`BootstrapConfigDump <envoy_api_msg_admin.v4alpha.BootstrapConfigDump>`
// * *clusters*: :ref:`ClustersConfigDump <envoy_api_msg_admin.v4alpha.ClustersConfigDump>`
// * *endpoints*: :ref:`EndpointsConfigDump <envoy_api_msg_admin.v4alpha.EndpointsConfigDump>`
// * *listeners*: :ref:`ListenersConfigDump <envoy_api_msg_admin.v4alpha.ListenersConfigDump>`
// * *routes*: :ref:`RoutesConfigDump <envoy_api_msg_admin.v4alpha.RoutesConfigDump>`
// * *bootstrap*: :ref:`BootstrapConfigDump <envoy_v3_api_msg_admin.v3.BootstrapConfigDump>`
// * *clusters*: :ref:`ClustersConfigDump <envoy_v3_api_msg_admin.v3.ClustersConfigDump>`
// * *endpoints*: :ref:`EndpointsConfigDump <envoy_v3_api_msg_admin.v3.EndpointsConfigDump>`
// * *listeners*: :ref:`ListenersConfigDump <envoy_v3_api_msg_admin.v3.ListenersConfigDump>`
// * *routes*: :ref:`RoutesConfigDump <envoy_v3_api_msg_admin.v3.RoutesConfigDump>`
//
// EDS Configuration will only be dumped by using parameter `?include_eds`
//
@ -123,7 +123,7 @@ message ListenersConfigDump {
"envoy.admin.v3.ListenersConfigDump.DynamicListenerState";
// This is the per-resource version information. This version is currently taken from the
// :ref:`version_info <envoy_api_field_service.discovery.v4alpha.DiscoveryResponse.version_info>` field at the time
// :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time
// that the listener was loaded. In the future, discrete per-listener versions may be supported
// by the API.
string version_info = 1;
@ -171,7 +171,7 @@ message ListenersConfigDump {
ClientResourceStatus client_status = 6;
}
// This is the :ref:`version_info <envoy_api_field_service.discovery.v4alpha.DiscoveryResponse.version_info>` in the
// This is the :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` in the
// last processed LDS discovery response. If there are only static bootstrap listeners, this field
// will be "".
string version_info = 1;
@ -208,7 +208,7 @@ message ClustersConfigDump {
"envoy.admin.v3.ClustersConfigDump.DynamicCluster";
// This is the per-resource version information. This version is currently taken from the
// :ref:`version_info <envoy_api_field_service.discovery.v4alpha.DiscoveryResponse.version_info>` field at the time
// :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time
// that the cluster was loaded. In the future, discrete per-cluster versions may be supported by
// the API.
string version_info = 1;
@ -231,7 +231,7 @@ message ClustersConfigDump {
ClientResourceStatus client_status = 5;
}
// This is the :ref:`version_info <envoy_api_field_service.discovery.v4alpha.DiscoveryResponse.version_info>` in the
// This is the :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` in the
// last processed CDS discovery response. If there are only static bootstrap clusters, this field
// will be "".
string version_info = 1;
@ -275,7 +275,7 @@ message RoutesConfigDump {
"envoy.admin.v3.RoutesConfigDump.DynamicRouteConfig";
// This is the per-resource version information. This version is currently taken from the
// :ref:`version_info <envoy_api_field_service.discovery.v4alpha.DiscoveryResponse.version_info>` field at the time that
// :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
// the route configuration was loaded.
string version_info = 1;
@ -335,7 +335,7 @@ message ScopedRoutesConfigDump {
string name = 1;
// This is the per-resource version information. This version is currently taken from the
// :ref:`version_info <envoy_api_field_service.discovery.v4alpha.DiscoveryResponse.version_info>` field at the time that
// :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
// the scoped routes configuration was loaded.
string version_info = 2;
@ -452,7 +452,7 @@ message EndpointsConfigDump {
"envoy.admin.v3.EndpointsConfigDump.DynamicEndpointConfig";
// [#not-implemented-hide:] This is the per-resource version information. This version is currently taken from the
// :ref:`version_info <envoy_api_field_service.discovery.v4alpha.DiscoveryResponse.version_info>` field at the time that
// :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
// the endpoint configuration was loaded.
string version_info = 1;

@ -169,8 +169,8 @@ message RuntimeFilter {
// randomly sample based on the runtime key value alone.
// *use_independent_randomness* can be used for logging kill switches within
// complex nested :ref:`AndFilter
// <envoy_api_msg_config.accesslog.v3.AndFilter>` and :ref:`OrFilter
// <envoy_api_msg_config.accesslog.v3.OrFilter>` blocks that are easier to
// <envoy_v3_api_msg_config.accesslog.v3.AndFilter>` and :ref:`OrFilter
// <envoy_v3_api_msg_config.accesslog.v3.OrFilter>` blocks that are easier to
// reason about from a probability perspective (i.e., setting to true will
// cause the filter to behave like an independent random variable when
// composed within logical operator filters).

@ -169,8 +169,8 @@ message RuntimeFilter {
// randomly sample based on the runtime key value alone.
// *use_independent_randomness* can be used for logging kill switches within
// complex nested :ref:`AndFilter
// <envoy_api_msg_config.accesslog.v4alpha.AndFilter>` and :ref:`OrFilter
// <envoy_api_msg_config.accesslog.v4alpha.OrFilter>` blocks that are easier to
// <envoy_v3_api_msg_config.accesslog.v3.AndFilter>` and :ref:`OrFilter
// <envoy_v3_api_msg_config.accesslog.v3.OrFilter>` blocks that are easier to
// reason about from a probability perspective (i.e., setting to true will
// cause the filter to behave like an independent random variable when
// composed within logical operator filters).

@ -48,12 +48,12 @@ message Bootstrap {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.bootstrap.v2.Bootstrap.StaticResources";
// Static :ref:`Listeners <envoy_api_msg_config.listener.v3.Listener>`. These listeners are
// Static :ref:`Listeners <envoy_v3_api_msg_config.listener.v3.Listener>`. These listeners are
// available regardless of LDS configuration.
repeated listener.v3.Listener listeners = 1;
// If a network based configuration source is specified for :ref:`cds_config
// <envoy_api_field_config.bootstrap.v3.Bootstrap.DynamicResources.cds_config>`, it's necessary
// <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.DynamicResources.cds_config>`, it's necessary
// to have some initial cluster definitions available to allow Envoy to know
// how to speak to the management server. These cluster definitions may not
// use :ref:`EDS <arch_overview_dynamic_config_eds>` (i.e. they should be static
@ -61,7 +61,7 @@ message Bootstrap {
repeated cluster.v3.Cluster clusters = 2;
// These static secrets can be used by :ref:`SdsSecretConfig
// <envoy_api_msg_extensions.transport_sockets.tls.v3.SdsSecretConfig>`
// <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.SdsSecretConfig>`
repeated envoy.extensions.transport_sockets.tls.v3.Secret secrets = 3;
}
@ -72,7 +72,7 @@ message Bootstrap {
reserved 4;
// All :ref:`Listeners <envoy_api_msg_config.listener.v3.Listener>` are provided by a single
// All :ref:`Listeners <envoy_v3_api_msg_config.listener.v3.Listener>` are provided by a single
// :ref:`LDS <arch_overview_dynamic_config_lds>` configuration source.
core.v3.ConfigSource lds_config = 1;
@ -80,7 +80,7 @@ message Bootstrap {
// [#not-implemented-hide:]
string lds_resources_locator = 5;
// All post-bootstrap :ref:`Cluster <envoy_api_msg_config.cluster.v3.Cluster>` definitions are
// All post-bootstrap :ref:`Cluster <envoy_v3_api_msg_config.cluster.v3.Cluster>` definitions are
// provided by a single :ref:`CDS <arch_overview_dynamic_config_cds>`
// configuration source.
core.v3.ConfigSource cds_config = 2;
@ -91,10 +91,10 @@ message Bootstrap {
// A single :ref:`ADS <config_overview_ads>` source may be optionally
// specified. This must have :ref:`api_type
// <envoy_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
// <envoy_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`. Only
// :ref:`ConfigSources <envoy_api_msg_config.core.v3.ConfigSource>` that have
// the :ref:`ads <envoy_api_field_config.core.v3.ConfigSource.ads>` field set will be
// <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
// <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`. Only
// :ref:`ConfigSources <envoy_v3_api_msg_config.core.v3.ConfigSource>` that have
// the :ref:`ads <envoy_v3_api_field_config.core.v3.ConfigSource.ads>` field set will be
// streamed on the ADS channel.
core.v3.ApiConfigSource ads_config = 3;
}
@ -152,7 +152,7 @@ message Bootstrap {
ClusterManager cluster_manager = 4;
// Health discovery service config option.
// (:ref:`core.ApiConfigSource <envoy_api_msg_config.core.v3.ApiConfigSource>`)
// (:ref:`core.ApiConfigSource <envoy_v3_api_msg_config.core.v3.ApiConfigSource>`)
core.v3.ApiConfigSource hds_config = 14;
// Optional file system path to search for startup flag files.
@ -200,7 +200,7 @@ message Bootstrap {
//
// .. attention::
// This field has been deprecated in favor of :ref:`HttpConnectionManager.Tracing.provider
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`.
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`.
trace.v3.Tracing tracing = 9
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
@ -221,7 +221,7 @@ message Bootstrap {
// Enable :ref:`stats for event dispatcher <operations_performance>`, defaults to false.
// Note that this records a value for each iteration of the event loop on every thread. This
// should normally be minimal overhead, but when using
// :ref:`statsd <envoy_api_msg_config.metrics.v3.StatsdSink>`, it will send each observed value
// :ref:`statsd <envoy_v3_api_msg_config.metrics.v3.StatsdSink>`, it will send each observed value
// over the wire individually because the statsd protocol doesn't have any way to represent a
// histogram summary. Be aware that this can be a very large volume of data.
bool enable_dispatcher_stats = 16;
@ -239,13 +239,13 @@ message Bootstrap {
// Optional proxy version which will be used to set the value of :ref:`server.version statistic
// <server_statistics>` if specified. Envoy will not process this value, it will be sent as is to
// :ref:`stats sinks <envoy_api_msg_config.metrics.v3.StatsSink>`.
// :ref:`stats sinks <envoy_v3_api_msg_config.metrics.v3.StatsSink>`.
google.protobuf.UInt64Value stats_server_version_override = 19;
// Always use TCP queries instead of UDP queries for DNS lookups.
// This may be overridden on a per-cluster basis in cds_config,
// when :ref:`dns_resolvers <envoy_api_field_config.cluster.v3.Cluster.dns_resolvers>` and
// :ref:`use_tcp_for_dns_lookups <envoy_api_field_config.cluster.v3.Cluster.use_tcp_for_dns_lookups>` are
// when :ref:`dns_resolvers <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolvers>` and
// :ref:`use_tcp_for_dns_lookups <envoy_v3_api_field_config.cluster.v3.Cluster.use_tcp_for_dns_lookups>` are
// specified.
// Setting this value causes failure if the
// ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during
@ -291,7 +291,7 @@ message Bootstrap {
// Global map of CertificateProvider instances. These instances are referred to by name in the
// :ref:`CommonTlsContext.CertificateProviderInstance.instance_name
// <envoy_api_field_extensions.transport_sockets.tls.v3.CommonTlsContext.CertificateProviderInstance.instance_name>`
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CommonTlsContext.CertificateProviderInstance.instance_name>`
// field.
// [#not-implemented-hide:]
map<string, core.v3.TypedExtensionConfig> certificate_provider_instances = 25;
@ -309,7 +309,7 @@ message Admin {
// The path to write the access log for the administration server. If no
// access log is desired specify /dev/null. This is only required if
// :ref:`address <envoy_api_field_config.bootstrap.v3.Admin.address>` is set.
// :ref:`address <envoy_v3_api_field_config.bootstrap.v3.Admin.address>` is set.
// Deprecated in favor of *access_log* which offers more options.
string access_log_path = 1
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
@ -349,9 +349,9 @@ message ClusterManager {
// this configuration). In order to enable :ref:`zone aware routing
// <arch_overview_load_balancing_zone_aware_routing>` this option must be set.
// If *local_cluster_name* is defined then :ref:`clusters
// <envoy_api_msg_config.cluster.v3.Cluster>` must be defined in the :ref:`Bootstrap
// <envoy_v3_api_msg_config.cluster.v3.Cluster>` must be defined in the :ref:`Bootstrap
// static cluster resources
// <envoy_api_field_config.bootstrap.v3.Bootstrap.StaticResources.clusters>`. This is unrelated to
// <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.StaticResources.clusters>`. This is unrelated to
// the :option:`--service-cluster` option which does not `affect zone aware
// routing <https://github.com/envoyproxy/envoy/issues/774>`_.
string local_cluster_name = 1;
@ -365,8 +365,8 @@ message ClusterManager {
// A management server endpoint to stream load stats to via
// *StreamLoadStats*. This must have :ref:`api_type
// <envoy_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
// <envoy_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`.
// <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
// <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`.
core.v3.ApiConfigSource load_stats_config = 4;
}

@ -45,12 +45,12 @@ message Bootstrap {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.bootstrap.v3.Bootstrap.StaticResources";
// Static :ref:`Listeners <envoy_api_msg_config.listener.v4alpha.Listener>`. These listeners are
// Static :ref:`Listeners <envoy_v3_api_msg_config.listener.v3.Listener>`. These listeners are
// available regardless of LDS configuration.
repeated listener.v4alpha.Listener listeners = 1;
// If a network based configuration source is specified for :ref:`cds_config
// <envoy_api_field_config.bootstrap.v4alpha.Bootstrap.DynamicResources.cds_config>`, it's necessary
// <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.DynamicResources.cds_config>`, it's necessary
// to have some initial cluster definitions available to allow Envoy to know
// how to speak to the management server. These cluster definitions may not
// use :ref:`EDS <arch_overview_dynamic_config_eds>` (i.e. they should be static
@ -58,7 +58,7 @@ message Bootstrap {
repeated cluster.v4alpha.Cluster clusters = 2;
// These static secrets can be used by :ref:`SdsSecretConfig
// <envoy_api_msg_extensions.transport_sockets.tls.v4alpha.SdsSecretConfig>`
// <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.SdsSecretConfig>`
repeated envoy.extensions.transport_sockets.tls.v4alpha.Secret secrets = 3;
}
@ -69,7 +69,7 @@ message Bootstrap {
reserved 4;
// All :ref:`Listeners <envoy_api_msg_config.listener.v4alpha.Listener>` are provided by a single
// All :ref:`Listeners <envoy_v3_api_msg_config.listener.v3.Listener>` are provided by a single
// :ref:`LDS <arch_overview_dynamic_config_lds>` configuration source.
core.v4alpha.ConfigSource lds_config = 1;
@ -77,7 +77,7 @@ message Bootstrap {
// [#not-implemented-hide:]
string lds_resources_locator = 5;
// All post-bootstrap :ref:`Cluster <envoy_api_msg_config.cluster.v4alpha.Cluster>` definitions are
// All post-bootstrap :ref:`Cluster <envoy_v3_api_msg_config.cluster.v3.Cluster>` definitions are
// provided by a single :ref:`CDS <arch_overview_dynamic_config_cds>`
// configuration source.
core.v4alpha.ConfigSource cds_config = 2;
@ -88,10 +88,10 @@ message Bootstrap {
// A single :ref:`ADS <config_overview_ads>` source may be optionally
// specified. This must have :ref:`api_type
// <envoy_api_field_config.core.v4alpha.ApiConfigSource.api_type>` :ref:`GRPC
// <envoy_api_enum_value_config.core.v4alpha.ApiConfigSource.ApiType.GRPC>`. Only
// :ref:`ConfigSources <envoy_api_msg_config.core.v4alpha.ConfigSource>` that have
// the :ref:`ads <envoy_api_field_config.core.v4alpha.ConfigSource.ads>` field set will be
// <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
// <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`. Only
// :ref:`ConfigSources <envoy_v3_api_msg_config.core.v3.ConfigSource>` that have
// the :ref:`ads <envoy_v3_api_field_config.core.v3.ConfigSource.ads>` field set will be
// streamed on the ADS channel.
core.v4alpha.ApiConfigSource ads_config = 3;
}
@ -149,7 +149,7 @@ message Bootstrap {
ClusterManager cluster_manager = 4;
// Health discovery service config option.
// (:ref:`core.ApiConfigSource <envoy_api_msg_config.core.v4alpha.ApiConfigSource>`)
// (:ref:`core.ApiConfigSource <envoy_v3_api_msg_config.core.v3.ApiConfigSource>`)
core.v4alpha.ApiConfigSource hds_config = 14;
// Optional file system path to search for startup flag files.
@ -201,7 +201,7 @@ message Bootstrap {
// Enable :ref:`stats for event dispatcher <operations_performance>`, defaults to false.
// Note that this records a value for each iteration of the event loop on every thread. This
// should normally be minimal overhead, but when using
// :ref:`statsd <envoy_api_msg_config.metrics.v4alpha.StatsdSink>`, it will send each observed value
// :ref:`statsd <envoy_v3_api_msg_config.metrics.v3.StatsdSink>`, it will send each observed value
// over the wire individually because the statsd protocol doesn't have any way to represent a
// histogram summary. Be aware that this can be a very large volume of data.
bool enable_dispatcher_stats = 16;
@ -219,13 +219,13 @@ message Bootstrap {
// Optional proxy version which will be used to set the value of :ref:`server.version statistic
// <server_statistics>` if specified. Envoy will not process this value, it will be sent as is to
// :ref:`stats sinks <envoy_api_msg_config.metrics.v4alpha.StatsSink>`.
// :ref:`stats sinks <envoy_v3_api_msg_config.metrics.v3.StatsSink>`.
google.protobuf.UInt64Value stats_server_version_override = 19;
// Always use TCP queries instead of UDP queries for DNS lookups.
// This may be overridden on a per-cluster basis in cds_config,
// when :ref:`dns_resolvers <envoy_api_field_config.cluster.v4alpha.Cluster.dns_resolvers>` and
// :ref:`use_tcp_for_dns_lookups <envoy_api_field_config.cluster.v4alpha.Cluster.use_tcp_for_dns_lookups>` are
// when :ref:`dns_resolvers <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolvers>` and
// :ref:`use_tcp_for_dns_lookups <envoy_v3_api_field_config.cluster.v3.Cluster.use_tcp_for_dns_lookups>` are
// specified.
// Setting this value causes failure if the
// ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during
@ -271,7 +271,7 @@ message Bootstrap {
// Global map of CertificateProvider instances. These instances are referred to by name in the
// :ref:`CommonTlsContext.CertificateProviderInstance.instance_name
// <envoy_api_field_extensions.transport_sockets.tls.v4alpha.CommonTlsContext.CertificateProviderInstance.instance_name>`
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CommonTlsContext.CertificateProviderInstance.instance_name>`
// field.
// [#not-implemented-hide:]
map<string, core.v4alpha.TypedExtensionConfig> certificate_provider_instances = 25;
@ -326,9 +326,9 @@ message ClusterManager {
// this configuration). In order to enable :ref:`zone aware routing
// <arch_overview_load_balancing_zone_aware_routing>` this option must be set.
// If *local_cluster_name* is defined then :ref:`clusters
// <envoy_api_msg_config.cluster.v4alpha.Cluster>` must be defined in the :ref:`Bootstrap
// <envoy_v3_api_msg_config.cluster.v3.Cluster>` must be defined in the :ref:`Bootstrap
// static cluster resources
// <envoy_api_field_config.bootstrap.v4alpha.Bootstrap.StaticResources.clusters>`. This is unrelated to
// <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.StaticResources.clusters>`. This is unrelated to
// the :option:`--service-cluster` option which does not `affect zone aware
// routing <https://github.com/envoyproxy/envoy/issues/774>`_.
string local_cluster_name = 1;
@ -342,8 +342,8 @@ message ClusterManager {
// A management server endpoint to stream load stats to via
// *StreamLoadStats*. This must have :ref:`api_type
// <envoy_api_field_config.core.v4alpha.ApiConfigSource.api_type>` :ref:`GRPC
// <envoy_api_enum_value_config.core.v4alpha.ApiConfigSource.ApiType.GRPC>`.
// <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
// <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`.
core.v4alpha.ApiConfigSource load_stats_config = 4;
}

@ -25,7 +25,7 @@ message CircuitBreakers {
"envoy.api.v2.cluster.CircuitBreakers";
// A Thresholds defines CircuitBreaker settings for a
// :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`.
// :ref:`RoutingPriority<envoy_v3_api_enum_config.core.v3.RoutingPriority>`.
// [#next-free-field: 9]
message Thresholds {
option (udpa.annotations.versioning).previous_message_type =
@ -49,7 +49,7 @@ message CircuitBreakers {
google.protobuf.UInt32Value min_retry_concurrency = 2;
}
// The :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`
// The :ref:`RoutingPriority<envoy_v3_api_enum_config.core.v3.RoutingPriority>`
// the specified CircuitBreaker settings apply to.
core.v3.RoutingPriority priority = 1 [(validate.rules).enum = {defined_only: true}];
@ -96,10 +96,10 @@ message CircuitBreakers {
google.protobuf.UInt32Value max_connection_pools = 7;
}
// If multiple :ref:`Thresholds<envoy_api_msg_config.cluster.v3.CircuitBreakers.Thresholds>`
// are defined with the same :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`,
// If multiple :ref:`Thresholds<envoy_v3_api_msg_config.cluster.v3.CircuitBreakers.Thresholds>`
// are defined with the same :ref:`RoutingPriority<envoy_v3_api_enum_config.core.v3.RoutingPriority>`,
// the first one in the list is used. If no Thresholds is defined for a given
// :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`, the default values
// :ref:`RoutingPriority<envoy_v3_api_enum_config.core.v3.RoutingPriority>`, the default values
// are used.
repeated Thresholds thresholds = 1;
}

@ -110,7 +110,7 @@ message Cluster {
CLUSTER_PROVIDED = 6;
// [#not-implemented-hide:] Use the new :ref:`load_balancing_policy
// <envoy_api_field_config.cluster.v3.Cluster.load_balancing_policy>` field to determine the LB policy.
// <envoy_v3_api_field_config.cluster.v3.Cluster.load_balancing_policy>` field to determine the LB policy.
// [#next-major-version: In the v3 API, we should consider deprecating the lb_policy field
// and instead using the new load_balancing_policy field as the one and only mechanism for
// configuring this.]
@ -123,8 +123,8 @@ message Cluster {
// specified, the DNS resolver will first perform a lookup for addresses in
// the IPv6 family and fallback to a lookup for addresses in the IPv4 family.
// For cluster types other than
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
// :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
// :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
// this setting is
// ignored.
enum DnsLookupFamily {
@ -135,7 +135,7 @@ message Cluster {
enum ClusterProtocolSelection {
// Cluster can only operate on one of the possible upstream protocols (HTTP1.1, HTTP2).
// If :ref:`http2_protocol_options <envoy_api_field_config.cluster.v3.Cluster.http2_protocol_options>` are
// If :ref:`http2_protocol_options <envoy_v3_api_field_config.cluster.v3.Cluster.http2_protocol_options>` are
// present, HTTP2 will be used, otherwise HTTP1.1 will be used.
USE_CONFIGURED_PROTOCOL = 0;
@ -233,7 +233,7 @@ message Cluster {
// If KEYS_SUBSET is selected, subset selector matching is performed again with metadata
// keys reduced to
// :ref:`fallback_keys_subset<envoy_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.fallback_keys_subset>`.
// :ref:`fallback_keys_subset<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.fallback_keys_subset>`.
// It allows for a fallback to a different, less specific selector if some of the keys of
// the selector are considered optional.
KEYS_SUBSET = 4;
@ -262,30 +262,30 @@ message Cluster {
[(validate.rules).enum = {defined_only: true}];
// Subset of
// :ref:`keys<envoy_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
// :ref:`KEYS_SUBSET<envoy_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
// :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
// :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
// fallback policy.
// It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
// For any other fallback policy the parameter is not used and should not be set.
// Only values also present in
// :ref:`keys<envoy_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
// :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
// `fallback_keys_subset` cannot be equal to `keys`.
repeated string fallback_keys_subset = 3;
}
// The behavior used when no endpoint subset matches the selected route's
// metadata. The value defaults to
// :ref:`NO_FALLBACK<envoy_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
// :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
LbSubsetFallbackPolicy fallback_policy = 1 [(validate.rules).enum = {defined_only: true}];
// Specifies the default subset of endpoints used during fallback if
// fallback_policy is
// :ref:`DEFAULT_SUBSET<envoy_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
// :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
// Each field in default_subset is
// compared to the matching LbEndpoint.Metadata under the *envoy.lb*
// namespace. It is valid for no hosts to match, in which case the behavior
// is the same as a fallback_policy of
// :ref:`NO_FALLBACK<envoy_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
// :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
google.protobuf.Struct default_subset = 2;
// For each entry, LbEndpoint.Metadata's
@ -393,16 +393,16 @@ message Cluster {
// Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
// provided host) the better the request distribution will reflect the desired weights. Defaults
// to 1024 entries, and limited to 8M entries. See also
// :ref:`maximum_ring_size<envoy_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
// :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
google.protobuf.UInt64Value minimum_ring_size = 1 [(validate.rules).uint64 = {lte: 8388608}];
// The hash function used to hash hosts onto the ketama ring. The value defaults to
// :ref:`XX_HASH<envoy_api_enum_value_config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
// :ref:`XX_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
HashFunction hash_function = 3 [(validate.rules).enum = {defined_only: true}];
// Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
// to further constrain resource use. See also
// :ref:`minimum_ring_size<envoy_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
// :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
google.protobuf.UInt64Value maximum_ring_size = 4 [(validate.rules).uint64 = {lte: 8388608}];
}
@ -556,7 +556,7 @@ message Cluster {
// Specifies the base interval between refreshes. This parameter is required and must be greater
// than zero and less than
// :ref:`max_interval <envoy_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
// :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
google.protobuf.Duration base_interval = 1 [(validate.rules).duration = {
required: true
gt {nanos: 1000000}
@ -564,8 +564,8 @@ message Cluster {
// Specifies the maximum interval between refreshes. This parameter is optional, but must be
// greater than or equal to the
// :ref:`base_interval <envoy_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>` if set. The default
// is 10 times the :ref:`base_interval <envoy_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
// :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>` if set. The default
// is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
google.protobuf.Duration max_interval = 2 [(validate.rules).duration = {gt {nanos: 1000000}}];
}
@ -629,9 +629,9 @@ message Cluster {
// Configuration to use different transport sockets for different endpoints.
// The entry of *envoy.transport_socket_match* in the
// :ref:`LbEndpoint.Metadata <envoy_api_field_config.endpoint.v3.LbEndpoint.metadata>`
// :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
// is used to match against the transport sockets as they appear in the list. The first
// :ref:`match <envoy_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
// :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
// For example, with the following match
//
// .. code-block:: yaml
@ -651,7 +651,7 @@ message Cluster {
// Connections to the endpoints whose metadata value under *envoy.transport_socket_match*
// having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
//
// If a :ref:`socket match <envoy_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
// If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
// criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
// socket match in case above.
//
@ -673,7 +673,7 @@ message Cluster {
//
// This field can be used to specify custom transport socket configurations for health
// checks by adding matching key/value pairs in a health check's
// :ref:`transport socket match criteria <envoy_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
// :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
//
// [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
repeated TransportSocketMatch transport_socket_matches = 43;
@ -681,7 +681,7 @@ message Cluster {
// Supplies the name of the cluster which must be unique across all clusters.
// The cluster name is used when emitting
// :ref:`statistics <config_cluster_manager_cluster_stats>` if :ref:`alt_stat_name
// <envoy_api_field_config.cluster.v3.Cluster.alt_stat_name>` is not provided.
// <envoy_v3_api_field_config.cluster.v3.Cluster.alt_stat_name>` is not provided.
// Any ``:`` in the cluster name will be converted to ``_`` when emitting statistics.
string name = 1 [(validate.rules).string = {min_len: 1}];
@ -718,19 +718,19 @@ message Cluster {
// The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
// when picking a host in the cluster.
// [#comment:TODO: Remove enum constraint :ref:`LOAD_BALANCING_POLICY_CONFIG<envoy_api_enum_value_config.cluster.v3.Cluster.LbPolicy.LOAD_BALANCING_POLICY_CONFIG>` when implemented.]
// [#comment:TODO: Remove enum constraint :ref:`LOAD_BALANCING_POLICY_CONFIG<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.LOAD_BALANCING_POLICY_CONFIG>` when implemented.]
LbPolicy lb_policy = 6 [(validate.rules).enum = {defined_only: true not_in: 7}];
// Setting this is required for specifying members of
// :ref:`STATIC<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
// :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
// or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
// This field supersedes the *hosts* field in the v2 API.
//
// .. attention::
//
// Setting this allows non-EDS cluster types to contain embedded EDS equivalent
// :ref:`endpoint assignments<envoy_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
// :ref:`endpoint assignments<envoy_v3_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
//
endpoint.v3.ClusterLoadAssignment load_assignment = 33;
@ -752,12 +752,12 @@ message Cluster {
// HTTP protocol options that are applied only to upstream HTTP connections.
// These options apply to all HTTP versions.
// This has been deprecated in favor of
// :ref:`upstream_http_protocol_options <envoy_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
// in the :ref:`http_protocol_options <envoy_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
// :ref:`upstream_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
// in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
// upstream_http_protocol_options can be set via the cluster's
// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
// :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
// See :ref:`upstream_http_protocol_options
// <envoy_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
// <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
// for example usage.
core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
@ -765,23 +765,23 @@ message Cluster {
// Additional options when handling HTTP requests upstream. These options will be applicable to
// both HTTP1 and HTTP2 requests.
// This has been deprecated in favor of
// :ref:`common_http_protocol_options <envoy_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>`
// in the :ref:`http_protocol_options <envoy_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
// :ref:`common_http_protocol_options <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>`
// in the :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
// common_http_protocol_options can be set via the cluster's
// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
// :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
// See :ref:`upstream_http_protocol_options
// <envoy_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
// <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
// for example usage.
core.v3.HttpProtocolOptions common_http_protocol_options = 29
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
// Additional options when handling HTTP1 requests.
// This has been deprecated in favor of http_protocol_options fields in the in the
// :ref:`http_protocol_options <envoy_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
// :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
// http_protocol_options can be set via the cluster's
// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
// :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
// See :ref:`upstream_http_protocol_options
// <envoy_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
// <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
// for example usage.
core.v3.Http1ProtocolOptions http_protocol_options = 13
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
@ -793,11 +793,11 @@ message Cluster {
// with ALPN, `http2_protocol_options` must be specified. As an aside this allows HTTP/2
// connections to happen over plain text.
// This has been deprecated in favor of http2_protocol_options fields in the in the
// :ref:`http_protocol_options <envoy_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
// :ref:`http_protocol_options <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>`
// message. http2_protocol_options can be set via the cluster's
// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
// :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
// See :ref:`upstream_http_protocol_options
// <envoy_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
// <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
// for example usage.
core.v3.Http2ProtocolOptions http2_protocol_options = 14 [
deprecated = true,
@ -813,24 +813,24 @@ message Cluster {
map<string, google.protobuf.Any> typed_extension_protocol_options = 36;
// If the DNS refresh rate is specified and the cluster type is either
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
// this value is used as the clusters DNS refresh
// rate. The value configured must be at least 1ms. If this setting is not specified, the
// value defaults to 5000ms. For cluster types other than
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
// and :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
// and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
// this setting is ignored.
google.protobuf.Duration dns_refresh_rate = 16
[(validate.rules).duration = {gt {nanos: 1000000}}];
// If the DNS failure refresh rate is specified and the cluster type is either
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
// this is used as the clusters DNS refresh rate when requests are failing. If this setting is
// not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
// other than :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
// :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
// other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
// :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
// ignored.
RefreshRate dns_failure_refresh_rate = 44;
@ -841,18 +841,18 @@ message Cluster {
// The DNS IP address resolution policy. If this setting is not specified, the
// value defaults to
// :ref:`AUTO<envoy_api_enum_value_config.cluster.v3.Cluster.DnsLookupFamily.AUTO>`.
// :ref:`AUTO<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DnsLookupFamily.AUTO>`.
DnsLookupFamily dns_lookup_family = 17 [(validate.rules).enum = {defined_only: true}];
// If DNS resolvers are specified and the cluster type is either
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
// this value is used to specify the clusters dns resolvers.
// If this setting is not specified, the value defaults to the default
// resolver, which uses /etc/resolv.conf for configuration. For cluster types
// other than
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
// and :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
// and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
// this setting is ignored.
// Setting this value causes failure if the
// ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during
@ -872,7 +872,7 @@ message Cluster {
OutlierDetection outlier_detection = 19;
// The interval for removing stale hosts from a cluster type
// :ref:`ORIGINAL_DST<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
// :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
// Hosts are considered stale if they have not been used
// as upstream destinations during this interval. New hosts are added
// to original destination clusters on demand as new connections are
@ -882,7 +882,7 @@ message Cluster {
// them remain open, saving the latency that would otherwise be spent
// on opening new connections. If this setting is not specified, the
// value defaults to 5000ms. For cluster types other than
// :ref:`ORIGINAL_DST<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
// :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
// this setting is ignored.
google.protobuf.Duration cleanup_interval = 20 [(validate.rules).duration = {gt {}}];
@ -896,9 +896,9 @@ message Cluster {
// Optional configuration for the load balancing algorithm selected by
// LbPolicy. Currently only
// :ref:`RING_HASH<envoy_api_enum_value_config.cluster.v3.Cluster.LbPolicy.RING_HASH>`,
// :ref:`MAGLEV<envoy_api_enum_value_config.cluster.v3.Cluster.LbPolicy.MAGLEV>` and
// :ref:`LEAST_REQUEST<envoy_api_enum_value_config.cluster.v3.Cluster.LbPolicy.LEAST_REQUEST>`
// :ref:`RING_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.RING_HASH>`,
// :ref:`MAGLEV<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.MAGLEV>` and
// :ref:`LEAST_REQUEST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.LEAST_REQUEST>`
// has additional configuration options.
// Specifying ring_hash_lb_config or maglev_lb_config or least_request_lb_config without setting the corresponding
// LbPolicy will generate an error at runtime.
@ -921,7 +921,7 @@ message Cluster {
// Optional custom transport socket implementation to use for upstream connections.
// To setup TLS, set a transport socket with name `tls` and
// :ref:`UpstreamTlsContexts <envoy_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the `typed_config`.
// :ref:`UpstreamTlsContexts <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the `typed_config`.
// If no transport socket configuration is specified, new connections
// will be set up with plaintext.
core.v3.TransportSocket transport_socket = 24;
@ -936,9 +936,9 @@ message Cluster {
// Determines how Envoy selects the protocol used to speak to upstream hosts.
// This has been deprecated in favor of setting explicit protocol selection
// in the :ref:`http_protocol_options
// <envoy_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
// <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
// http_protocol_options can be set via the cluster's
// :ref:`extension_protocol_options<envoy_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
// :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
ClusterProtocolSelection protocol_selection = 26
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
@ -971,8 +971,8 @@ message Cluster {
repeated Filter filters = 40;
// [#not-implemented-hide:] New mechanism for LB policy configuration. Used only if the
// :ref:`lb_policy<envoy_api_field_config.cluster.v3.Cluster.lb_policy>` field has the value
// :ref:`LOAD_BALANCING_POLICY_CONFIG<envoy_api_enum_value_config.cluster.v3.Cluster.LbPolicy.LOAD_BALANCING_POLICY_CONFIG>`.
// :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>` field has the value
// :ref:`LOAD_BALANCING_POLICY_CONFIG<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.LOAD_BALANCING_POLICY_CONFIG>`.
LoadBalancingPolicy load_balancing_policy = 41;
// [#not-implemented-hide:]
@ -1000,7 +1000,7 @@ message Cluster {
// .. attention::
//
// This field has been deprecated in favor of `timeout_budgets`, part of
// :ref:`track_cluster_stats <envoy_api_field_config.cluster.v3.Cluster.track_cluster_stats>`.
// :ref:`track_cluster_stats <envoy_v3_api_field_config.cluster.v3.Cluster.track_cluster_stats>`.
bool track_timeout_budgets = 47
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];

@ -35,7 +35,7 @@ message OutlierDetection {
// The base time that a host is ejected for. The real time is equal to the
// base time multiplied by the number of times the host has been ejected and is
// capped by :ref:`max_ejection_time<envoy_api_field_config.cluster.v3.OutlierDetection.max_ejection_time>`.
// capped by :ref:`max_ejection_time<envoy_v3_api_field_config.cluster.v3.OutlierDetection.max_ejection_time>`.
// Defaults to 30000ms or 30s.
google.protobuf.Duration base_ejection_time = 3 [(validate.rules).duration = {gt {}}];
@ -87,16 +87,16 @@ message OutlierDetection {
// Determines whether to distinguish local origin failures from external errors. If set to true
// the following configuration parameters are taken into account:
// :ref:`consecutive_local_origin_failure<envoy_api_field_config.cluster.v3.OutlierDetection.consecutive_local_origin_failure>`,
// :ref:`enforcing_consecutive_local_origin_failure<envoy_api_field_config.cluster.v3.OutlierDetection.enforcing_consecutive_local_origin_failure>`
// :ref:`consecutive_local_origin_failure<envoy_v3_api_field_config.cluster.v3.OutlierDetection.consecutive_local_origin_failure>`,
// :ref:`enforcing_consecutive_local_origin_failure<envoy_v3_api_field_config.cluster.v3.OutlierDetection.enforcing_consecutive_local_origin_failure>`
// and
// :ref:`enforcing_local_origin_success_rate<envoy_api_field_config.cluster.v3.OutlierDetection.enforcing_local_origin_success_rate>`.
// :ref:`enforcing_local_origin_success_rate<envoy_v3_api_field_config.cluster.v3.OutlierDetection.enforcing_local_origin_success_rate>`.
// Defaults to false.
bool split_external_local_origin_errors = 12;
// The number of consecutive locally originated failures before ejection
// occurs. Defaults to 5. Parameter takes effect only when
// :ref:`split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// :ref:`split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is set to true.
google.protobuf.UInt32Value consecutive_local_origin_failure = 13;
@ -104,7 +104,7 @@ message OutlierDetection {
// is detected through consecutive locally originated failures. This setting can be
// used to disable ejection or to ramp it up slowly. Defaults to 100.
// Parameter takes effect only when
// :ref:`split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// :ref:`split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is set to true.
google.protobuf.UInt32Value enforcing_consecutive_local_origin_failure = 14
[(validate.rules).uint32 = {lte: 100}];
@ -113,7 +113,7 @@ message OutlierDetection {
// is detected through success rate statistics for locally originated errors.
// This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
// Parameter takes effect only when
// :ref:`split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// :ref:`split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is set to true.
google.protobuf.UInt32Value enforcing_local_origin_success_rate = 15
[(validate.rules).uint32 = {lte: 100}];
@ -150,8 +150,8 @@ message OutlierDetection {
// this host. Defaults to 50.
google.protobuf.UInt32Value failure_percentage_request_volume = 20;
// The maximum time that a host is ejected for. See :ref:`base_ejection_time<envoy_api_field_config.cluster.v3.OutlierDetection.base_ejection_time>`
// The maximum time that a host is ejected for. See :ref:`base_ejection_time<envoy_v3_api_field_config.cluster.v3.OutlierDetection.base_ejection_time>`
// for more information. If not specified, the default value (300000ms or 300s) or
// :ref:`base_ejection_time<envoy_api_field_config.cluster.v3.OutlierDetection.base_ejection_time>` value is applied, whatever is larger.
// :ref:`base_ejection_time<envoy_v3_api_field_config.cluster.v3.OutlierDetection.base_ejection_time>` value is applied, whatever is larger.
google.protobuf.Duration max_ejection_time = 21 [(validate.rules).duration = {gt {}}];
}

@ -25,7 +25,7 @@ message CircuitBreakers {
"envoy.config.cluster.v3.CircuitBreakers";
// A Thresholds defines CircuitBreaker settings for a
// :ref:`RoutingPriority<envoy_api_enum_config.core.v4alpha.RoutingPriority>`.
// :ref:`RoutingPriority<envoy_v3_api_enum_config.core.v3.RoutingPriority>`.
// [#next-free-field: 9]
message Thresholds {
option (udpa.annotations.versioning).previous_message_type =
@ -49,7 +49,7 @@ message CircuitBreakers {
google.protobuf.UInt32Value min_retry_concurrency = 2;
}
// The :ref:`RoutingPriority<envoy_api_enum_config.core.v4alpha.RoutingPriority>`
// The :ref:`RoutingPriority<envoy_v3_api_enum_config.core.v3.RoutingPriority>`
// the specified CircuitBreaker settings apply to.
core.v4alpha.RoutingPriority priority = 1 [(validate.rules).enum = {defined_only: true}];
@ -96,10 +96,10 @@ message CircuitBreakers {
google.protobuf.UInt32Value max_connection_pools = 7;
}
// If multiple :ref:`Thresholds<envoy_api_msg_config.cluster.v4alpha.CircuitBreakers.Thresholds>`
// are defined with the same :ref:`RoutingPriority<envoy_api_enum_config.core.v4alpha.RoutingPriority>`,
// If multiple :ref:`Thresholds<envoy_v3_api_msg_config.cluster.v3.CircuitBreakers.Thresholds>`
// are defined with the same :ref:`RoutingPriority<envoy_v3_api_enum_config.core.v3.RoutingPriority>`,
// the first one in the list is used. If no Thresholds is defined for a given
// :ref:`RoutingPriority<envoy_api_enum_config.core.v4alpha.RoutingPriority>`, the default values
// :ref:`RoutingPriority<envoy_v3_api_enum_config.core.v3.RoutingPriority>`, the default values
// are used.
repeated Thresholds thresholds = 1;
}

@ -110,7 +110,7 @@ message Cluster {
CLUSTER_PROVIDED = 6;
// [#not-implemented-hide:] Use the new :ref:`load_balancing_policy
// <envoy_api_field_config.cluster.v4alpha.Cluster.load_balancing_policy>` field to determine the LB policy.
// <envoy_v3_api_field_config.cluster.v3.Cluster.load_balancing_policy>` field to determine the LB policy.
// [#next-major-version: In the v3 API, we should consider deprecating the lb_policy field
// and instead using the new load_balancing_policy field as the one and only mechanism for
// configuring this.]
@ -123,8 +123,8 @@ message Cluster {
// specified, the DNS resolver will first perform a lookup for addresses in
// the IPv6 family and fallback to a lookup for addresses in the IPv4 family.
// For cluster types other than
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>` and
// :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>`,
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
// :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
// this setting is
// ignored.
enum DnsLookupFamily {
@ -135,7 +135,7 @@ message Cluster {
enum ClusterProtocolSelection {
// Cluster can only operate on one of the possible upstream protocols (HTTP1.1, HTTP2).
// If :ref:`http2_protocol_options <envoy_api_field_config.cluster.v4alpha.Cluster.http2_protocol_options>` are
// If :ref:`http2_protocol_options <envoy_v3_api_field_config.cluster.v3.Cluster.http2_protocol_options>` are
// present, HTTP2 will be used, otherwise HTTP1.1 will be used.
USE_CONFIGURED_PROTOCOL = 0;
@ -233,7 +233,7 @@ message Cluster {
// If KEYS_SUBSET is selected, subset selector matching is performed again with metadata
// keys reduced to
// :ref:`fallback_keys_subset<envoy_api_field_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector.fallback_keys_subset>`.
// :ref:`fallback_keys_subset<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.fallback_keys_subset>`.
// It allows for a fallback to a different, less specific selector if some of the keys of
// the selector are considered optional.
KEYS_SUBSET = 4;
@ -262,30 +262,30 @@ message Cluster {
[(validate.rules).enum = {defined_only: true}];
// Subset of
// :ref:`keys<envoy_api_field_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
// :ref:`KEYS_SUBSET<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
// :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
// :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
// fallback policy.
// It has to be a non empty list if KEYS_SUBSET fallback policy is selected.
// For any other fallback policy the parameter is not used and should not be set.
// Only values also present in
// :ref:`keys<envoy_api_field_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
// :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` are allowed, but
// `fallback_keys_subset` cannot be equal to `keys`.
repeated string fallback_keys_subset = 3;
}
// The behavior used when no endpoint subset matches the selected route's
// metadata. The value defaults to
// :ref:`NO_FALLBACK<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
// :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
LbSubsetFallbackPolicy fallback_policy = 1 [(validate.rules).enum = {defined_only: true}];
// Specifies the default subset of endpoints used during fallback if
// fallback_policy is
// :ref:`DEFAULT_SUBSET<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
// :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
// Each field in default_subset is
// compared to the matching LbEndpoint.Metadata under the *envoy.lb*
// namespace. It is valid for no hosts to match, in which case the behavior
// is the same as a fallback_policy of
// :ref:`NO_FALLBACK<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
// :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
google.protobuf.Struct default_subset = 2;
// For each entry, LbEndpoint.Metadata's
@ -393,16 +393,16 @@ message Cluster {
// Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each
// provided host) the better the request distribution will reflect the desired weights. Defaults
// to 1024 entries, and limited to 8M entries. See also
// :ref:`maximum_ring_size<envoy_api_field_config.cluster.v4alpha.Cluster.RingHashLbConfig.maximum_ring_size>`.
// :ref:`maximum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.maximum_ring_size>`.
google.protobuf.UInt64Value minimum_ring_size = 1 [(validate.rules).uint64 = {lte: 8388608}];
// The hash function used to hash hosts onto the ketama ring. The value defaults to
// :ref:`XX_HASH<envoy_api_enum_value_config.cluster.v4alpha.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
// :ref:`XX_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
HashFunction hash_function = 3 [(validate.rules).enum = {defined_only: true}];
// Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
// to further constrain resource use. See also
// :ref:`minimum_ring_size<envoy_api_field_config.cluster.v4alpha.Cluster.RingHashLbConfig.minimum_ring_size>`.
// :ref:`minimum_ring_size<envoy_v3_api_field_config.cluster.v3.Cluster.RingHashLbConfig.minimum_ring_size>`.
google.protobuf.UInt64Value maximum_ring_size = 4 [(validate.rules).uint64 = {lte: 8388608}];
}
@ -560,7 +560,7 @@ message Cluster {
// Specifies the base interval between refreshes. This parameter is required and must be greater
// than zero and less than
// :ref:`max_interval <envoy_api_field_config.cluster.v4alpha.Cluster.RefreshRate.max_interval>`.
// :ref:`max_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.max_interval>`.
google.protobuf.Duration base_interval = 1 [(validate.rules).duration = {
required: true
gt {nanos: 1000000}
@ -568,8 +568,8 @@ message Cluster {
// Specifies the maximum interval between refreshes. This parameter is optional, but must be
// greater than or equal to the
// :ref:`base_interval <envoy_api_field_config.cluster.v4alpha.Cluster.RefreshRate.base_interval>` if set. The default
// is 10 times the :ref:`base_interval <envoy_api_field_config.cluster.v4alpha.Cluster.RefreshRate.base_interval>`.
// :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>` if set. The default
// is 10 times the :ref:`base_interval <envoy_v3_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`.
google.protobuf.Duration max_interval = 2 [(validate.rules).duration = {gt {nanos: 1000000}}];
}
@ -638,9 +638,9 @@ message Cluster {
// Configuration to use different transport sockets for different endpoints.
// The entry of *envoy.transport_socket_match* in the
// :ref:`LbEndpoint.Metadata <envoy_api_field_config.endpoint.v3.LbEndpoint.metadata>`
// :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`
// is used to match against the transport sockets as they appear in the list. The first
// :ref:`match <envoy_api_msg_config.cluster.v4alpha.Cluster.TransportSocketMatch>` is used.
// :ref:`match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` is used.
// For example, with the following match
//
// .. code-block:: yaml
@ -660,7 +660,7 @@ message Cluster {
// Connections to the endpoints whose metadata value under *envoy.transport_socket_match*
// having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration.
//
// If a :ref:`socket match <envoy_api_msg_config.cluster.v4alpha.Cluster.TransportSocketMatch>` with empty match
// If a :ref:`socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` with empty match
// criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
// socket match in case above.
//
@ -682,7 +682,7 @@ message Cluster {
//
// This field can be used to specify custom transport socket configurations for health
// checks by adding matching key/value pairs in a health check's
// :ref:`transport socket match criteria <envoy_api_field_config.core.v4alpha.HealthCheck.transport_socket_match_criteria>` field.
// :ref:`transport socket match criteria <envoy_v3_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>` field.
//
// [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
repeated TransportSocketMatch transport_socket_matches = 43;
@ -690,7 +690,7 @@ message Cluster {
// Supplies the name of the cluster which must be unique across all clusters.
// The cluster name is used when emitting
// :ref:`statistics <config_cluster_manager_cluster_stats>` if :ref:`alt_stat_name
// <envoy_api_field_config.cluster.v4alpha.Cluster.alt_stat_name>` is not provided.
// <envoy_v3_api_field_config.cluster.v3.Cluster.alt_stat_name>` is not provided.
// Any ``:`` in the cluster name will be converted to ``_`` when emitting statistics.
string name = 1 [(validate.rules).string = {min_len: 1}];
@ -727,19 +727,19 @@ message Cluster {
// The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
// when picking a host in the cluster.
// [#comment:TODO: Remove enum constraint :ref:`LOAD_BALANCING_POLICY_CONFIG<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbPolicy.LOAD_BALANCING_POLICY_CONFIG>` when implemented.]
// [#comment:TODO: Remove enum constraint :ref:`LOAD_BALANCING_POLICY_CONFIG<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.LOAD_BALANCING_POLICY_CONFIG>` when implemented.]
LbPolicy lb_policy = 6 [(validate.rules).enum = {defined_only: true not_in: 7}];
// Setting this is required for specifying members of
// :ref:`STATIC<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STATIC>`,
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>`
// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
// :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
// or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` clusters.
// This field supersedes the *hosts* field in the v2 API.
//
// .. attention::
//
// Setting this allows non-EDS cluster types to contain embedded EDS equivalent
// :ref:`endpoint assignments<envoy_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
// :ref:`endpoint assignments<envoy_v3_api_msg_config.endpoint.v3.ClusterLoadAssignment>`.
//
endpoint.v3.ClusterLoadAssignment load_assignment = 33;
@ -766,24 +766,24 @@ message Cluster {
map<string, google.protobuf.Any> typed_extension_protocol_options = 36;
// If the DNS refresh rate is specified and the cluster type is either
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>`,
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
// this value is used as the clusters DNS refresh
// rate. The value configured must be at least 1ms. If this setting is not specified, the
// value defaults to 5000ms. For cluster types other than
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>`
// and :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>`
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
// and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
// this setting is ignored.
google.protobuf.Duration dns_refresh_rate = 16
[(validate.rules).duration = {gt {nanos: 1000000}}];
// If the DNS failure refresh rate is specified and the cluster type is either
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>`,
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
// this is used as the clusters DNS refresh rate when requests are failing. If this setting is
// not specified, the failure refresh rate defaults to the DNS refresh rate. For cluster types
// other than :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>` and
// :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
// other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
// :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
// ignored.
RefreshRate dns_failure_refresh_rate = 44;
@ -794,18 +794,18 @@ message Cluster {
// The DNS IP address resolution policy. If this setting is not specified, the
// value defaults to
// :ref:`AUTO<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DnsLookupFamily.AUTO>`.
// :ref:`AUTO<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DnsLookupFamily.AUTO>`.
DnsLookupFamily dns_lookup_family = 17 [(validate.rules).enum = {defined_only: true}];
// If DNS resolvers are specified and the cluster type is either
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>`,
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
// this value is used to specify the clusters dns resolvers.
// If this setting is not specified, the value defaults to the default
// resolver, which uses /etc/resolv.conf for configuration. For cluster types
// other than
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>`
// and :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>`
// :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
// and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
// this setting is ignored.
// Setting this value causes failure if the
// ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during
@ -825,7 +825,7 @@ message Cluster {
OutlierDetection outlier_detection = 19;
// The interval for removing stale hosts from a cluster type
// :ref:`ORIGINAL_DST<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.ORIGINAL_DST>`.
// :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`.
// Hosts are considered stale if they have not been used
// as upstream destinations during this interval. New hosts are added
// to original destination clusters on demand as new connections are
@ -835,7 +835,7 @@ message Cluster {
// them remain open, saving the latency that would otherwise be spent
// on opening new connections. If this setting is not specified, the
// value defaults to 5000ms. For cluster types other than
// :ref:`ORIGINAL_DST<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.ORIGINAL_DST>`
// :ref:`ORIGINAL_DST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.ORIGINAL_DST>`
// this setting is ignored.
google.protobuf.Duration cleanup_interval = 20 [(validate.rules).duration = {gt {}}];
@ -849,9 +849,9 @@ message Cluster {
// Optional configuration for the load balancing algorithm selected by
// LbPolicy. Currently only
// :ref:`RING_HASH<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbPolicy.RING_HASH>`,
// :ref:`MAGLEV<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbPolicy.MAGLEV>` and
// :ref:`LEAST_REQUEST<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbPolicy.LEAST_REQUEST>`
// :ref:`RING_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.RING_HASH>`,
// :ref:`MAGLEV<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.MAGLEV>` and
// :ref:`LEAST_REQUEST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.LEAST_REQUEST>`
// has additional configuration options.
// Specifying ring_hash_lb_config or maglev_lb_config or least_request_lb_config without setting the corresponding
// LbPolicy will generate an error at runtime.
@ -874,7 +874,7 @@ message Cluster {
// Optional custom transport socket implementation to use for upstream connections.
// To setup TLS, set a transport socket with name `tls` and
// :ref:`UpstreamTlsContexts <envoy_api_msg_extensions.transport_sockets.tls.v4alpha.UpstreamTlsContext>` in the `typed_config`.
// :ref:`UpstreamTlsContexts <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.UpstreamTlsContext>` in the `typed_config`.
// If no transport socket configuration is specified, new connections
// will be set up with plaintext.
core.v4alpha.TransportSocket transport_socket = 24;
@ -915,8 +915,8 @@ message Cluster {
repeated Filter filters = 40;
// [#not-implemented-hide:] New mechanism for LB policy configuration. Used only if the
// :ref:`lb_policy<envoy_api_field_config.cluster.v4alpha.Cluster.lb_policy>` field has the value
// :ref:`LOAD_BALANCING_POLICY_CONFIG<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbPolicy.LOAD_BALANCING_POLICY_CONFIG>`.
// :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>` field has the value
// :ref:`LOAD_BALANCING_POLICY_CONFIG<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.LOAD_BALANCING_POLICY_CONFIG>`.
LoadBalancingPolicy load_balancing_policy = 41;
// [#not-implemented-hide:]

@ -35,7 +35,7 @@ message OutlierDetection {
// The base time that a host is ejected for. The real time is equal to the
// base time multiplied by the number of times the host has been ejected and is
// capped by :ref:`max_ejection_time<envoy_api_field_config.cluster.v4alpha.OutlierDetection.max_ejection_time>`.
// capped by :ref:`max_ejection_time<envoy_v3_api_field_config.cluster.v3.OutlierDetection.max_ejection_time>`.
// Defaults to 30000ms or 30s.
google.protobuf.Duration base_ejection_time = 3 [(validate.rules).duration = {gt {}}];
@ -87,16 +87,16 @@ message OutlierDetection {
// Determines whether to distinguish local origin failures from external errors. If set to true
// the following configuration parameters are taken into account:
// :ref:`consecutive_local_origin_failure<envoy_api_field_config.cluster.v4alpha.OutlierDetection.consecutive_local_origin_failure>`,
// :ref:`enforcing_consecutive_local_origin_failure<envoy_api_field_config.cluster.v4alpha.OutlierDetection.enforcing_consecutive_local_origin_failure>`
// :ref:`consecutive_local_origin_failure<envoy_v3_api_field_config.cluster.v3.OutlierDetection.consecutive_local_origin_failure>`,
// :ref:`enforcing_consecutive_local_origin_failure<envoy_v3_api_field_config.cluster.v3.OutlierDetection.enforcing_consecutive_local_origin_failure>`
// and
// :ref:`enforcing_local_origin_success_rate<envoy_api_field_config.cluster.v4alpha.OutlierDetection.enforcing_local_origin_success_rate>`.
// :ref:`enforcing_local_origin_success_rate<envoy_v3_api_field_config.cluster.v3.OutlierDetection.enforcing_local_origin_success_rate>`.
// Defaults to false.
bool split_external_local_origin_errors = 12;
// The number of consecutive locally originated failures before ejection
// occurs. Defaults to 5. Parameter takes effect only when
// :ref:`split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
// :ref:`split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is set to true.
google.protobuf.UInt32Value consecutive_local_origin_failure = 13;
@ -104,7 +104,7 @@ message OutlierDetection {
// is detected through consecutive locally originated failures. This setting can be
// used to disable ejection or to ramp it up slowly. Defaults to 100.
// Parameter takes effect only when
// :ref:`split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
// :ref:`split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is set to true.
google.protobuf.UInt32Value enforcing_consecutive_local_origin_failure = 14
[(validate.rules).uint32 = {lte: 100}];
@ -113,7 +113,7 @@ message OutlierDetection {
// is detected through success rate statistics for locally originated errors.
// This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
// Parameter takes effect only when
// :ref:`split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
// :ref:`split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is set to true.
google.protobuf.UInt32Value enforcing_local_origin_success_rate = 15
[(validate.rules).uint32 = {lte: 100}];
@ -150,8 +150,8 @@ message OutlierDetection {
// this host. Defaults to 50.
google.protobuf.UInt32Value failure_percentage_request_volume = 20;
// The maximum time that a host is ejected for. See :ref:`base_ejection_time<envoy_api_field_config.cluster.v4alpha.OutlierDetection.base_ejection_time>`
// The maximum time that a host is ejected for. See :ref:`base_ejection_time<envoy_v3_api_field_config.cluster.v3.OutlierDetection.base_ejection_time>`
// for more information. If not specified, the default value (300000ms or 300s) or
// :ref:`base_ejection_time<envoy_api_field_config.cluster.v4alpha.OutlierDetection.base_ejection_time>` value is applied, whatever is larger.
// :ref:`base_ejection_time<envoy_v3_api_field_config.cluster.v3.OutlierDetection.base_ejection_time>` value is applied, whatever is larger.
google.protobuf.Duration max_ejection_time = 21 [(validate.rules).duration = {gt {}}];
}

@ -37,7 +37,7 @@ message EnvoyInternalAddress {
oneof address_name_specifier {
option (validate.required) = true;
// [#not-implemented-hide:] The :ref:`listener name <envoy_api_field_config.listener.v3.Listener.name>` of the destination internal listener.
// [#not-implemented-hide:] The :ref:`listener name <envoy_v3_api_field_config.listener.v3.Listener.name>` of the destination internal listener.
string server_listener_name = 1;
}
}
@ -57,13 +57,13 @@ message SocketAddress {
// to the address. An empty address is not allowed. Specify ``0.0.0.0`` or ``::``
// to bind to any address. [#comment:TODO(zuercher) reinstate when implemented:
// It is possible to distinguish a Listener address via the prefix/suffix matching
// in :ref:`FilterChainMatch <envoy_api_msg_config.listener.v3.FilterChainMatch>`.] When used
// within an upstream :ref:`BindConfig <envoy_api_msg_config.core.v3.BindConfig>`, the address
// in :ref:`FilterChainMatch <envoy_v3_api_msg_config.listener.v3.FilterChainMatch>`.] When used
// within an upstream :ref:`BindConfig <envoy_v3_api_msg_config.core.v3.BindConfig>`, the address
// controls the source address of outbound connections. For :ref:`clusters
// <envoy_api_msg_config.cluster.v3.Cluster>`, the cluster type determines whether the
// <envoy_v3_api_msg_config.cluster.v3.Cluster>`, the cluster type determines whether the
// address must be an IP (*STATIC* or *EDS* clusters) or a hostname resolved by DNS
// (*STRICT_DNS* or *LOGICAL_DNS* clusters). Address resolution can be customized
// via :ref:`resolver_name <envoy_api_field_config.core.v3.SocketAddress.resolver_name>`.
// via :ref:`resolver_name <envoy_v3_api_field_config.core.v3.SocketAddress.resolver_name>`.
string address = 2 [(validate.rules).string = {min_len: 1}];
oneof port_specifier {
@ -72,7 +72,7 @@ message SocketAddress {
uint32 port_value = 3 [(validate.rules).uint32 = {lte: 65535}];
// This is only valid if :ref:`resolver_name
// <envoy_api_field_config.core.v3.SocketAddress.resolver_name>` is specified below and the
// <envoy_v3_api_field_config.core.v3.SocketAddress.resolver_name>` is specified below and the
// named resolver is capable of named port resolution.
string named_port = 4;
}
@ -117,7 +117,7 @@ message BindConfig {
// Whether to set the *IP_FREEBIND* option when creating the socket. When this
// flag is set to true, allows the :ref:`source_address
// <envoy_api_field_config.cluster.v3.UpstreamBindConfig.source_address>` to be an IP address
// <envoy_v3_api_field_config.cluster.v3.UpstreamBindConfig.source_address>` to be an IP address
// that is not configured on the system running Envoy. When this flag is set
// to false, the option *IP_FREEBIND* is disabled on the socket. When this
// flag is not set (default), the socket is not modified, i.e. the option is

@ -21,7 +21,7 @@ message BackoffStrategy {
// The base interval to be used for the next back off computation. It should
// be greater than zero and less than or equal to :ref:`max_interval
// <envoy_api_field_config.core.v3.BackoffStrategy.max_interval>`.
// <envoy_v3_api_field_config.core.v3.BackoffStrategy.max_interval>`.
google.protobuf.Duration base_interval = 1 [(validate.rules).duration = {
required: true
gte {nanos: 1000000}
@ -29,8 +29,8 @@ message BackoffStrategy {
// Specifies the maximum interval between retries. This parameter is optional,
// but must be greater than or equal to the :ref:`base_interval
// <envoy_api_field_config.core.v3.BackoffStrategy.base_interval>` if set. The default
// <envoy_v3_api_field_config.core.v3.BackoffStrategy.base_interval>` if set. The default
// is 10 times the :ref:`base_interval
// <envoy_api_field_config.core.v3.BackoffStrategy.base_interval>`.
// <envoy_v3_api_field_config.core.v3.BackoffStrategy.base_interval>`.
google.protobuf.Duration max_interval = 2 [(validate.rules).duration = {gt {}}];
}

@ -69,12 +69,12 @@ enum TrafficDirection {
message Locality {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.Locality";
// Region this :ref:`zone <envoy_api_field_config.core.v3.Locality.zone>` belongs to.
// Region this :ref:`zone <envoy_v3_api_field_config.core.v3.Locality.zone>` belongs to.
string region = 1;
// Defines the local service zone where Envoy is running. Though optional, it
// should be set if discovery service routing is used and the discovery
// service exposes :ref:`zone data <envoy_api_field_config.endpoint.v3.LocalityLbEndpoints.locality>`,
// service exposes :ref:`zone data <envoy_v3_api_field_config.endpoint.v3.LocalityLbEndpoints.locality>`,
// either in this message or via :option:`--service-zone`. The meaning of zone
// is context dependent, e.g. `Availability Zone (AZ)
// <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html>`_
@ -154,10 +154,10 @@ message Node {
// optional, it should be set if any of the following features are used:
// :ref:`statsd <arch_overview_statistics>`, :ref:`health check cluster
// verification
// <envoy_api_field_config.core.v3.HealthCheck.HttpHealthCheck.service_name_matcher>`,
// :ref:`runtime override directory <envoy_api_msg_config.bootstrap.v3.Runtime>`,
// <envoy_v3_api_field_config.core.v3.HealthCheck.HttpHealthCheck.service_name_matcher>`,
// :ref:`runtime override directory <envoy_v3_api_msg_config.bootstrap.v3.Runtime>`,
// :ref:`user agent addition
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.add_user_agent>`,
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.add_user_agent>`,
// :ref:`HTTP global rate limiting <config_http_filters_rate_limit>`,
// :ref:`CDS <config_cluster_manager_cds>`, and :ref:`HTTP tracing
// <arch_overview_tracing>`, either in this message or via
@ -352,7 +352,7 @@ message DataSource {
message RetryPolicy {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.RetryPolicy";
// Specifies parameters that control :ref:`retry backoff strategy <envoy_api_msg_config.core.v3.BackoffStrategy>`.
// Specifies parameters that control :ref:`retry backoff strategy <envoy_v3_api_msg_config.core.v3.BackoffStrategy>`.
// This parameter is optional, in which case the default base interval is 1000 milliseconds. The
// default maximum interval is 10 times the base interval.
BackoffStrategy retry_back_off = 1;
@ -393,7 +393,7 @@ message AsyncDataSource {
}
// Configuration for transport socket in :ref:`listeners <config_listeners>` and
// :ref:`clusters <envoy_api_msg_config.cluster.v3.Cluster>`. If the configuration is
// :ref:`clusters <envoy_v3_api_msg_config.cluster.v3.Cluster>`. If the configuration is
// empty, a default transport socket implementation and configuration will be
// chosen based on the platform and existence of tls_context.
message TransportSocket {
@ -420,7 +420,7 @@ message TransportSocket {
// .. note::
//
// Parsing of the runtime key's data is implemented such that it may be represented as a
// :ref:`FractionalPercent <envoy_api_msg_type.v3.FractionalPercent>` proto represented as JSON/YAML
// :ref:`FractionalPercent <envoy_v3_api_msg_type.v3.FractionalPercent>` proto represented as JSON/YAML
// and may also be represented as an integer with the assumption that the value is an integral
// percentage out of 100. For instance, a runtime key lookup returning the value "42" would parse
// as a `FractionalPercent` whose numerator is 42 and denominator is HUNDRED.

@ -109,7 +109,7 @@ message ApiConfigSource {
}
// Aggregated Discovery Service (ADS) options. This is currently empty, but when
// set in :ref:`ConfigSource <envoy_api_msg_config.core.v3.ConfigSource>` can be used to
// set in :ref:`ConfigSource <envoy_v3_api_msg_config.core.v3.ConfigSource>` can be used to
// specify that ADS is to be used.
message AggregatedConfigSource {
option (udpa.annotations.versioning).previous_message_type =
@ -118,7 +118,7 @@ message AggregatedConfigSource {
// [#not-implemented-hide:]
// Self-referencing config source options. This is currently empty, but when
// set in :ref:`ConfigSource <envoy_api_msg_config.core.v3.ConfigSource>` can be used to
// set in :ref:`ConfigSource <envoy_v3_api_msg_config.core.v3.ConfigSource>` can be used to
// specify that other data can be obtained from the same server.
message SelfConfigSource {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.SelfConfigSource";
@ -144,7 +144,7 @@ message RateLimitSettings {
// Configuration for :ref:`listeners <config_listeners>`, :ref:`clusters
// <config_cluster_manager>`, :ref:`routes
// <envoy_api_msg_config.route.v3.RouteConfiguration>`, :ref:`endpoints
// <envoy_v3_api_msg_config.route.v3.RouteConfiguration>`, :ref:`endpoints
// <arch_overview_service_discovery>` etc. may either be sourced from the
// filesystem or from an xDS API source. Filesystem configs are watched with
// inotify for updates.
@ -162,7 +162,7 @@ message ConfigSource {
option (validate.required) = true;
// Path on the filesystem to source and watch for configuration updates.
// When sourcing configuration for :ref:`secret <envoy_api_msg_extensions.transport_sockets.tls.v3.Secret>`,
// When sourcing configuration for :ref:`secret <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.Secret>`,
// the certificate and key files are also watched for updates.
//
// .. note::
@ -186,7 +186,7 @@ message ConfigSource {
// [#not-implemented-hide:]
// When set, the client will access the resources from the same server it got the
// ConfigSource from, although not necessarily from the same stream. This is similar to the
// :ref:`ads<envoy_api_field.ConfigSource.ads>` field, except that the client may use a
// :ref:`ads<envoy_v3_api_field.ConfigSource.ads>` field, except that the client may use a
// different stream to the same server. As a result, this field can be used for things
// like LRS that cannot be sent on an ADS stream. It can also be used to link from (e.g.)
// LDS to RDS on the same server without requiring the management server to know its name

@ -23,7 +23,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: gRPC services]
// gRPC service configuration. This is used by :ref:`ApiConfigSource
// <envoy_api_msg_config.core.v3.ApiConfigSource>` and filter configurations.
// <envoy_v3_api_msg_config.core.v3.ApiConfigSource>` and filter configurations.
// [#next-free-field: 6]
message GrpcService {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.GrpcService";
@ -33,8 +33,8 @@ message GrpcService {
"envoy.api.v2.core.GrpcService.EnvoyGrpc";
// The name of the upstream gRPC cluster. SSL credentials will be supplied
// in the :ref:`Cluster <envoy_api_msg_config.cluster.v3.Cluster>` :ref:`transport_socket
// <envoy_api_field_config.cluster.v3.Cluster.transport_socket>`.
// in the :ref:`Cluster <envoy_v3_api_msg_config.cluster.v3.Cluster>` :ref:`transport_socket
// <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket>`.
string cluster_name = 1 [(validate.rules).string = {min_len: 1}];
// The `:authority` header in the grpc request. If this field is not set, the authority header value will be `cluster_name`.
@ -230,7 +230,7 @@ message GrpcService {
// The target URI when using the `Google C++ gRPC client
// <https://github.com/grpc/grpc>`_. SSL credentials will be supplied in
// :ref:`channel_credentials <envoy_api_field_config.core.v3.GrpcService.GoogleGrpc.channel_credentials>`.
// :ref:`channel_credentials <envoy_v3_api_field_config.core.v3.GrpcService.GoogleGrpc.channel_credentials>`.
string target_uri = 1 [(validate.rules).string = {min_len: 1}];
ChannelCredentials channel_credentials = 2;

@ -85,7 +85,7 @@ message HealthCheck {
// The value of the host header in the HTTP health check request. If
// left empty (default value), the name of the cluster this health check is associated
// with will be used. The host header can be customized for a specific endpoint by setting the
// :ref:`hostname <envoy_api_field_config.endpoint.v3.Endpoint.HealthCheckConfig.hostname>` field.
// :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.HealthCheckConfig.hostname>` field.
string host = 1 [(validate.rules).string = {well_known_regex: HTTP_HEADER_VALUE strict: false}];
// Specifies the HTTP path that will be requested during health checking. For example
@ -114,7 +114,7 @@ message HealthCheck {
// Specifies a list of HTTP response statuses considered healthy. If provided, replaces default
// 200-only policy - 200 must be included explicitly as needed. Ranges follow half-open
// semantics of :ref:`Int64Range <envoy_api_msg_type.v3.Int64Range>`. The start and end of each
// semantics of :ref:`Int64Range <envoy_v3_api_msg_type.v3.Int64Range>`. The start and end of each
// range are required. Only statuses in the range [100, 600) are allowed.
repeated type.v3.Int64Range expected_statuses = 9;
@ -123,7 +123,7 @@ message HealthCheck {
// An optional service name parameter which is used to validate the identity of
// the health checked cluster using a :ref:`StringMatcher
// <envoy_api_msg_type.matcher.v3.StringMatcher>`. See the :ref:`architecture overview
// <envoy_v3_api_msg_type.matcher.v3.StringMatcher>`. See the :ref:`architecture overview
// <arch_overview_health_checking_identity>` for more information.
type.matcher.v3.StringMatcher service_name_matcher = 11;
}
@ -170,7 +170,7 @@ message HealthCheck {
// The value of the :authority header in the gRPC health check request. If
// left empty (default value), the name of the cluster this health check is associated
// with will be used. The authority header can be customized for a specific endpoint by setting
// the :ref:`hostname <envoy_api_field_config.endpoint.v3.Endpoint.HealthCheckConfig.hostname>` field.
// the :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.HealthCheckConfig.hostname>` field.
string authority = 2
[(validate.rules).string = {well_known_regex: HTTP_HEADER_VALUE strict: false}];
}
@ -205,7 +205,7 @@ message HealthCheck {
// Specifies the ALPN protocols for health check connections. This is useful if the
// corresponding upstream is using ALPN-based :ref:`FilterChainMatch
// <envoy_api_msg_config.listener.v3.FilterChainMatch>` along with different protocols for health checks
// <envoy_v3_api_msg_config.listener.v3.FilterChainMatch>` along with different protocols for health checks
// versus data connections. If empty, no ALPN protocols will be set on health check connections.
repeated string alpn_protocols = 1;
}
@ -339,7 +339,7 @@ message HealthCheck {
TlsOptions tls_options = 21;
// Optional key/value pairs that will be used to match a transport socket from those specified in the cluster's
// :ref:`tranport socket matches <envoy_api_field_config.cluster.v3.Cluster.transport_socket_matches>`.
// :ref:`tranport socket matches <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket_matches>`.
// For example, the following match criteria
//
// .. code-block:: yaml
@ -347,7 +347,7 @@ message HealthCheck {
// transport_socket_match_criteria:
// useMTLS: true
//
// Will match the following :ref:`cluster socket match <envoy_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>`
// Will match the following :ref:`cluster socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>`
//
// .. code-block:: yaml
//
@ -360,13 +360,13 @@ message HealthCheck {
// config: { ... } # tls socket configuration
//
// If this field is set, then for health checks it will supersede an entry of *envoy.transport_socket* in the
// :ref:`LbEndpoint.Metadata <envoy_api_field_config.endpoint.v3.LbEndpoint.metadata>`.
// :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`.
// This allows using different transport socket capabilities for health checking versus proxying to the
// endpoint.
//
// If the key/values pairs specified do not match any
// :ref:`transport socket matches <envoy_api_field_config.cluster.v3.Cluster.transport_socket_matches>`,
// the cluster's :ref:`transport socket <envoy_api_field_config.cluster.v3.Cluster.transport_socket>`
// :ref:`transport socket matches <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket_matches>`,
// the cluster's :ref:`transport socket <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket>`
// will be used for health check socket configuration.
google.protobuf.Struct transport_socket_match_criteria = 23;
}

@ -101,7 +101,7 @@ message HttpProtocolOptions {
// idle timeout is reached the connection will be closed. If the connection is an HTTP/2
// downstream connection a drain sequence will occur prior to closing the connection, see
// :ref:`drain_timeout
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.drain_timeout>`.
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.drain_timeout>`.
// Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.
// If not specified, this defaults to 1 hour. To disable idle timeouts explicitly set this to 0.
//
@ -111,14 +111,14 @@ message HttpProtocolOptions {
//
// If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
// is configured, this timeout is scaled for downstream connections according to the value for
// :ref:`HTTP_DOWNSTREAM_CONNECTION_IDLE <envoy_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_CONNECTION_IDLE>`.
// :ref:`HTTP_DOWNSTREAM_CONNECTION_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_CONNECTION_IDLE>`.
google.protobuf.Duration idle_timeout = 1;
// The maximum duration of a connection. The duration is defined as a period since a connection
// was established. If not set, there is no max duration. When max_connection_duration is reached
// the connection will be closed. Drain sequence will occur prior to closing the connection if
// if's applicable. See :ref:`drain_timeout
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.drain_timeout>`.
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.drain_timeout>`.
// Note: not implemented for upstream connections.
google.protobuf.Duration max_connection_duration = 3;

@ -40,7 +40,7 @@ message EnvoyInternalAddress {
oneof address_name_specifier {
option (validate.required) = true;
// [#not-implemented-hide:] The :ref:`listener name <envoy_api_field_config.listener.v4alpha.Listener.name>` of the destination internal listener.
// [#not-implemented-hide:] The :ref:`listener name <envoy_v3_api_field_config.listener.v3.Listener.name>` of the destination internal listener.
string server_listener_name = 1;
}
}
@ -60,13 +60,13 @@ message SocketAddress {
// to the address. An empty address is not allowed. Specify ``0.0.0.0`` or ``::``
// to bind to any address. [#comment:TODO(zuercher) reinstate when implemented:
// It is possible to distinguish a Listener address via the prefix/suffix matching
// in :ref:`FilterChainMatch <envoy_api_msg_config.listener.v4alpha.FilterChainMatch>`.] When used
// within an upstream :ref:`BindConfig <envoy_api_msg_config.core.v4alpha.BindConfig>`, the address
// in :ref:`FilterChainMatch <envoy_v3_api_msg_config.listener.v3.FilterChainMatch>`.] When used
// within an upstream :ref:`BindConfig <envoy_v3_api_msg_config.core.v3.BindConfig>`, the address
// controls the source address of outbound connections. For :ref:`clusters
// <envoy_api_msg_config.cluster.v4alpha.Cluster>`, the cluster type determines whether the
// <envoy_v3_api_msg_config.cluster.v3.Cluster>`, the cluster type determines whether the
// address must be an IP (*STATIC* or *EDS* clusters) or a hostname resolved by DNS
// (*STRICT_DNS* or *LOGICAL_DNS* clusters). Address resolution can be customized
// via :ref:`resolver_name <envoy_api_field_config.core.v4alpha.SocketAddress.resolver_name>`.
// via :ref:`resolver_name <envoy_v3_api_field_config.core.v3.SocketAddress.resolver_name>`.
string address = 2 [(validate.rules).string = {min_len: 1}];
oneof port_specifier {
@ -75,7 +75,7 @@ message SocketAddress {
uint32 port_value = 3 [(validate.rules).uint32 = {lte: 65535}];
// This is only valid if :ref:`resolver_name
// <envoy_api_field_config.core.v4alpha.SocketAddress.resolver_name>` is specified below and the
// <envoy_v3_api_field_config.core.v3.SocketAddress.resolver_name>` is specified below and the
// named resolver is capable of named port resolution.
string named_port = 4;
}
@ -120,7 +120,7 @@ message BindConfig {
// Whether to set the *IP_FREEBIND* option when creating the socket. When this
// flag is set to true, allows the :ref:`source_address
// <envoy_api_field_config.cluster.v4alpha.UpstreamBindConfig.source_address>` to be an IP address
// <envoy_v3_api_field_config.cluster.v3.UpstreamBindConfig.source_address>` to be an IP address
// that is not configured on the system running Envoy. When this flag is set
// to false, the option *IP_FREEBIND* is disabled on the socket. When this
// flag is not set (default), the socket is not modified, i.e. the option is

@ -22,7 +22,7 @@ message BackoffStrategy {
// The base interval to be used for the next back off computation. It should
// be greater than zero and less than or equal to :ref:`max_interval
// <envoy_api_field_config.core.v4alpha.BackoffStrategy.max_interval>`.
// <envoy_v3_api_field_config.core.v3.BackoffStrategy.max_interval>`.
google.protobuf.Duration base_interval = 1 [(validate.rules).duration = {
required: true
gte {nanos: 1000000}
@ -30,8 +30,8 @@ message BackoffStrategy {
// Specifies the maximum interval between retries. This parameter is optional,
// but must be greater than or equal to the :ref:`base_interval
// <envoy_api_field_config.core.v4alpha.BackoffStrategy.base_interval>` if set. The default
// <envoy_v3_api_field_config.core.v3.BackoffStrategy.base_interval>` if set. The default
// is 10 times the :ref:`base_interval
// <envoy_api_field_config.core.v4alpha.BackoffStrategy.base_interval>`.
// <envoy_v3_api_field_config.core.v3.BackoffStrategy.base_interval>`.
google.protobuf.Duration max_interval = 2 [(validate.rules).duration = {gt {}}];
}

@ -66,12 +66,12 @@ enum TrafficDirection {
message Locality {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.core.v3.Locality";
// Region this :ref:`zone <envoy_api_field_config.core.v4alpha.Locality.zone>` belongs to.
// Region this :ref:`zone <envoy_v3_api_field_config.core.v3.Locality.zone>` belongs to.
string region = 1;
// Defines the local service zone where Envoy is running. Though optional, it
// should be set if discovery service routing is used and the discovery
// service exposes :ref:`zone data <envoy_api_field_config.endpoint.v3.LocalityLbEndpoints.locality>`,
// service exposes :ref:`zone data <envoy_v3_api_field_config.endpoint.v3.LocalityLbEndpoints.locality>`,
// either in this message or via :option:`--service-zone`. The meaning of zone
// is context dependent, e.g. `Availability Zone (AZ)
// <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html>`_
@ -151,10 +151,10 @@ message Node {
// optional, it should be set if any of the following features are used:
// :ref:`statsd <arch_overview_statistics>`, :ref:`health check cluster
// verification
// <envoy_api_field_config.core.v4alpha.HealthCheck.HttpHealthCheck.service_name_matcher>`,
// :ref:`runtime override directory <envoy_api_msg_config.bootstrap.v4alpha.Runtime>`,
// <envoy_v3_api_field_config.core.v3.HealthCheck.HttpHealthCheck.service_name_matcher>`,
// :ref:`runtime override directory <envoy_v3_api_msg_config.bootstrap.v3.Runtime>`,
// :ref:`user agent addition
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.add_user_agent>`,
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.add_user_agent>`,
// :ref:`HTTP global rate limiting <config_http_filters_rate_limit>`,
// :ref:`CDS <config_cluster_manager_cds>`, and :ref:`HTTP tracing
// <arch_overview_tracing>`, either in this message or via
@ -348,7 +348,7 @@ message DataSource {
message RetryPolicy {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.core.v3.RetryPolicy";
// Specifies parameters that control :ref:`retry backoff strategy <envoy_api_msg_config.core.v4alpha.BackoffStrategy>`.
// Specifies parameters that control :ref:`retry backoff strategy <envoy_v3_api_msg_config.core.v3.BackoffStrategy>`.
// This parameter is optional, in which case the default base interval is 1000 milliseconds. The
// default maximum interval is 10 times the base interval.
BackoffStrategy retry_back_off = 1;
@ -390,7 +390,7 @@ message AsyncDataSource {
}
// Configuration for transport socket in :ref:`listeners <config_listeners>` and
// :ref:`clusters <envoy_api_msg_config.cluster.v4alpha.Cluster>`. If the configuration is
// :ref:`clusters <envoy_v3_api_msg_config.cluster.v3.Cluster>`. If the configuration is
// empty, a default transport socket implementation and configuration will be
// chosen based on the platform and existence of tls_context.
message TransportSocket {
@ -418,7 +418,7 @@ message TransportSocket {
// .. note::
//
// Parsing of the runtime key's data is implemented such that it may be represented as a
// :ref:`FractionalPercent <envoy_api_msg_type.v3.FractionalPercent>` proto represented as JSON/YAML
// :ref:`FractionalPercent <envoy_v3_api_msg_type.v3.FractionalPercent>` proto represented as JSON/YAML
// and may also be represented as an integer with the assumption that the value is an integral
// percentage out of 100. For instance, a runtime key lookup returning the value "42" would parse
// as a `FractionalPercent` whose numerator is 42 and denominator is HUNDRED.

@ -112,7 +112,7 @@ message ApiConfigSource {
}
// Aggregated Discovery Service (ADS) options. This is currently empty, but when
// set in :ref:`ConfigSource <envoy_api_msg_config.core.v4alpha.ConfigSource>` can be used to
// set in :ref:`ConfigSource <envoy_v3_api_msg_config.core.v3.ConfigSource>` can be used to
// specify that ADS is to be used.
message AggregatedConfigSource {
option (udpa.annotations.versioning).previous_message_type =
@ -121,7 +121,7 @@ message AggregatedConfigSource {
// [#not-implemented-hide:]
// Self-referencing config source options. This is currently empty, but when
// set in :ref:`ConfigSource <envoy_api_msg_config.core.v4alpha.ConfigSource>` can be used to
// set in :ref:`ConfigSource <envoy_v3_api_msg_config.core.v3.ConfigSource>` can be used to
// specify that other data can be obtained from the same server.
message SelfConfigSource {
option (udpa.annotations.versioning).previous_message_type =
@ -148,7 +148,7 @@ message RateLimitSettings {
// Configuration for :ref:`listeners <config_listeners>`, :ref:`clusters
// <config_cluster_manager>`, :ref:`routes
// <envoy_api_msg_config.route.v4alpha.RouteConfiguration>`, :ref:`endpoints
// <envoy_v3_api_msg_config.route.v3.RouteConfiguration>`, :ref:`endpoints
// <arch_overview_service_discovery>` etc. may either be sourced from the
// filesystem or from an xDS API source. Filesystem configs are watched with
// inotify for updates.
@ -166,7 +166,7 @@ message ConfigSource {
option (validate.required) = true;
// Path on the filesystem to source and watch for configuration updates.
// When sourcing configuration for :ref:`secret <envoy_api_msg_extensions.transport_sockets.tls.v4alpha.Secret>`,
// When sourcing configuration for :ref:`secret <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.Secret>`,
// the certificate and key files are also watched for updates.
//
// .. note::
@ -190,7 +190,7 @@ message ConfigSource {
// [#not-implemented-hide:]
// When set, the client will access the resources from the same server it got the
// ConfigSource from, although not necessarily from the same stream. This is similar to the
// :ref:`ads<envoy_api_field.ConfigSource.ads>` field, except that the client may use a
// :ref:`ads<envoy_v3_api_field.ConfigSource.ads>` field, except that the client may use a
// different stream to the same server. As a result, this field can be used for things
// like LRS that cannot be sent on an ADS stream. It can also be used to link from (e.g.)
// LDS to RDS on the same server without requiring the management server to know its name

@ -23,7 +23,7 @@ option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSIO
// [#protodoc-title: gRPC services]
// gRPC service configuration. This is used by :ref:`ApiConfigSource
// <envoy_api_msg_config.core.v4alpha.ApiConfigSource>` and filter configurations.
// <envoy_v3_api_msg_config.core.v3.ApiConfigSource>` and filter configurations.
// [#next-free-field: 6]
message GrpcService {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.core.v3.GrpcService";
@ -33,8 +33,8 @@ message GrpcService {
"envoy.config.core.v3.GrpcService.EnvoyGrpc";
// The name of the upstream gRPC cluster. SSL credentials will be supplied
// in the :ref:`Cluster <envoy_api_msg_config.cluster.v4alpha.Cluster>` :ref:`transport_socket
// <envoy_api_field_config.cluster.v4alpha.Cluster.transport_socket>`.
// in the :ref:`Cluster <envoy_v3_api_msg_config.cluster.v3.Cluster>` :ref:`transport_socket
// <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket>`.
string cluster_name = 1 [(validate.rules).string = {min_len: 1}];
// The `:authority` header in the grpc request. If this field is not set, the authority header value will be `cluster_name`.
@ -236,7 +236,7 @@ message GrpcService {
// The target URI when using the `Google C++ gRPC client
// <https://github.com/grpc/grpc>`_. SSL credentials will be supplied in
// :ref:`channel_credentials <envoy_api_field_config.core.v4alpha.GrpcService.GoogleGrpc.channel_credentials>`.
// :ref:`channel_credentials <envoy_v3_api_field_config.core.v3.GrpcService.GoogleGrpc.channel_credentials>`.
string target_uri = 1 [(validate.rules).string = {min_len: 1}];
ChannelCredentials channel_credentials = 2;

@ -85,7 +85,7 @@ message HealthCheck {
// The value of the host header in the HTTP health check request. If
// left empty (default value), the name of the cluster this health check is associated
// with will be used. The host header can be customized for a specific endpoint by setting the
// :ref:`hostname <envoy_api_field_config.endpoint.v3.Endpoint.HealthCheckConfig.hostname>` field.
// :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.HealthCheckConfig.hostname>` field.
string host = 1 [(validate.rules).string = {well_known_regex: HTTP_HEADER_VALUE strict: false}];
// Specifies the HTTP path that will be requested during health checking. For example
@ -114,7 +114,7 @@ message HealthCheck {
// Specifies a list of HTTP response statuses considered healthy. If provided, replaces default
// 200-only policy - 200 must be included explicitly as needed. Ranges follow half-open
// semantics of :ref:`Int64Range <envoy_api_msg_type.v3.Int64Range>`. The start and end of each
// semantics of :ref:`Int64Range <envoy_v3_api_msg_type.v3.Int64Range>`. The start and end of each
// range are required. Only statuses in the range [100, 600) are allowed.
repeated type.v3.Int64Range expected_statuses = 9;
@ -123,7 +123,7 @@ message HealthCheck {
// An optional service name parameter which is used to validate the identity of
// the health checked cluster using a :ref:`StringMatcher
// <envoy_api_msg_type.matcher.v4alpha.StringMatcher>`. See the :ref:`architecture overview
// <envoy_v3_api_msg_type.matcher.v3.StringMatcher>`. See the :ref:`architecture overview
// <arch_overview_health_checking_identity>` for more information.
type.matcher.v4alpha.StringMatcher service_name_matcher = 11;
}
@ -170,7 +170,7 @@ message HealthCheck {
// The value of the :authority header in the gRPC health check request. If
// left empty (default value), the name of the cluster this health check is associated
// with will be used. The authority header can be customized for a specific endpoint by setting
// the :ref:`hostname <envoy_api_field_config.endpoint.v3.Endpoint.HealthCheckConfig.hostname>` field.
// the :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.HealthCheckConfig.hostname>` field.
string authority = 2
[(validate.rules).string = {well_known_regex: HTTP_HEADER_VALUE strict: false}];
}
@ -205,7 +205,7 @@ message HealthCheck {
// Specifies the ALPN protocols for health check connections. This is useful if the
// corresponding upstream is using ALPN-based :ref:`FilterChainMatch
// <envoy_api_msg_config.listener.v4alpha.FilterChainMatch>` along with different protocols for health checks
// <envoy_v3_api_msg_config.listener.v3.FilterChainMatch>` along with different protocols for health checks
// versus data connections. If empty, no ALPN protocols will be set on health check connections.
repeated string alpn_protocols = 1;
}
@ -339,7 +339,7 @@ message HealthCheck {
TlsOptions tls_options = 21;
// Optional key/value pairs that will be used to match a transport socket from those specified in the cluster's
// :ref:`tranport socket matches <envoy_api_field_config.cluster.v4alpha.Cluster.transport_socket_matches>`.
// :ref:`tranport socket matches <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket_matches>`.
// For example, the following match criteria
//
// .. code-block:: yaml
@ -347,7 +347,7 @@ message HealthCheck {
// transport_socket_match_criteria:
// useMTLS: true
//
// Will match the following :ref:`cluster socket match <envoy_api_msg_config.cluster.v4alpha.Cluster.TransportSocketMatch>`
// Will match the following :ref:`cluster socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>`
//
// .. code-block:: yaml
//
@ -360,13 +360,13 @@ message HealthCheck {
// config: { ... } # tls socket configuration
//
// If this field is set, then for health checks it will supersede an entry of *envoy.transport_socket* in the
// :ref:`LbEndpoint.Metadata <envoy_api_field_config.endpoint.v3.LbEndpoint.metadata>`.
// :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`.
// This allows using different transport socket capabilities for health checking versus proxying to the
// endpoint.
//
// If the key/values pairs specified do not match any
// :ref:`transport socket matches <envoy_api_field_config.cluster.v4alpha.Cluster.transport_socket_matches>`,
// the cluster's :ref:`transport socket <envoy_api_field_config.cluster.v4alpha.Cluster.transport_socket>`
// :ref:`transport socket matches <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket_matches>`,
// the cluster's :ref:`transport socket <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket>`
// will be used for health check socket configuration.
google.protobuf.Struct transport_socket_match_criteria = 23;
}

@ -103,7 +103,7 @@ message HttpProtocolOptions {
// idle timeout is reached the connection will be closed. If the connection is an HTTP/2
// downstream connection a drain sequence will occur prior to closing the connection, see
// :ref:`drain_timeout
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.drain_timeout>`.
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.drain_timeout>`.
// Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.
// If not specified, this defaults to 1 hour. To disable idle timeouts explicitly set this to 0.
//
@ -113,14 +113,14 @@ message HttpProtocolOptions {
//
// If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
// is configured, this timeout is scaled for downstream connections according to the value for
// :ref:`HTTP_DOWNSTREAM_CONNECTION_IDLE <envoy_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_CONNECTION_IDLE>`.
// :ref:`HTTP_DOWNSTREAM_CONNECTION_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_CONNECTION_IDLE>`.
google.protobuf.Duration idle_timeout = 1;
// The maximum duration of a connection. The duration is defined as a period since a connection
// was established. If not set, there is no max duration. When max_connection_duration is reached
// the connection will be closed. Drain sequence will occur prior to closing the connection if
// if's applicable. See :ref:`drain_timeout
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.drain_timeout>`.
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.drain_timeout>`.
// Note: not implemented for upstream connections.
google.protobuf.Duration max_connection_duration = 3;

@ -101,9 +101,9 @@ message ClusterLoadAssignment {
}
// Name of the cluster. This will be the :ref:`service_name
// <envoy_api_field_config.cluster.v3.Cluster.EdsClusterConfig.service_name>` value if specified
// <envoy_v3_api_field_config.cluster.v3.Cluster.EdsClusterConfig.service_name>` value if specified
// in the cluster :ref:`EdsClusterConfig
// <envoy_api_msg_config.cluster.v3.Cluster.EdsClusterConfig>`.
// <envoy_v3_api_msg_config.cluster.v3.Cluster.EdsClusterConfig>`.
string cluster_name = 1 [(validate.rules).string = {min_len: 1}];
// List of endpoints to load balance to.

@ -37,8 +37,8 @@ message Endpoint {
uint32 port_value = 1 [(validate.rules).uint32 = {lte: 65535}];
// By default, the host header for L7 health checks is controlled by cluster level configuration
// (see: :ref:`host <envoy_api_field_config.core.v3.HealthCheck.HttpHealthCheck.host>` and
// :ref:`authority <envoy_api_field_config.core.v3.HealthCheck.GrpcHealthCheck.authority>`). Setting this
// (see: :ref:`host <envoy_v3_api_field_config.core.v3.HealthCheck.HttpHealthCheck.host>` and
// :ref:`authority <envoy_v3_api_field_config.core.v3.HealthCheck.GrpcHealthCheck.authority>`). Setting this
// to a non-empty value allows overriding the cluster level configuration for a specific
// endpoint.
string hostname = 2;
@ -50,7 +50,7 @@ message Endpoint {
//
// The form of host address depends on the given cluster type. For STATIC or EDS,
// it is expected to be a direct IP address (or something resolvable by the
// specified :ref:`resolver <envoy_api_field_config.core.v3.SocketAddress.resolver_name>`
// specified :ref:`resolver <envoy_v3_api_field_config.core.v3.SocketAddress.resolver_name>`
// in the Address). For LOGICAL or STRICT DNS, it is expected to be hostname,
// and will be resolved via DNS.
core.v3.Address address = 1;
@ -67,7 +67,7 @@ message Endpoint {
// The hostname associated with this endpoint. This hostname is not used for routing or address
// resolution. If provided, it will be associated with the endpoint, and can be used for features
// that require a hostname, like
// :ref:`auto_host_rewrite <envoy_api_field_config.route.v3.RouteAction.auto_host_rewrite>`.
// :ref:`auto_host_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.auto_host_rewrite>`.
string hostname = 3;
}
@ -92,7 +92,7 @@ message LbEndpoint {
// name should be specified as *envoy.lb*. An example boolean key-value pair
// is *canary*, providing the optional canary status of the upstream host.
// This may be matched against in a route's
// :ref:`RouteAction <envoy_api_msg_config.route.v3.RouteAction>` metadata_match field
// :ref:`RouteAction <envoy_v3_api_msg_config.route.v3.RouteAction>` metadata_match field
// to subset the endpoints considered in cluster load balancing.
core.v3.Metadata metadata = 3;

@ -20,7 +20,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Load Report]
// These are stats Envoy reports to the management server at a frequency defined by
// :ref:`LoadStatsResponse.load_reporting_interval<envoy_api_field_service.load_stats.v3.LoadStatsResponse.load_reporting_interval>`.
// :ref:`LoadStatsResponse.load_reporting_interval<envoy_v3_api_field_service.load_stats.v3.LoadStatsResponse.load_reporting_interval>`.
// Stats per upstream region/zone and optionally per subzone.
// [#next-free-field: 9]
message UpstreamLocalityStats {
@ -52,7 +52,7 @@ message UpstreamLocalityStats {
// Endpoint granularity stats information for this locality. This information
// is populated if the Server requests it by setting
// :ref:`LoadStatsResponse.report_endpoint_granularity<envoy_api_field_service.load_stats.v3.LoadStatsResponse.report_endpoint_granularity>`.
// :ref:`LoadStatsResponse.report_endpoint_granularity<envoy_v3_api_field_service.load_stats.v3.LoadStatsResponse.report_endpoint_granularity>`.
repeated UpstreamEndpointStats upstream_endpoint_stats = 7;
// [#not-implemented-hide:] The priority of the endpoint group these metrics
@ -118,7 +118,7 @@ message EndpointLoadMetricStats {
}
// Per cluster load stats. Envoy reports these stats a management server in a
// :ref:`LoadStatsRequest<envoy_api_msg_service.load_stats.v3.LoadStatsRequest>`
// :ref:`LoadStatsRequest<envoy_v3_api_msg_service.load_stats.v3.LoadStatsRequest>`
// Next ID: 7
// [#next-free-field: 7]
message ClusterStats {

@ -60,7 +60,7 @@ message Listener {
// set use_original_dst parameter to true. Default is true.
//
// This is deprecated. Use :ref:`Listener.bind_to_port
// <envoy_api_field_config.listener.v3.Listener.bind_to_port>`
// <envoy_v3_api_field_config.listener.v3.Listener.bind_to_port>`
google.protobuf.BoolValue bind_to_port = 1;
}
@ -111,8 +111,8 @@ message Listener {
string stat_prefix = 28;
// A list of filter chains to consider for this listener. The
// :ref:`FilterChain <envoy_api_msg_config.listener.v3.FilterChain>` with the most specific
// :ref:`FilterChainMatch <envoy_api_msg_config.listener.v3.FilterChainMatch>` criteria is used on a
// :ref:`FilterChain <envoy_v3_api_msg_config.listener.v3.FilterChain>` with the most specific
// :ref:`FilterChainMatch <envoy_v3_api_msg_config.listener.v3.FilterChainMatch>` criteria is used on a
// connection.
//
// Example using SNI for filter chain selection can be found in the
@ -147,12 +147,12 @@ message Listener {
// Listener filters have the opportunity to manipulate and augment the connection metadata that
// is used in connection filter chain matching, for example. These filters are run before any in
// :ref:`filter_chains <envoy_api_field_config.listener.v3.Listener.filter_chains>`. Order matters as the
// :ref:`filter_chains <envoy_v3_api_field_config.listener.v3.Listener.filter_chains>`. Order matters as the
// filters are processed sequentially right after a socket has been accepted by the listener, and
// before a connection is created.
// UDP Listener filters can be specified when the protocol in the listener socket address in
// :ref:`protocol <envoy_api_field_config.core.v3.SocketAddress.protocol>` is :ref:`UDP
// <envoy_api_enum_value_config.core.v3.SocketAddress.Protocol.UDP>`.
// :ref:`protocol <envoy_v3_api_field_config.core.v3.SocketAddress.protocol>` is :ref:`UDP
// <envoy_v3_api_enum_value_config.core.v3.SocketAddress.Protocol.UDP>`.
// UDP listeners currently support a single filter.
repeated ListenerFilter listener_filters = 9;
@ -176,7 +176,7 @@ message Listener {
// *iptables* *TPROXY* target, in which case the original source and destination addresses and
// ports are preserved on accepted connections. This flag should be used in combination with
// :ref:`an original_dst <config_listener_filters_original_dst>` :ref:`listener filter
// <envoy_api_field_config.listener.v3.Listener.listener_filters>` to mark the connections' local addresses as
// <envoy_v3_api_field_config.listener.v3.Listener.listener_filters>` to mark the connections' local addresses as
// "restored." This can be used to hand off each redirected connection to another listener
// associated with the connection's destination address. Direct connections to the socket without
// using *TPROXY* cannot be distinguished from connections redirected using *TPROXY* and are
@ -221,14 +221,14 @@ message Listener {
core.v3.TrafficDirection traffic_direction = 16;
// If the protocol in the listener socket address in :ref:`protocol
// <envoy_api_field_config.core.v3.SocketAddress.protocol>` is :ref:`UDP
// <envoy_api_enum_value_config.core.v3.SocketAddress.Protocol.UDP>`, this field specifies UDP
// <envoy_v3_api_field_config.core.v3.SocketAddress.protocol>` is :ref:`UDP
// <envoy_v3_api_enum_value_config.core.v3.SocketAddress.Protocol.UDP>`, this field specifies UDP
// listener specific configuration.
UdpListenerConfig udp_listener_config = 18;
// Used to represent an API listener, which is used in non-proxy clients. The type of API
// exposed to the non-proxy application depends on the type of API listener.
// When this field is set, no other field except for :ref:`name<envoy_api_field_config.listener.v3.Listener.name>`
// When this field is set, no other field except for :ref:`name<envoy_v3_api_field_config.listener.v3.Listener.name>`
// should be set.
//
// .. note::
@ -249,8 +249,8 @@ message Listener {
// worker threads.
//
// In the scenario that the listener X redirects all the connections to the listeners Y1 and Y2
// by setting :ref:`use_original_dst <envoy_api_field_config.listener.v3.Listener.use_original_dst>` in X
// and :ref:`bind_to_port <envoy_api_field_config.listener.v3.Listener.bind_to_port>` to false in Y1 and Y2,
// by setting :ref:`use_original_dst <envoy_v3_api_field_config.listener.v3.Listener.use_original_dst>` in X
// and :ref:`bind_to_port <envoy_v3_api_field_config.listener.v3.Listener.bind_to_port>` to false in Y1 and Y2,
// it is recommended to disable the balance config in listener X to avoid the cost of balancing, and
// enable the balance config in Y1 and Y2 to balance the connections among the workers.
ConnectionBalanceConfig connection_balance_config = 20;
@ -277,7 +277,7 @@ message Listener {
// Whether the listener should bind to the port. A listener that doesn't
// bind can only receive connections redirected from other listeners that set
// :ref:`use_original_dst <envoy_api_field_config.listener.v3.Listener.use_original_dst>`
// :ref:`use_original_dst <envoy_v3_api_field_config.listener.v3.Listener.use_original_dst>`
// to true. Default is true.
google.protobuf.BoolValue bind_to_port = 26;
@ -289,16 +289,16 @@ message Listener {
// Used to represent an internal listener which does not listen on OSI L4 address but can be used by the
// :ref:`envoy cluster <envoy_v3_api_msg_config.cluster.v3.Cluster>` to create a user space connection to.
// The internal listener acts as a tcp listener. It supports listener filters and network filter chains.
// The internal listener require :ref:`address <envoy_api_field_config.listener.v3.Listener.address>` has
// The internal listener require :ref:`address <envoy_v3_api_field_config.listener.v3.Listener.address>` has
// field `envoy_internal_address`.
//
// There are some limitations are derived from the implementation. The known limitations include
//
// * :ref:`ConnectionBalanceConfig <envoy_api_msg_config.listener.v3.Listener.ConnectionBalanceConfig>` is not
// * :ref:`ConnectionBalanceConfig <envoy_v3_api_msg_config.listener.v3.Listener.ConnectionBalanceConfig>` is not
// allowed because both cluster connection and listener connection must be owned by the same dispatcher.
// * :ref:`tcp_backlog_size <envoy_api_field_config.listener.v3.Listener.tcp_backlog_size>`
// * :ref:`freebind <envoy_api_field_config.listener.v3.Listener.freebind>`
// * :ref:`transparent <envoy_api_field_config.listener.v3.Listener.transparent>`
// * :ref:`tcp_backlog_size <envoy_v3_api_field_config.listener.v3.Listener.tcp_backlog_size>`
// * :ref:`freebind <envoy_v3_api_field_config.listener.v3.Listener.freebind>`
// * :ref:`transparent <envoy_v3_api_field_config.listener.v3.Listener.transparent>`
// [#not-implemented-hide:]
InternalListenerConfig internal_listener = 27;
}

@ -239,7 +239,7 @@ message FilterChain {
// Optional custom transport socket implementation to use for downstream connections.
// To setup TLS, set a transport socket with name `tls` and
// :ref:`DownstreamTlsContext <envoy_api_msg_extensions.transport_sockets.tls.v3.DownstreamTlsContext>` in the `typed_config`.
// :ref:`DownstreamTlsContext <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.DownstreamTlsContext>` in the `typed_config`.
// If no transport socket configuration is specified, new connections
// will be set up with plaintext.
// [#extension-category: envoy.transport_sockets.downstream]
@ -345,7 +345,7 @@ message ListenerFilter {
}
// Optional match predicate used to disable the filter. The filter is enabled when this field is empty.
// See :ref:`ListenerFilterChainMatchPredicate <envoy_api_msg_config.listener.v3.ListenerFilterChainMatchPredicate>`
// See :ref:`ListenerFilterChainMatchPredicate <envoy_v3_api_msg_config.listener.v3.ListenerFilterChainMatchPredicate>`
// for further examples.
ListenerFilterChainMatchPredicate filter_disabled = 4;
}

@ -62,7 +62,7 @@ message Listener {
// set use_original_dst parameter to true. Default is true.
//
// This is deprecated. Use :ref:`Listener.bind_to_port
// <envoy_api_field_config.listener.v4alpha.Listener.bind_to_port>`
// <envoy_v3_api_field_config.listener.v3.Listener.bind_to_port>`
google.protobuf.BoolValue bind_to_port = 1;
}
@ -117,8 +117,8 @@ message Listener {
string stat_prefix = 28;
// A list of filter chains to consider for this listener. The
// :ref:`FilterChain <envoy_api_msg_config.listener.v4alpha.FilterChain>` with the most specific
// :ref:`FilterChainMatch <envoy_api_msg_config.listener.v4alpha.FilterChainMatch>` criteria is used on a
// :ref:`FilterChain <envoy_v3_api_msg_config.listener.v3.FilterChain>` with the most specific
// :ref:`FilterChainMatch <envoy_v3_api_msg_config.listener.v3.FilterChainMatch>` criteria is used on a
// connection.
//
// Example using SNI for filter chain selection can be found in the
@ -149,12 +149,12 @@ message Listener {
// Listener filters have the opportunity to manipulate and augment the connection metadata that
// is used in connection filter chain matching, for example. These filters are run before any in
// :ref:`filter_chains <envoy_api_field_config.listener.v4alpha.Listener.filter_chains>`. Order matters as the
// :ref:`filter_chains <envoy_v3_api_field_config.listener.v3.Listener.filter_chains>`. Order matters as the
// filters are processed sequentially right after a socket has been accepted by the listener, and
// before a connection is created.
// UDP Listener filters can be specified when the protocol in the listener socket address in
// :ref:`protocol <envoy_api_field_config.core.v4alpha.SocketAddress.protocol>` is :ref:`UDP
// <envoy_api_enum_value_config.core.v4alpha.SocketAddress.Protocol.UDP>`.
// :ref:`protocol <envoy_v3_api_field_config.core.v3.SocketAddress.protocol>` is :ref:`UDP
// <envoy_v3_api_enum_value_config.core.v3.SocketAddress.Protocol.UDP>`.
// UDP listeners currently support a single filter.
repeated ListenerFilter listener_filters = 9;
@ -178,7 +178,7 @@ message Listener {
// *iptables* *TPROXY* target, in which case the original source and destination addresses and
// ports are preserved on accepted connections. This flag should be used in combination with
// :ref:`an original_dst <config_listener_filters_original_dst>` :ref:`listener filter
// <envoy_api_field_config.listener.v4alpha.Listener.listener_filters>` to mark the connections' local addresses as
// <envoy_v3_api_field_config.listener.v3.Listener.listener_filters>` to mark the connections' local addresses as
// "restored." This can be used to hand off each redirected connection to another listener
// associated with the connection's destination address. Direct connections to the socket without
// using *TPROXY* cannot be distinguished from connections redirected using *TPROXY* and are
@ -223,14 +223,14 @@ message Listener {
core.v4alpha.TrafficDirection traffic_direction = 16;
// If the protocol in the listener socket address in :ref:`protocol
// <envoy_api_field_config.core.v4alpha.SocketAddress.protocol>` is :ref:`UDP
// <envoy_api_enum_value_config.core.v4alpha.SocketAddress.Protocol.UDP>`, this field specifies UDP
// <envoy_v3_api_field_config.core.v3.SocketAddress.protocol>` is :ref:`UDP
// <envoy_v3_api_enum_value_config.core.v3.SocketAddress.Protocol.UDP>`, this field specifies UDP
// listener specific configuration.
UdpListenerConfig udp_listener_config = 18;
// Used to represent an API listener, which is used in non-proxy clients. The type of API
// exposed to the non-proxy application depends on the type of API listener.
// When this field is set, no other field except for :ref:`name<envoy_api_field_config.listener.v4alpha.Listener.name>`
// When this field is set, no other field except for :ref:`name<envoy_v3_api_field_config.listener.v3.Listener.name>`
// should be set.
//
// .. note::
@ -251,8 +251,8 @@ message Listener {
// worker threads.
//
// In the scenario that the listener X redirects all the connections to the listeners Y1 and Y2
// by setting :ref:`use_original_dst <envoy_api_field_config.listener.v4alpha.Listener.use_original_dst>` in X
// and :ref:`bind_to_port <envoy_api_field_config.listener.v4alpha.Listener.bind_to_port>` to false in Y1 and Y2,
// by setting :ref:`use_original_dst <envoy_v3_api_field_config.listener.v3.Listener.use_original_dst>` in X
// and :ref:`bind_to_port <envoy_v3_api_field_config.listener.v3.Listener.bind_to_port>` to false in Y1 and Y2,
// it is recommended to disable the balance config in listener X to avoid the cost of balancing, and
// enable the balance config in Y1 and Y2 to balance the connections among the workers.
ConnectionBalanceConfig connection_balance_config = 20;
@ -279,7 +279,7 @@ message Listener {
// Whether the listener should bind to the port. A listener that doesn't
// bind can only receive connections redirected from other listeners that set
// :ref:`use_original_dst <envoy_api_field_config.listener.v4alpha.Listener.use_original_dst>`
// :ref:`use_original_dst <envoy_v3_api_field_config.listener.v3.Listener.use_original_dst>`
// to true. Default is true.
google.protobuf.BoolValue bind_to_port = 26;
@ -291,16 +291,16 @@ message Listener {
// Used to represent an internal listener which does not listen on OSI L4 address but can be used by the
// :ref:`envoy cluster <envoy_v3_api_msg_config.cluster.v3.Cluster>` to create a user space connection to.
// The internal listener acts as a tcp listener. It supports listener filters and network filter chains.
// The internal listener require :ref:`address <envoy_api_field_config.listener.v4alpha.Listener.address>` has
// The internal listener require :ref:`address <envoy_v3_api_field_config.listener.v3.Listener.address>` has
// field `envoy_internal_address`.
//
// There are some limitations are derived from the implementation. The known limitations include
//
// * :ref:`ConnectionBalanceConfig <envoy_api_msg_config.listener.v4alpha.Listener.ConnectionBalanceConfig>` is not
// * :ref:`ConnectionBalanceConfig <envoy_v3_api_msg_config.listener.v3.Listener.ConnectionBalanceConfig>` is not
// allowed because both cluster connection and listener connection must be owned by the same dispatcher.
// * :ref:`tcp_backlog_size <envoy_api_field_config.listener.v4alpha.Listener.tcp_backlog_size>`
// * :ref:`freebind <envoy_api_field_config.listener.v4alpha.Listener.freebind>`
// * :ref:`transparent <envoy_api_field_config.listener.v4alpha.Listener.transparent>`
// * :ref:`tcp_backlog_size <envoy_v3_api_field_config.listener.v3.Listener.tcp_backlog_size>`
// * :ref:`freebind <envoy_v3_api_field_config.listener.v3.Listener.freebind>`
// * :ref:`transparent <envoy_v3_api_field_config.listener.v3.Listener.transparent>`
// [#not-implemented-hide:]
InternalListenerConfig internal_listener = 27;
}

@ -229,7 +229,7 @@ message FilterChain {
// Optional custom transport socket implementation to use for downstream connections.
// To setup TLS, set a transport socket with name `tls` and
// :ref:`DownstreamTlsContext <envoy_api_msg_extensions.transport_sockets.tls.v4alpha.DownstreamTlsContext>` in the `typed_config`.
// :ref:`DownstreamTlsContext <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.DownstreamTlsContext>` in the `typed_config`.
// If no transport socket configuration is specified, new connections
// will be set up with plaintext.
// [#extension-category: envoy.transport_sockets.downstream]
@ -335,7 +335,7 @@ message ListenerFilter {
}
// Optional match predicate used to disable the filter. The filter is enabled when this field is empty.
// See :ref:`ListenerFilterChainMatchPredicate <envoy_api_msg_config.listener.v4alpha.ListenerFilterChainMatchPredicate>`
// See :ref:`ListenerFilterChainMatchPredicate <envoy_v3_api_msg_config.listener.v3.ListenerFilterChainMatchPredicate>`
// for further examples.
ListenerFilterChainMatchPredicate filter_disabled = 4;
}

@ -19,7 +19,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Metrics service]
// Metrics Service is configured as a built-in *envoy.stat_sinks.metrics_service* :ref:`StatsSink
// <envoy_api_msg_config.metrics.v3.StatsSink>`. This opaque configuration will be used to create
// <envoy_v3_api_msg_config.metrics.v3.StatsSink>`. This opaque configuration will be used to create
// Metrics Service.
// [#extension: envoy.stat_sinks.metrics_service]
message MetricsServiceConfig {
@ -36,7 +36,7 @@ message MetricsServiceConfig {
// If true, counters are reported as the delta between flushing intervals. Otherwise, the current
// counter value is reported. Defaults to false.
// Eventually (https://github.com/envoyproxy/envoy/issues/10968) if this value is not set, the
// sink will take updates from the :ref:`MetricsResponse <envoy_api_msg_service.metrics.v3.StreamMetricsResponse>`.
// sink will take updates from the :ref:`MetricsResponse <envoy_v3_api_msg_service.metrics.v3.StreamMetricsResponse>`.
google.protobuf.BoolValue report_counters_as_deltas = 2;
// If true, metrics will have their tags emitted as labels on the metrics objects sent to the MetricsService,

@ -35,7 +35,7 @@ message StatsSink {
string name = 1;
// Stats sink specific configuration which depends on the sink being instantiated. See
// :ref:`StatsdSink <envoy_api_msg_config.metrics.v3.StatsdSink>` for an example.
// :ref:`StatsdSink <envoy_v3_api_msg_config.metrics.v3.StatsdSink>` for an example.
// [#extension-category: envoy.stats_sinks]
oneof config_type {
google.protobuf.Any typed_config = 3;
@ -49,13 +49,13 @@ message StatsConfig {
// Each stat name is iteratively processed through these tag specifiers.
// When a tag is matched, the first capture group is removed from the name so
// later :ref:`TagSpecifiers <envoy_api_msg_config.metrics.v3.TagSpecifier>` cannot match that
// later :ref:`TagSpecifiers <envoy_v3_api_msg_config.metrics.v3.TagSpecifier>` cannot match that
// same portion of the match.
repeated TagSpecifier stats_tags = 1;
// Use all default tag regexes specified in Envoy. These can be combined with
// custom tags specified in :ref:`stats_tags
// <envoy_api_field_config.metrics.v3.StatsConfig.stats_tags>`. They will be processed before
// <envoy_v3_api_field_config.metrics.v3.StatsConfig.stats_tags>`. They will be processed before
// the custom tags.
//
// .. note::
@ -117,7 +117,7 @@ message StatsMatcher {
// However, StatsMatcher can be used to limit the creation of families of stats in order to
// conserve memory. Stats can either be disabled entirely, or they can be
// limited by either an exclusion or an inclusion list of :ref:`StringMatcher
// <envoy_api_msg_type.matcher.v3.StringMatcher>` protos:
// <envoy_v3_api_msg_type.matcher.v3.StringMatcher>` protos:
//
// * If `reject_all` is set to `true`, no stats will be instantiated. If `reject_all` is set to
// `false`, all stats will be instantiated.
@ -211,9 +211,9 @@ message TagSpecifier {
// sink. Envoy has a set of default names and regexes to extract dynamic
// portions of existing stats, which can be found in :repo:`well_known_names.h
// <source/common/config/well_known_names.h>` in the Envoy repository. If a :ref:`tag_name
// <envoy_api_field_config.metrics.v3.TagSpecifier.tag_name>` is provided in the config and
// neither :ref:`regex <envoy_api_field_config.metrics.v3.TagSpecifier.regex>` or
// :ref:`fixed_value <envoy_api_field_config.metrics.v3.TagSpecifier.fixed_value>` were specified,
// <envoy_v3_api_field_config.metrics.v3.TagSpecifier.tag_name>` is provided in the config and
// neither :ref:`regex <envoy_v3_api_field_config.metrics.v3.TagSpecifier.regex>` or
// :ref:`fixed_value <envoy_v3_api_field_config.metrics.v3.TagSpecifier.fixed_value>` were specified,
// Envoy will attempt to find that name in its set of defaults and use the accompanying regex.
//
// .. note::
@ -350,7 +350,7 @@ message StatsdSink {
// Stats configuration proto schema for built-in *envoy.stat_sinks.dog_statsd* sink.
// The sink emits stats with `DogStatsD <https://docs.datadoghq.com/guides/dogstatsd/>`_
// compatible tags. Tags are configurable via :ref:`StatsConfig
// <envoy_api_msg_config.metrics.v3.StatsConfig>`.
// <envoy_v3_api_msg_config.metrics.v3.StatsConfig>`.
// [#extension: envoy.stat_sinks.dog_statsd]
message DogStatsdSink {
option (udpa.annotations.versioning).previous_message_type =
@ -367,7 +367,7 @@ message DogStatsdSink {
}
// Optional custom metric name prefix. See :ref:`StatsdSink's prefix field
// <envoy_api_field_config.metrics.v3.StatsdSink.prefix>` for more details.
// <envoy_v3_api_field_config.metrics.v3.StatsdSink.prefix>` for more details.
string prefix = 3;
// Optional max datagram size to use when sending UDP messages. By default Envoy

@ -19,7 +19,7 @@ option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSIO
// [#protodoc-title: Metrics service]
// Metrics Service is configured as a built-in *envoy.stat_sinks.metrics_service* :ref:`StatsSink
// <envoy_api_msg_config.metrics.v4alpha.StatsSink>`. This opaque configuration will be used to create
// <envoy_v3_api_msg_config.metrics.v3.StatsSink>`. This opaque configuration will be used to create
// Metrics Service.
// [#extension: envoy.stat_sinks.metrics_service]
message MetricsServiceConfig {
@ -36,7 +36,7 @@ message MetricsServiceConfig {
// If true, counters are reported as the delta between flushing intervals. Otherwise, the current
// counter value is reported. Defaults to false.
// Eventually (https://github.com/envoyproxy/envoy/issues/10968) if this value is not set, the
// sink will take updates from the :ref:`MetricsResponse <envoy_api_msg_service.metrics.v4alpha.StreamMetricsResponse>`.
// sink will take updates from the :ref:`MetricsResponse <envoy_v3_api_msg_service.metrics.v3.StreamMetricsResponse>`.
google.protobuf.BoolValue report_counters_as_deltas = 2;
// If true, metrics will have their tags emitted as labels on the metrics objects sent to the MetricsService,

@ -35,7 +35,7 @@ message StatsSink {
string name = 1;
// Stats sink specific configuration which depends on the sink being instantiated. See
// :ref:`StatsdSink <envoy_api_msg_config.metrics.v4alpha.StatsdSink>` for an example.
// :ref:`StatsdSink <envoy_v3_api_msg_config.metrics.v3.StatsdSink>` for an example.
// [#extension-category: envoy.stats_sinks]
oneof config_type {
google.protobuf.Any typed_config = 3;
@ -49,13 +49,13 @@ message StatsConfig {
// Each stat name is iteratively processed through these tag specifiers.
// When a tag is matched, the first capture group is removed from the name so
// later :ref:`TagSpecifiers <envoy_api_msg_config.metrics.v4alpha.TagSpecifier>` cannot match that
// later :ref:`TagSpecifiers <envoy_v3_api_msg_config.metrics.v3.TagSpecifier>` cannot match that
// same portion of the match.
repeated TagSpecifier stats_tags = 1;
// Use all default tag regexes specified in Envoy. These can be combined with
// custom tags specified in :ref:`stats_tags
// <envoy_api_field_config.metrics.v4alpha.StatsConfig.stats_tags>`. They will be processed before
// <envoy_v3_api_field_config.metrics.v3.StatsConfig.stats_tags>`. They will be processed before
// the custom tags.
//
// .. note::
@ -117,7 +117,7 @@ message StatsMatcher {
// However, StatsMatcher can be used to limit the creation of families of stats in order to
// conserve memory. Stats can either be disabled entirely, or they can be
// limited by either an exclusion or an inclusion list of :ref:`StringMatcher
// <envoy_api_msg_type.matcher.v4alpha.StringMatcher>` protos:
// <envoy_v3_api_msg_type.matcher.v3.StringMatcher>` protos:
//
// * If `reject_all` is set to `true`, no stats will be instantiated. If `reject_all` is set to
// `false`, all stats will be instantiated.
@ -211,9 +211,9 @@ message TagSpecifier {
// sink. Envoy has a set of default names and regexes to extract dynamic
// portions of existing stats, which can be found in :repo:`well_known_names.h
// <source/common/config/well_known_names.h>` in the Envoy repository. If a :ref:`tag_name
// <envoy_api_field_config.metrics.v4alpha.TagSpecifier.tag_name>` is provided in the config and
// neither :ref:`regex <envoy_api_field_config.metrics.v4alpha.TagSpecifier.regex>` or
// :ref:`fixed_value <envoy_api_field_config.metrics.v4alpha.TagSpecifier.fixed_value>` were specified,
// <envoy_v3_api_field_config.metrics.v3.TagSpecifier.tag_name>` is provided in the config and
// neither :ref:`regex <envoy_v3_api_field_config.metrics.v3.TagSpecifier.regex>` or
// :ref:`fixed_value <envoy_v3_api_field_config.metrics.v3.TagSpecifier.fixed_value>` were specified,
// Envoy will attempt to find that name in its set of defaults and use the accompanying regex.
//
// .. note::
@ -353,7 +353,7 @@ message StatsdSink {
// Stats configuration proto schema for built-in *envoy.stat_sinks.dog_statsd* sink.
// The sink emits stats with `DogStatsD <https://docs.datadoghq.com/guides/dogstatsd/>`_
// compatible tags. Tags are configurable via :ref:`StatsConfig
// <envoy_api_msg_config.metrics.v4alpha.StatsConfig>`.
// <envoy_v3_api_msg_config.metrics.v3.StatsConfig>`.
// [#extension: envoy.stat_sinks.dog_statsd]
message DogStatsdSink {
option (udpa.annotations.versioning).previous_message_type =
@ -370,7 +370,7 @@ message DogStatsdSink {
}
// Optional custom metric name prefix. See :ref:`StatsdSink's prefix field
// <envoy_api_field_config.metrics.v4alpha.StatsdSink.prefix>` for more details.
// <envoy_v3_api_field_config.metrics.v3.StatsdSink.prefix>` for more details.
string prefix = 3;
// Optional max datagram size to use when sending UDP messages. By default Envoy

@ -200,7 +200,7 @@ message Permission {
// * If the :ref:`TLS Inspector <config_listener_filters_tls_inspector>`
// filter is not added, and if a `FilterChainMatch` is not defined for
// the :ref:`server name
// <envoy_api_field_config.listener.v3.FilterChainMatch.server_names>`,
// <envoy_v3_api_field_config.listener.v3.FilterChainMatch.server_names>`,
// a TLS connection's requested SNI server name will be treated as if it
// wasn't present.
//
@ -265,7 +265,7 @@ message Principal {
// A CIDR block that describes the downstream remote/origin address.
// Note: This is always the physical peer even if the
// :ref:`remote_ip <envoy_api_field_config.rbac.v3.Principal.remote_ip>` is
// :ref:`remote_ip <envoy_v3_api_field_config.rbac.v3.Principal.remote_ip>` is
// inferred from for example the x-forwarder-for header, proxy protocol,
// etc.
core.v3.CidrRange direct_remote_ip = 10;
@ -273,7 +273,7 @@ message Principal {
// A CIDR block that describes the downstream remote/origin address.
// Note: This may not be the physical peer and could be different from the
// :ref:`direct_remote_ip
// <envoy_api_field_config.rbac.v3.Principal.direct_remote_ip>`. E.g, if the
// <envoy_v3_api_field_config.rbac.v3.Principal.direct_remote_ip>`. E.g, if the
// remote ip is inferred from for example the x-forwarder-for header, proxy
// protocol, etc.
core.v3.CidrRange remote_ip = 11;

@ -198,7 +198,7 @@ message Permission {
// * If the :ref:`TLS Inspector <config_listener_filters_tls_inspector>`
// filter is not added, and if a `FilterChainMatch` is not defined for
// the :ref:`server name
// <envoy_api_field_config.listener.v4alpha.FilterChainMatch.server_names>`,
// <envoy_v3_api_field_config.listener.v3.FilterChainMatch.server_names>`,
// a TLS connection's requested SNI server name will be treated as if it
// wasn't present.
//
@ -262,7 +262,7 @@ message Principal {
// A CIDR block that describes the downstream remote/origin address.
// Note: This is always the physical peer even if the
// :ref:`remote_ip <envoy_api_field_config.rbac.v4alpha.Principal.remote_ip>` is
// :ref:`remote_ip <envoy_v3_api_field_config.rbac.v3.Principal.remote_ip>` is
// inferred from for example the x-forwarder-for header, proxy protocol,
// etc.
core.v4alpha.CidrRange direct_remote_ip = 10;
@ -270,7 +270,7 @@ message Principal {
// A CIDR block that describes the downstream remote/origin address.
// Note: This may not be the physical peer and could be different from the
// :ref:`direct_remote_ip
// <envoy_api_field_config.rbac.v4alpha.Principal.direct_remote_ip>`. E.g, if the
// <envoy_v3_api_field_config.rbac.v3.Principal.direct_remote_ip>`. E.g, if the
// remote ip is inferred from for example the x-forwarder-for header, proxy
// protocol, etc.
core.v4alpha.CidrRange remote_ip = 11;

@ -27,8 +27,8 @@ message RouteConfiguration {
// The name of the route configuration. For example, it might match
// :ref:`route_config_name
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.Rds.route_config_name>` in
// :ref:`envoy_api_msg_extensions.filters.network.http_connection_manager.v3.Rds`.
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.Rds.route_config_name>` in
// :ref:`envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.Rds`.
string name = 1;
// An array of virtual hosts that make up the route table.
@ -52,8 +52,8 @@ message RouteConfiguration {
// 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_config.route.v3.VirtualHost` or
// :ref:`envoy_api_msg_config.route.v3.RouteAction`. For more information, including details on
// after headers from any enclosed :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` or
// :ref:`envoy_v3_api_msg_config.route.v3.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>`.
repeated core.v3.HeaderValueOption response_headers_to_add = 4
@ -67,8 +67,8 @@ message RouteConfiguration {
// 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_config.route.v3.VirtualHost` or
// :ref:`envoy_api_msg_config.route.v3.RouteAction`. For more information, including details on
// applied after headers from any enclosed :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` or
// :ref:`envoy_v3_api_msg_config.route.v3.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>`.
repeated core.v3.HeaderValueOption request_headers_to_add = 6
@ -99,22 +99,22 @@ message RouteConfiguration {
// 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_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.route_config>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.route_config>`
// option. This setting default to false if the route table is loaded dynamically via the
// :ref:`rds
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.rds>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.rds>`
// option. Users may wish to override the default behavior in certain cases (for example when
// using CDS with a static route table).
google.protobuf.BoolValue validate_clusters = 7;
// The maximum bytes of the response :ref:`direct response body
// <envoy_api_field_config.route.v3.DirectResponseAction.body>` size. If not specified the default
// <envoy_v3_api_field_config.route.v3.DirectResponseAction.body>` size. If not specified the default
// is 4096.
//
// .. warning::
//
// Envoy currently holds the content of :ref:`direct response body
// <envoy_api_field_config.route.v3.DirectResponseAction.body>` in memory. Be careful setting
// <envoy_v3_api_field_config.route.v3.DirectResponseAction.body>` in memory. Be careful setting
// this to be larger than the default 4KB, since the allocated memory for direct response body
// is not subject to data plane buffering controls.
//

@ -102,8 +102,8 @@ message VirtualHost {
// Specifies a list of HTTP headers that should be added to each request
// handled by this virtual host. Headers specified at this level are applied
// after headers from enclosed :ref:`envoy_api_msg_config.route.v3.Route` and before headers from the
// enclosing :ref:`envoy_api_msg_config.route.v3.RouteConfiguration`. For more information, including
// after headers from enclosed :ref:`envoy_v3_api_msg_config.route.v3.Route` and before headers from the
// enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. 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>`.
repeated core.v3.HeaderValueOption request_headers_to_add = 7
@ -117,8 +117,8 @@ message VirtualHost {
// Specifies a list of HTTP headers that should be added to each response
// handled by this virtual host. Headers specified at this level are applied
// after headers from enclosed :ref:`envoy_api_msg_config.route.v3.Route` and before headers from the
// enclosing :ref:`envoy_api_msg_config.route.v3.RouteConfiguration`. For more information, including
// after headers from enclosed :ref:`envoy_v3_api_msg_config.route.v3.Route` and before headers from the
// enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. 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>`.
repeated core.v3.HeaderValueOption response_headers_to_add = 10
@ -139,7 +139,7 @@ message VirtualHost {
// specific; see the :ref:`HTTP filter documentation <config_http_filters>`
// for if and how it is utilized.
// [#comment: An entry's value may be wrapped in a
// :ref:`FilterConfig<envoy_api_msg_config.route.v3.FilterConfig>`
// :ref:`FilterConfig<envoy_v3_api_msg_config.route.v3.FilterConfig>`
// message to specify additional options.]
map<string, google.protobuf.Any> typed_per_filter_config = 15;
@ -150,7 +150,7 @@ message VirtualHost {
// will see the attempt count as perceived by the second Envoy. Defaults to false.
// This header is unaffected by the
// :ref:`suppress_envoy_headers
// <envoy_api_field_extensions.filters.http.router.v3.Router.suppress_envoy_headers>` flag.
// <envoy_v3_api_field_extensions.filters.http.router.v3.Router.suppress_envoy_headers>` flag.
//
// [#next-major-version: rename to include_attempt_count_in_request.]
bool include_request_attempt_count = 14;
@ -162,7 +162,7 @@ message VirtualHost {
// will see the attempt count as perceived by the Envoy closest upstream from itself. Defaults to false.
// This header is unaffected by the
// :ref:`suppress_envoy_headers
// <envoy_api_field_extensions.filters.http.router.v3.Router.suppress_envoy_headers>` flag.
// <envoy_v3_api_field_extensions.filters.http.router.v3.Router.suppress_envoy_headers>` flag.
bool include_attempt_count_in_response = 19;
// Indicates the retry policy for all routes in this virtual host. Note that setting a
@ -173,7 +173,7 @@ message VirtualHost {
// [#not-implemented-hide:]
// Specifies the configuration for retry policy extension. Note that setting a route level entry
// will take precedence over this config and it'll be treated independently (e.g.: values are not
// inherited). :ref:`Retry policy <envoy_api_field_config.route.v3.VirtualHost.retry_policy>` should not be
// inherited). :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 = 20;
@ -201,7 +201,7 @@ message FilterAction {
// .. attention::
//
// Envoy supports routing on HTTP method via :ref:`header matching
// <envoy_api_msg_config.route.v3.HeaderMatcher>`.
// <envoy_v3_api_msg_config.route.v3.HeaderMatcher>`.
// [#next-free-field: 19]
message Route {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.route.Route";
@ -258,14 +258,14 @@ message Route {
// specific; see the :ref:`HTTP filter documentation <config_http_filters>` for
// if and how it is utilized.
// [#comment: An entry's value may be wrapped in a
// :ref:`FilterConfig<envoy_api_msg_config.route.v3.FilterConfig>`
// :ref:`FilterConfig<envoy_v3_api_msg_config.route.v3.FilterConfig>`
// message to specify additional options.]
map<string, google.protobuf.Any> typed_per_filter_config = 13;
// Specifies a set of headers that will be added to requests matching this
// route. Headers specified at this level are applied before headers from the
// enclosing :ref:`envoy_api_msg_config.route.v3.VirtualHost` and
// :ref:`envoy_api_msg_config.route.v3.RouteConfiguration`. For more information, including details on
// enclosing :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` and
// :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. 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>`.
repeated core.v3.HeaderValueOption request_headers_to_add = 9
@ -279,8 +279,8 @@ message Route {
// Specifies a set of headers that will be added to responses to requests
// matching this route. Headers specified at this level are applied before
// headers from the enclosing :ref:`envoy_api_msg_config.route.v3.VirtualHost` and
// :ref:`envoy_api_msg_config.route.v3.RouteConfiguration`. For more information, including
// headers from the enclosing :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` and
// :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. 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>`.
repeated core.v3.HeaderValueOption response_headers_to_add = 10
@ -302,9 +302,9 @@ message Route {
google.protobuf.UInt32Value per_request_buffer_limit_bytes = 16;
}
// Compared to the :ref:`cluster <envoy_api_field_config.route.v3.RouteAction.cluster>` field that specifies a
// Compared to the :ref:`cluster <envoy_v3_api_field_config.route.v3.RouteAction.cluster>` field that specifies a
// single upstream cluster as the target of a request, the :ref:`weighted_clusters
// <envoy_api_field_config.route.v3.RouteAction.weighted_clusters>` option allows for specification of
// <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>` option allows for specification of
// multiple upstream clusters along with weights that indicate the percentage of
// traffic to be forwarded to each cluster. The router selects an upstream cluster based on the
// weights.
@ -325,7 +325,7 @@ message WeightedCluster {
string name = 1 [(validate.rules).string = {min_len: 1}];
// An integer between 0 and :ref:`total_weight
// <envoy_api_field_config.route.v3.WeightedCluster.total_weight>`. When a request matches the route,
// <envoy_v3_api_field_config.route.v3.WeightedCluster.total_weight>`. When a request matches the route,
// the choice of an upstream cluster is determined by its weight. The sum of weights across all
// entries in the clusters array must add up to the total_weight, which defaults to 100.
google.protobuf.UInt32Value weight = 2;
@ -333,38 +333,38 @@ message WeightedCluster {
// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints in
// the upstream cluster with metadata matching what is set in this field will be considered for
// load balancing. Note that this will be merged with what's provided in
// :ref:`RouteAction.metadata_match <envoy_api_field_config.route.v3.RouteAction.metadata_match>`, with
// :ref:`RouteAction.metadata_match <envoy_v3_api_field_config.route.v3.RouteAction.metadata_match>`, with
// values here taking precedence. The filter name should be specified as *envoy.lb*.
core.v3.Metadata metadata_match = 3;
// Specifies a list of headers to be added to requests when this cluster is selected
// through the enclosing :ref:`envoy_api_msg_config.route.v3.RouteAction`.
// through the enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`.
// Headers specified at this level are applied before headers from the enclosing
// :ref:`envoy_api_msg_config.route.v3.Route`, :ref:`envoy_api_msg_config.route.v3.VirtualHost`, and
// :ref:`envoy_api_msg_config.route.v3.RouteConfiguration`. For more information, including details on
// :ref:`envoy_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`, and
// :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. 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>`.
repeated core.v3.HeaderValueOption request_headers_to_add = 4
[(validate.rules).repeated = {max_items: 1000}];
// Specifies a list of HTTP headers that should be removed from each request when
// this cluster is selected through the enclosing :ref:`envoy_api_msg_config.route.v3.RouteAction`.
// this cluster is selected through the enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`.
repeated string request_headers_to_remove = 9 [(validate.rules).repeated = {
items {string {well_known_regex: HTTP_HEADER_NAME strict: false}}
}];
// Specifies a list of headers to be added to responses when this cluster is selected
// through the enclosing :ref:`envoy_api_msg_config.route.v3.RouteAction`.
// through the enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`.
// Headers specified at this level are applied before headers from the enclosing
// :ref:`envoy_api_msg_config.route.v3.Route`, :ref:`envoy_api_msg_config.route.v3.VirtualHost`, and
// :ref:`envoy_api_msg_config.route.v3.RouteConfiguration`. For more information, including details on
// :ref:`envoy_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`, and
// :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. 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>`.
repeated core.v3.HeaderValueOption response_headers_to_add = 5
[(validate.rules).repeated = {max_items: 1000}];
// Specifies a list of headers to be removed from responses when this cluster is selected
// through the enclosing :ref:`envoy_api_msg_config.route.v3.RouteAction`.
// through the enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`.
repeated string response_headers_to_remove = 6 [(validate.rules).repeated = {
items {string {well_known_regex: HTTP_HEADER_NAME strict: false}}
}];
@ -375,7 +375,7 @@ message WeightedCluster {
// specific; see the :ref:`HTTP filter documentation <config_http_filters>`
// for if and how it is utilized.
// [#comment: An entry's value may be wrapped in a
// :ref:`FilterConfig<envoy_api_msg_config.route.v3.FilterConfig>`
// :ref:`FilterConfig<envoy_v3_api_msg_config.route.v3.FilterConfig>`
// message to specify additional options.]
map<string, google.protobuf.Any> typed_per_filter_config = 10;
}
@ -546,7 +546,7 @@ message CorsPolicy {
// If neither ``enabled``, ``filter_enabled``, nor ``shadow_enabled`` are specified, the CORS
// filter will be enabled for 100% of the requests.
//
// If :ref:`runtime_key <envoy_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is
// If :ref:`runtime_key <envoy_v3_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is
// specified, Envoy will lookup the runtime key to get the percentage of requests to filter.
core.v3.RuntimeFractionalPercent filter_enabled = 9;
}
@ -557,7 +557,7 @@ message CorsPolicy {
// This field is intended to be used when ``filter_enabled`` and ``enabled`` are off. One of those
// fields have to explicitly disable the filter in order for this setting to take effect.
//
// If :ref:`runtime_key <envoy_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is specified,
// If :ref:`runtime_key <envoy_v3_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is specified,
// Envoy will lookup the runtime key to get the percentage of requests for which it will evaluate
// and track the request's *Origin* to determine if it's valid but will not enforce any policies.
core.v3.RuntimeFractionalPercent shadow_enabled = 10;
@ -748,7 +748,7 @@ message RouteAction {
// This overrides any enabled/disabled upgrade filter chain specified in the
// HttpConnectionManager
// :ref:`upgrade_configs
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.upgrade_configs>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.upgrade_configs>`
// but does not affect any custom filter chain specified there.
message UpgradeConfig {
option (udpa.annotations.versioning).previous_message_type =
@ -783,9 +783,9 @@ message RouteAction {
message MaxStreamDuration {
// Specifies the maximum duration allowed for streams on the route. If not specified, the value
// from the :ref:`max_stream_duration
// <envoy_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
// <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
// :ref:`HttpConnectionManager.common_http_protocol_options
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
// is used. If this field is set explicitly to zero, any
// HttpConnectionManager max_stream_duration timeout will be disabled for
// this route.
@ -849,7 +849,7 @@ message RouteAction {
// 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_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
// <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*.
core.v3.Metadata metadata_match = 4;
@ -860,16 +860,16 @@ message RouteAction {
// <config_http_filters_router_x-envoy-original-path>` header.
//
// Only one of *prefix_rewrite* or
// :ref:`regex_rewrite <envoy_api_field_config.route.v3.RouteAction.regex_rewrite>`
// :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`
// may be specified.
//
// .. attention::
//
// Pay careful attention to the use of trailing slashes in the
// :ref:`route's match <envoy_api_field_config.route.v3.Route.match>` prefix value.
// :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_api_msg_config.route.v3.Route>`, as shown by the below config entries:
// :ref:`Route <envoy_v3_api_msg_config.route.v3.Route>`, as shown by the below config entries:
//
// .. code-block:: yaml
//
@ -896,7 +896,7 @@ message RouteAction {
// before the rewrite into the :ref:`x-envoy-original-path
// <config_http_filters_router_x-envoy-original-path>` header.
//
// Only one of :ref:`prefix_rewrite <envoy_api_field_config.route.v3.RouteAction.prefix_rewrite>`
// Only one of :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`
// or *regex_rewrite* may be specified.
//
// Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
@ -978,14 +978,14 @@ message RouteAction {
// 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_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.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_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
// <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
// on the upstream response time; :ref:`idle_timeout
// <envoy_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
// <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
@ -997,7 +997,7 @@ message RouteAction {
//
// 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_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
// :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;
// Indicates that the route has a retry policy. Note that if this is set,
@ -1008,7 +1008,7 @@ message RouteAction {
// [#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_api_field_config.route.v3.VirtualHost.retry_policy>`
// 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;
@ -1024,7 +1024,7 @@ message RouteAction {
// 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_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
// :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>`
@ -1048,15 +1048,15 @@ message RouteAction {
// Indicates that the route has a CORS policy.
CorsPolicy cors = 17;
// Deprecated by :ref:`grpc_timeout_header_max <envoy_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
// 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_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
// :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_api_field_config.route.v3.RouteAction.timeout>` or its default.
// :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.
//
@ -1071,7 +1071,7 @@ message RouteAction {
google.protobuf.Duration max_grpc_timeout = 23
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
// Deprecated by :ref:`grpc_timeout_header_offset <envoy_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
// 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
@ -1087,7 +1087,7 @@ message RouteAction {
// 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_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
// <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
InternalRedirectPolicy internal_redirect_policy = 34;
InternalRedirectAction internal_redirect_action = 26
@ -1095,15 +1095,15 @@ message RouteAction {
// 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_api_field_config.route.v3.RouteAction.internal_redirect_action>`
// :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
// is set to :ref:`HANDLE_INTERNAL_REDIRECT
// <envoy_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.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_api_field_config.route.v3.RouteAction.internal_redirect_action>`
// :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
// set to
// :ref:`PASS_THROUGH_INTERNAL_REDIRECT
// <envoy_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.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.
@ -1268,7 +1268,7 @@ message RetryPolicy {
// .. note::
//
// If left unspecified, Envoy will use the global
// :ref:`route timeout <envoy_api_field_config.route.v3.RouteAction.timeout>` for the request.
// :ref:`route timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` for the request.
// Consequently, when using a :ref:`5xx <config_http_filters_router_x-envoy-retry-on>` based
// retry policy, a request that times out will not be retried as the total timeout budget
// would have been exhausted.
@ -1343,7 +1343,7 @@ message HedgePolicy {
// if there are no more retries left.
// * After per-try timeout, an error response would be discarded, as a retry in the form of a hedged request is already in progress.
//
// Note: For this to have effect, you must have a :ref:`RetryPolicy <envoy_api_msg_config.route.v3.RetryPolicy>` that retries at least
// Note: For this to have effect, you must have a :ref:`RetryPolicy <envoy_v3_api_msg_config.route.v3.RetryPolicy>` that retries at least
// one error code and specifies a maximum number of retries.
//
// Defaults to false.
@ -1418,7 +1418,7 @@ message RedirectAction {
// .. attention::
//
// Pay attention to the use of trailing slashes as mentioned in
// :ref:`RouteAction's prefix_rewrite <envoy_api_field_config.route.v3.RouteAction.prefix_rewrite>`.
// :ref:`RouteAction's prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`.
string prefix_rewrite = 5
[(validate.rules).string = {well_known_regex: HTTP_HEADER_VALUE strict: false}];
@ -1470,8 +1470,8 @@ message DirectResponseAction {
// .. note::
//
// Headers can be specified using *response_headers_to_add* in the enclosing
// :ref:`envoy_api_msg_config.route.v3.Route`, :ref:`envoy_api_msg_config.route.v3.RouteConfiguration` or
// :ref:`envoy_api_msg_config.route.v3.VirtualHost`.
// :ref:`envoy_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` or
// :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`.
core.v3.DataSource body = 2;
}
@ -1526,7 +1526,7 @@ message Tracing {
// A list of custom tags with unique tag name to create tags for the active span.
// It will take effect after merging with the :ref:`corresponding configuration
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.custom_tags>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.custom_tags>`
// configured in the HTTP connection manager. If two tags with the same name are configured
// each in the HTTP connection manager and the route level, the one configured here takes
// priority.
@ -1597,14 +1597,14 @@ message RateLimit {
// ("destination_cluster", "<routed target cluster>")
//
// Once a request matches against a route table rule, a routed cluster is determined by one of
// the following :ref:`route table configuration <envoy_api_msg_config.route.v3.RouteConfiguration>`
// the following :ref:`route table configuration <envoy_v3_api_msg_config.route.v3.RouteConfiguration>`
// settings:
//
// * :ref:`cluster <envoy_api_field_config.route.v3.RouteAction.cluster>` indicates the upstream cluster
// * :ref:`cluster <envoy_v3_api_field_config.route.v3.RouteAction.cluster>` indicates the upstream cluster
// to route to.
// * :ref:`weighted_clusters <envoy_api_field_config.route.v3.RouteAction.weighted_clusters>`
// * :ref:`weighted_clusters <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`
// chooses a cluster randomly from a set of clusters with attributed weight.
// * :ref:`cluster_header <envoy_api_field_config.route.v3.RouteAction.cluster_header>` indicates which
// * :ref:`cluster_header <envoy_v3_api_field_config.route.v3.RouteAction.cluster_header>` indicates which
// header in the request contains the target cluster.
message DestinationCluster {
option (udpa.annotations.versioning).previous_message_type =
@ -1698,7 +1698,7 @@ message RateLimit {
// ("<descriptor_key>", "<value_queried_from_dynamic_metadata>")
//
// .. attention::
// This action has been deprecated in favor of the :ref:`metadata <envoy_api_msg_config.route.v3.RateLimit.Action.MetaData>` action
// This action has been deprecated in favor of the :ref:`metadata <envoy_v3_api_msg_config.route.v3.RateLimit.Action.MetaData>` action
message DynamicMetaData {
// The key to use in the descriptor entry.
string descriptor_key = 1 [(validate.rules).string = {min_len: 1}];
@ -1722,7 +1722,7 @@ message RateLimit {
// Query :ref:`dynamic metadata <well_known_dynamic_metadata>`
DYNAMIC = 0;
// Query :ref:`route entry metadata <envoy_api_field_config.route.v3.Route.metadata>`
// Query :ref:`route entry metadata <envoy_v3_api_field_config.route.v3.Route.metadata>`
ROUTE_ENTRY = 1;
}
@ -1765,7 +1765,7 @@ message RateLimit {
// Rate limit on dynamic metadata.
//
// .. attention::
// This field has been deprecated in favor of the :ref:`metadata <envoy_api_field_config.route.v3.RateLimit.Action.metadata>` field
// This field has been deprecated in favor of the :ref:`metadata <envoy_v3_api_field_config.route.v3.RateLimit.Action.metadata>` field
DynamicMetaData dynamic_metadata = 7 [
deprecated = true,
(envoy.annotations.deprecated_at_minor_version) = "3.0",
@ -1787,7 +1787,7 @@ message RateLimit {
// Metadata struct that defines the key and path to retrieve the struct value.
// The value must be a struct containing an integer "requests_per_unit" property
// and a "unit" property with a value parseable to :ref:`RateLimitUnit
// enum <envoy_api_enum_type.v3.RateLimitUnit>`
// enum <envoy_v3_api_enum_type.v3.RateLimitUnit>`
type.metadata.v3.MetadataKey metadata_key = 1 [(validate.rules).message = {required: true}];
}
@ -1845,8 +1845,8 @@ message RateLimit {
//
// .. attention::
// In the absence of any header match specifier, match will default to :ref:`present_match
// <envoy_api_field_config.route.v3.HeaderMatcher.present_match>`. i.e, a request that has the :ref:`name
// <envoy_api_field_config.route.v3.HeaderMatcher.name>` header will match, regardless of the header's
// <envoy_v3_api_field_config.route.v3.HeaderMatcher.present_match>`. i.e, a request that has the :ref:`name
// <envoy_v3_api_field_config.route.v3.HeaderMatcher.name>` header will match, regardless of the header's
// value.
//
// [#next-major-version: HeaderMatcher should be refactored to use StringMatcher.]
@ -1954,7 +1954,7 @@ message InternalRedirectPolicy {
// downstream request has encountered is lower than this value.
// In the case where a downstream request is bounced among multiple routes by internal redirect,
// the first route that hits this threshold, or does not set :ref:`internal_redirect_policy
// <envoy_api_field_config.route.v3.RouteAction.internal_redirect_policy>`
// <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_policy>`
// will pass the redirect back to downstream.
//
// If not specified, at most one redirect will be followed.
@ -1978,9 +1978,9 @@ message InternalRedirectPolicy {
// A simple wrapper for an HTTP filter config. This is intended to be used as a wrapper for the
// map value in
// :ref:`VirtualHost.typed_per_filter_config<envoy_api_field_config.route.v3.VirtualHost.typed_per_filter_config>`,
// :ref:`Route.typed_per_filter_config<envoy_api_field_config.route.v3.Route.typed_per_filter_config>`,
// or :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
// :ref:`VirtualHost.typed_per_filter_config<envoy_v3_api_field_config.route.v3.VirtualHost.typed_per_filter_config>`,
// :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 add additional flags to the filter.
// [#not-implemented-hide:]
message FilterConfig {

@ -15,13 +15,13 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// * Routing :ref:`architecture overview <arch_overview_http_routing>`
// Specifies a routing scope, which associates a
// :ref:`Key<envoy_api_msg_config.route.v3.ScopedRouteConfiguration.Key>` to a
// :ref:`envoy_api_msg_config.route.v3.RouteConfiguration` (identified by its resource name).
// :ref:`Key<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration.Key>` to a
// :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` (identified by its resource name).
//
// The HTTP connection manager builds up a table consisting of these Key to
// RouteConfiguration mappings, and looks up the RouteConfiguration to use per
// request according to the algorithm specified in the
// :ref:`scope_key_builder<envoy_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scope_key_builder>`
// :ref:`scope_key_builder<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scope_key_builder>`
// assigned to the HttpConnectionManager.
//
// For example, with the following configurations (in YAML):
@ -43,7 +43,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// key: vip
//
// ScopedRouteConfiguration resources (specified statically via
// :ref:`scoped_route_configurations_list<envoy_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scoped_route_configurations_list>`
// :ref:`scoped_route_configurations_list<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scoped_route_configurations_list>`
// or obtained dynamically via SRDS):
//
// .. code::
@ -78,7 +78,7 @@ message ScopedRouteConfiguration {
"envoy.api.v2.ScopedRouteConfiguration";
// Specifies a key which is matched against the output of the
// :ref:`scope_key_builder<envoy_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scope_key_builder>`
// :ref:`scope_key_builder<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scope_key_builder>`
// specified in the HttpConnectionManager. The matching is done per HTTP
// request and is dependent on the order of the fragments contained in the
// Key.
@ -100,7 +100,7 @@ message ScopedRouteConfiguration {
// The ordered set of fragments to match against. The order must match the
// fragments in the corresponding
// :ref:`scope_key_builder<envoy_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scope_key_builder>`.
// :ref:`scope_key_builder<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scope_key_builder>`.
repeated Fragment fragments = 1 [(validate.rules).repeated = {min_items: 1}];
}
@ -110,8 +110,8 @@ message ScopedRouteConfiguration {
// The name assigned to the routing scope.
string name = 1 [(validate.rules).string = {min_len: 1}];
// The resource name to use for a :ref:`envoy_api_msg_service.discovery.v3.DiscoveryRequest` to an
// RDS server to fetch the :ref:`envoy_api_msg_config.route.v3.RouteConfiguration` associated
// The resource name to use for a :ref:`envoy_v3_api_msg_service.discovery.v3.DiscoveryRequest` to an
// RDS server to fetch the :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated
// with this scope.
string route_configuration_name = 2 [(validate.rules).string = {min_len: 1}];

@ -28,8 +28,8 @@ message RouteConfiguration {
// The name of the route configuration. For example, it might match
// :ref:`route_config_name
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.Rds.route_config_name>` in
// :ref:`envoy_api_msg_extensions.filters.network.http_connection_manager.v4alpha.Rds`.
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.Rds.route_config_name>` in
// :ref:`envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.Rds`.
string name = 1;
// An array of virtual hosts that make up the route table.
@ -53,8 +53,8 @@ message RouteConfiguration {
// 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_config.route.v4alpha.VirtualHost` or
// :ref:`envoy_api_msg_config.route.v4alpha.RouteAction`. For more information, including details on
// after headers from any enclosed :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` or
// :ref:`envoy_v3_api_msg_config.route.v3.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>`.
repeated core.v4alpha.HeaderValueOption response_headers_to_add = 4
@ -68,8 +68,8 @@ message RouteConfiguration {
// 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_config.route.v4alpha.VirtualHost` or
// :ref:`envoy_api_msg_config.route.v4alpha.RouteAction`. For more information, including details on
// applied after headers from any enclosed :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` or
// :ref:`envoy_v3_api_msg_config.route.v3.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>`.
repeated core.v4alpha.HeaderValueOption request_headers_to_add = 6
@ -100,22 +100,22 @@ message RouteConfiguration {
// 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_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.route_config>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.route_config>`
// option. This setting default to false if the route table is loaded dynamically via the
// :ref:`rds
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.rds>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.rds>`
// option. Users may wish to override the default behavior in certain cases (for example when
// using CDS with a static route table).
google.protobuf.BoolValue validate_clusters = 7;
// The maximum bytes of the response :ref:`direct response body
// <envoy_api_field_config.route.v4alpha.DirectResponseAction.body>` size. If not specified the default
// <envoy_v3_api_field_config.route.v3.DirectResponseAction.body>` size. If not specified the default
// is 4096.
//
// .. warning::
//
// Envoy currently holds the content of :ref:`direct response body
// <envoy_api_field_config.route.v4alpha.DirectResponseAction.body>` in memory. Be careful setting
// <envoy_v3_api_field_config.route.v3.DirectResponseAction.body>` in memory. Be careful setting
// this to be larger than the default 4KB, since the allocated memory for direct response body
// is not subject to data plane buffering controls.
//

@ -100,8 +100,8 @@ message VirtualHost {
// Specifies a list of HTTP headers that should be added to each request
// handled by this virtual host. Headers specified at this level are applied
// after headers from enclosed :ref:`envoy_api_msg_config.route.v4alpha.Route` and before headers from the
// enclosing :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration`. For more information, including
// after headers from enclosed :ref:`envoy_v3_api_msg_config.route.v3.Route` and before headers from the
// enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. 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>`.
repeated core.v4alpha.HeaderValueOption request_headers_to_add = 7
@ -115,8 +115,8 @@ message VirtualHost {
// Specifies a list of HTTP headers that should be added to each response
// handled by this virtual host. Headers specified at this level are applied
// after headers from enclosed :ref:`envoy_api_msg_config.route.v4alpha.Route` and before headers from the
// enclosing :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration`. For more information, including
// after headers from enclosed :ref:`envoy_v3_api_msg_config.route.v3.Route` and before headers from the
// enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. 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>`.
repeated core.v4alpha.HeaderValueOption response_headers_to_add = 10
@ -137,7 +137,7 @@ message VirtualHost {
// specific; see the :ref:`HTTP filter documentation <config_http_filters>`
// for if and how it is utilized.
// [#comment: An entry's value may be wrapped in a
// :ref:`FilterConfig<envoy_api_msg_config.route.v4alpha.FilterConfig>`
// :ref:`FilterConfig<envoy_v3_api_msg_config.route.v3.FilterConfig>`
// message to specify additional options.]
map<string, google.protobuf.Any> typed_per_filter_config = 15;
@ -148,7 +148,7 @@ message VirtualHost {
// will see the attempt count as perceived by the second Envoy. Defaults to false.
// This header is unaffected by the
// :ref:`suppress_envoy_headers
// <envoy_api_field_extensions.filters.http.router.v4alpha.Router.suppress_envoy_headers>` flag.
// <envoy_v3_api_field_extensions.filters.http.router.v3.Router.suppress_envoy_headers>` flag.
//
// [#next-major-version: rename to include_attempt_count_in_request.]
bool include_request_attempt_count = 14;
@ -160,7 +160,7 @@ message VirtualHost {
// will see the attempt count as perceived by the Envoy closest upstream from itself. Defaults to false.
// This header is unaffected by the
// :ref:`suppress_envoy_headers
// <envoy_api_field_extensions.filters.http.router.v4alpha.Router.suppress_envoy_headers>` flag.
// <envoy_v3_api_field_extensions.filters.http.router.v3.Router.suppress_envoy_headers>` flag.
bool include_attempt_count_in_response = 19;
// Indicates the retry policy for all routes in this virtual host. Note that setting a
@ -171,7 +171,7 @@ message VirtualHost {
// [#not-implemented-hide:]
// Specifies the configuration for retry policy extension. Note that setting a route level entry
// will take precedence over this config and it'll be treated independently (e.g.: values are not
// inherited). :ref:`Retry policy <envoy_api_field_config.route.v4alpha.VirtualHost.retry_policy>` should not be
// inherited). :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 = 20;
@ -199,7 +199,7 @@ message FilterAction {
// .. attention::
//
// Envoy supports routing on HTTP method via :ref:`header matching
// <envoy_api_msg_config.route.v4alpha.HeaderMatcher>`.
// <envoy_v3_api_msg_config.route.v3.HeaderMatcher>`.
// [#next-free-field: 19]
message Route {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.route.v3.Route";
@ -256,14 +256,14 @@ message Route {
// specific; see the :ref:`HTTP filter documentation <config_http_filters>` for
// if and how it is utilized.
// [#comment: An entry's value may be wrapped in a
// :ref:`FilterConfig<envoy_api_msg_config.route.v4alpha.FilterConfig>`
// :ref:`FilterConfig<envoy_v3_api_msg_config.route.v3.FilterConfig>`
// message to specify additional options.]
map<string, google.protobuf.Any> typed_per_filter_config = 13;
// Specifies a set of headers that will be added to requests matching this
// route. Headers specified at this level are applied before headers from the
// enclosing :ref:`envoy_api_msg_config.route.v4alpha.VirtualHost` and
// :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration`. For more information, including details on
// enclosing :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` and
// :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. 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>`.
repeated core.v4alpha.HeaderValueOption request_headers_to_add = 9
@ -277,8 +277,8 @@ message Route {
// Specifies a set of headers that will be added to responses to requests
// matching this route. Headers specified at this level are applied before
// headers from the enclosing :ref:`envoy_api_msg_config.route.v4alpha.VirtualHost` and
// :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration`. For more information, including
// headers from the enclosing :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` and
// :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. 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>`.
repeated core.v4alpha.HeaderValueOption response_headers_to_add = 10
@ -300,9 +300,9 @@ message Route {
google.protobuf.UInt32Value per_request_buffer_limit_bytes = 16;
}
// Compared to the :ref:`cluster <envoy_api_field_config.route.v4alpha.RouteAction.cluster>` field that specifies a
// Compared to the :ref:`cluster <envoy_v3_api_field_config.route.v3.RouteAction.cluster>` field that specifies a
// single upstream cluster as the target of a request, the :ref:`weighted_clusters
// <envoy_api_field_config.route.v4alpha.RouteAction.weighted_clusters>` option allows for specification of
// <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>` option allows for specification of
// multiple upstream clusters along with weights that indicate the percentage of
// traffic to be forwarded to each cluster. The router selects an upstream cluster based on the
// weights.
@ -324,7 +324,7 @@ message WeightedCluster {
string name = 1 [(validate.rules).string = {min_len: 1}];
// An integer between 0 and :ref:`total_weight
// <envoy_api_field_config.route.v4alpha.WeightedCluster.total_weight>`. When a request matches the route,
// <envoy_v3_api_field_config.route.v3.WeightedCluster.total_weight>`. When a request matches the route,
// the choice of an upstream cluster is determined by its weight. The sum of weights across all
// entries in the clusters array must add up to the total_weight, which defaults to 100.
google.protobuf.UInt32Value weight = 2;
@ -332,38 +332,38 @@ message WeightedCluster {
// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints in
// the upstream cluster with metadata matching what is set in this field will be considered for
// load balancing. Note that this will be merged with what's provided in
// :ref:`RouteAction.metadata_match <envoy_api_field_config.route.v4alpha.RouteAction.metadata_match>`, with
// :ref:`RouteAction.metadata_match <envoy_v3_api_field_config.route.v3.RouteAction.metadata_match>`, with
// values here taking precedence. The filter name should be specified as *envoy.lb*.
core.v4alpha.Metadata metadata_match = 3;
// Specifies a list of headers to be added to requests when this cluster is selected
// through the enclosing :ref:`envoy_api_msg_config.route.v4alpha.RouteAction`.
// through the enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`.
// Headers specified at this level are applied before headers from the enclosing
// :ref:`envoy_api_msg_config.route.v4alpha.Route`, :ref:`envoy_api_msg_config.route.v4alpha.VirtualHost`, and
// :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration`. For more information, including details on
// :ref:`envoy_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`, and
// :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. 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>`.
repeated core.v4alpha.HeaderValueOption request_headers_to_add = 4
[(validate.rules).repeated = {max_items: 1000}];
// Specifies a list of HTTP headers that should be removed from each request when
// this cluster is selected through the enclosing :ref:`envoy_api_msg_config.route.v4alpha.RouteAction`.
// this cluster is selected through the enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`.
repeated string request_headers_to_remove = 9 [(validate.rules).repeated = {
items {string {well_known_regex: HTTP_HEADER_NAME strict: false}}
}];
// Specifies a list of headers to be added to responses when this cluster is selected
// through the enclosing :ref:`envoy_api_msg_config.route.v4alpha.RouteAction`.
// through the enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`.
// Headers specified at this level are applied before headers from the enclosing
// :ref:`envoy_api_msg_config.route.v4alpha.Route`, :ref:`envoy_api_msg_config.route.v4alpha.VirtualHost`, and
// :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration`. For more information, including details on
// :ref:`envoy_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`, and
// :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. 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>`.
repeated core.v4alpha.HeaderValueOption response_headers_to_add = 5
[(validate.rules).repeated = {max_items: 1000}];
// Specifies a list of headers to be removed from responses when this cluster is selected
// through the enclosing :ref:`envoy_api_msg_config.route.v4alpha.RouteAction`.
// through the enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`.
repeated string response_headers_to_remove = 6 [(validate.rules).repeated = {
items {string {well_known_regex: HTTP_HEADER_NAME strict: false}}
}];
@ -374,7 +374,7 @@ message WeightedCluster {
// specific; see the :ref:`HTTP filter documentation <config_http_filters>`
// for if and how it is utilized.
// [#comment: An entry's value may be wrapped in a
// :ref:`FilterConfig<envoy_api_msg_config.route.v4alpha.FilterConfig>`
// :ref:`FilterConfig<envoy_v3_api_msg_config.route.v3.FilterConfig>`
// message to specify additional options.]
map<string, google.protobuf.Any> typed_per_filter_config = 10;
}
@ -547,7 +547,7 @@ message CorsPolicy {
// If neither ``enabled``, ``filter_enabled``, nor ``shadow_enabled`` are specified, the CORS
// filter will be enabled for 100% of the requests.
//
// If :ref:`runtime_key <envoy_api_field_config.core.v4alpha.RuntimeFractionalPercent.runtime_key>` is
// If :ref:`runtime_key <envoy_v3_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is
// specified, Envoy will lookup the runtime key to get the percentage of requests to filter.
core.v4alpha.RuntimeFractionalPercent filter_enabled = 9;
}
@ -558,7 +558,7 @@ message CorsPolicy {
// This field is intended to be used when ``filter_enabled`` and ``enabled`` are off. One of those
// fields have to explicitly disable the filter in order for this setting to take effect.
//
// If :ref:`runtime_key <envoy_api_field_config.core.v4alpha.RuntimeFractionalPercent.runtime_key>` is specified,
// If :ref:`runtime_key <envoy_v3_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is specified,
// Envoy will lookup the runtime key to get the percentage of requests for which it will evaluate
// and track the request's *Origin* to determine if it's valid but will not enforce any policies.
core.v4alpha.RuntimeFractionalPercent shadow_enabled = 10;
@ -740,7 +740,7 @@ message RouteAction {
// This overrides any enabled/disabled upgrade filter chain specified in the
// HttpConnectionManager
// :ref:`upgrade_configs
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.upgrade_configs>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.upgrade_configs>`
// but does not affect any custom filter chain specified there.
message UpgradeConfig {
option (udpa.annotations.versioning).previous_message_type =
@ -781,9 +781,9 @@ message RouteAction {
// Specifies the maximum duration allowed for streams on the route. If not specified, the value
// from the :ref:`max_stream_duration
// <envoy_api_field_config.core.v4alpha.HttpProtocolOptions.max_stream_duration>` field in
// <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
// :ref:`HttpConnectionManager.common_http_protocol_options
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.common_http_protocol_options>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
// is used. If this field is set explicitly to zero, any
// HttpConnectionManager max_stream_duration timeout will be disabled for
// this route.
@ -848,7 +848,7 @@ message RouteAction {
// 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_api_field_config.route.v4alpha.RouteAction.weighted_clusters>`, metadata will be merged, with values
// <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*.
core.v4alpha.Metadata metadata_match = 4;
@ -859,16 +859,16 @@ message RouteAction {
// <config_http_filters_router_x-envoy-original-path>` header.
//
// Only one of *prefix_rewrite* or
// :ref:`regex_rewrite <envoy_api_field_config.route.v4alpha.RouteAction.regex_rewrite>`
// :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`
// may be specified.
//
// .. attention::
//
// Pay careful attention to the use of trailing slashes in the
// :ref:`route's match <envoy_api_field_config.route.v4alpha.Route.match>` prefix value.
// :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_api_msg_config.route.v4alpha.Route>`, as shown by the below config entries:
// :ref:`Route <envoy_v3_api_msg_config.route.v3.Route>`, as shown by the below config entries:
//
// .. code-block:: yaml
//
@ -895,7 +895,7 @@ message RouteAction {
// before the rewrite into the :ref:`x-envoy-original-path
// <config_http_filters_router_x-envoy-original-path>` header.
//
// Only one of :ref:`prefix_rewrite <envoy_api_field_config.route.v4alpha.RouteAction.prefix_rewrite>`
// Only one of :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`
// or *regex_rewrite* may be specified.
//
// Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
@ -977,14 +977,14 @@ message RouteAction {
// 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_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.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_api_field_config.route.v4alpha.RouteAction.timeout>`, which provides an upper bound
// <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
// on the upstream response time; :ref:`idle_timeout
// <envoy_api_field_config.route.v4alpha.RouteAction.idle_timeout>` instead bounds the amount
// <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
@ -996,7 +996,7 @@ message RouteAction {
//
// 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_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
// :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;
// Indicates that the route has a retry policy. Note that if this is set,
@ -1007,7 +1007,7 @@ message RouteAction {
// [#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_api_field_config.route.v4alpha.VirtualHost.retry_policy>`
// 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;
@ -1043,7 +1043,7 @@ message RouteAction {
// 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_api_field_config.route.v4alpha.InternalRedirectPolicy.redirect_response_codes>`.
// <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
InternalRedirectPolicy internal_redirect_policy = 34;
// Indicates that the route has a hedge policy. Note that if this is set,
@ -1209,7 +1209,7 @@ message RetryPolicy {
// .. note::
//
// If left unspecified, Envoy will use the global
// :ref:`route timeout <envoy_api_field_config.route.v4alpha.RouteAction.timeout>` for the request.
// :ref:`route timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` for the request.
// Consequently, when using a :ref:`5xx <config_http_filters_router_x-envoy-retry-on>` based
// retry policy, a request that times out will not be retried as the total timeout budget
// would have been exhausted.
@ -1284,7 +1284,7 @@ message HedgePolicy {
// if there are no more retries left.
// * After per-try timeout, an error response would be discarded, as a retry in the form of a hedged request is already in progress.
//
// Note: For this to have effect, you must have a :ref:`RetryPolicy <envoy_api_msg_config.route.v4alpha.RetryPolicy>` that retries at least
// Note: For this to have effect, you must have a :ref:`RetryPolicy <envoy_v3_api_msg_config.route.v3.RetryPolicy>` that retries at least
// one error code and specifies a maximum number of retries.
//
// Defaults to false.
@ -1360,7 +1360,7 @@ message RedirectAction {
// .. attention::
//
// Pay attention to the use of trailing slashes as mentioned in
// :ref:`RouteAction's prefix_rewrite <envoy_api_field_config.route.v4alpha.RouteAction.prefix_rewrite>`.
// :ref:`RouteAction's prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`.
string prefix_rewrite = 5
[(validate.rules).string = {well_known_regex: HTTP_HEADER_VALUE strict: false}];
@ -1412,8 +1412,8 @@ message DirectResponseAction {
// .. note::
//
// Headers can be specified using *response_headers_to_add* in the enclosing
// :ref:`envoy_api_msg_config.route.v4alpha.Route`, :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration` or
// :ref:`envoy_api_msg_config.route.v4alpha.VirtualHost`.
// :ref:`envoy_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` or
// :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`.
core.v4alpha.DataSource body = 2;
}
@ -1470,7 +1470,7 @@ message Tracing {
// A list of custom tags with unique tag name to create tags for the active span.
// It will take effect after merging with the :ref:`corresponding configuration
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.Tracing.custom_tags>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.custom_tags>`
// configured in the HTTP connection manager. If two tags with the same name are configured
// each in the HTTP connection manager and the route level, the one configured here takes
// priority.
@ -1542,14 +1542,14 @@ message RateLimit {
// ("destination_cluster", "<routed target cluster>")
//
// Once a request matches against a route table rule, a routed cluster is determined by one of
// the following :ref:`route table configuration <envoy_api_msg_config.route.v4alpha.RouteConfiguration>`
// the following :ref:`route table configuration <envoy_v3_api_msg_config.route.v3.RouteConfiguration>`
// settings:
//
// * :ref:`cluster <envoy_api_field_config.route.v4alpha.RouteAction.cluster>` indicates the upstream cluster
// * :ref:`cluster <envoy_v3_api_field_config.route.v3.RouteAction.cluster>` indicates the upstream cluster
// to route to.
// * :ref:`weighted_clusters <envoy_api_field_config.route.v4alpha.RouteAction.weighted_clusters>`
// * :ref:`weighted_clusters <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`
// chooses a cluster randomly from a set of clusters with attributed weight.
// * :ref:`cluster_header <envoy_api_field_config.route.v4alpha.RouteAction.cluster_header>` indicates which
// * :ref:`cluster_header <envoy_v3_api_field_config.route.v3.RouteAction.cluster_header>` indicates which
// header in the request contains the target cluster.
message DestinationCluster {
option (udpa.annotations.versioning).previous_message_type =
@ -1643,7 +1643,7 @@ message RateLimit {
// ("<descriptor_key>", "<value_queried_from_dynamic_metadata>")
//
// .. attention::
// This action has been deprecated in favor of the :ref:`metadata <envoy_api_msg_config.route.v4alpha.RateLimit.Action.MetaData>` action
// This action has been deprecated in favor of the :ref:`metadata <envoy_v3_api_msg_config.route.v3.RateLimit.Action.MetaData>` action
message DynamicMetaData {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.route.v3.RateLimit.Action.DynamicMetaData";
@ -1673,7 +1673,7 @@ message RateLimit {
// Query :ref:`dynamic metadata <well_known_dynamic_metadata>`
DYNAMIC = 0;
// Query :ref:`route entry metadata <envoy_api_field_config.route.v4alpha.Route.metadata>`
// Query :ref:`route entry metadata <envoy_v3_api_field_config.route.v3.Route.metadata>`
ROUTE_ENTRY = 1;
}
@ -1738,7 +1738,7 @@ message RateLimit {
// Metadata struct that defines the key and path to retrieve the struct value.
// The value must be a struct containing an integer "requests_per_unit" property
// and a "unit" property with a value parseable to :ref:`RateLimitUnit
// enum <envoy_api_enum_type.v3.RateLimitUnit>`
// enum <envoy_v3_api_enum_type.v3.RateLimitUnit>`
type.metadata.v3.MetadataKey metadata_key = 1 [(validate.rules).message = {required: true}];
}
@ -1796,8 +1796,8 @@ message RateLimit {
//
// .. attention::
// In the absence of any header match specifier, match will default to :ref:`present_match
// <envoy_api_field_config.route.v4alpha.HeaderMatcher.present_match>`. i.e, a request that has the :ref:`name
// <envoy_api_field_config.route.v4alpha.HeaderMatcher.name>` header will match, regardless of the header's
// <envoy_v3_api_field_config.route.v3.HeaderMatcher.present_match>`. i.e, a request that has the :ref:`name
// <envoy_v3_api_field_config.route.v3.HeaderMatcher.name>` header will match, regardless of the header's
// value.
//
// [#next-major-version: HeaderMatcher should be refactored to use StringMatcher.]
@ -1910,7 +1910,7 @@ message InternalRedirectPolicy {
// downstream request has encountered is lower than this value.
// In the case where a downstream request is bounced among multiple routes by internal redirect,
// the first route that hits this threshold, or does not set :ref:`internal_redirect_policy
// <envoy_api_field_config.route.v4alpha.RouteAction.internal_redirect_policy>`
// <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_policy>`
// will pass the redirect back to downstream.
//
// If not specified, at most one redirect will be followed.
@ -1934,9 +1934,9 @@ message InternalRedirectPolicy {
// A simple wrapper for an HTTP filter config. This is intended to be used as a wrapper for the
// map value in
// :ref:`VirtualHost.typed_per_filter_config<envoy_api_field_config.route.v4alpha.VirtualHost.typed_per_filter_config>`,
// :ref:`Route.typed_per_filter_config<envoy_api_field_config.route.v4alpha.Route.typed_per_filter_config>`,
// or :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_api_field_config.route.v4alpha.WeightedCluster.ClusterWeight.typed_per_filter_config>`
// :ref:`VirtualHost.typed_per_filter_config<envoy_v3_api_field_config.route.v3.VirtualHost.typed_per_filter_config>`,
// :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 add additional flags to the filter.
// [#not-implemented-hide:]
message FilterConfig {

@ -15,13 +15,13 @@ option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSIO
// * Routing :ref:`architecture overview <arch_overview_http_routing>`
// Specifies a routing scope, which associates a
// :ref:`Key<envoy_api_msg_config.route.v4alpha.ScopedRouteConfiguration.Key>` to a
// :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration` (identified by its resource name).
// :ref:`Key<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration.Key>` to a
// :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` (identified by its resource name).
//
// The HTTP connection manager builds up a table consisting of these Key to
// RouteConfiguration mappings, and looks up the RouteConfiguration to use per
// request according to the algorithm specified in the
// :ref:`scope_key_builder<envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.ScopedRoutes.scope_key_builder>`
// :ref:`scope_key_builder<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scope_key_builder>`
// assigned to the HttpConnectionManager.
//
// For example, with the following configurations (in YAML):
@ -43,7 +43,7 @@ option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSIO
// key: vip
//
// ScopedRouteConfiguration resources (specified statically via
// :ref:`scoped_route_configurations_list<envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.ScopedRoutes.scoped_route_configurations_list>`
// :ref:`scoped_route_configurations_list<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scoped_route_configurations_list>`
// or obtained dynamically via SRDS):
//
// .. code::
@ -78,7 +78,7 @@ message ScopedRouteConfiguration {
"envoy.config.route.v3.ScopedRouteConfiguration";
// Specifies a key which is matched against the output of the
// :ref:`scope_key_builder<envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.ScopedRoutes.scope_key_builder>`
// :ref:`scope_key_builder<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scope_key_builder>`
// specified in the HttpConnectionManager. The matching is done per HTTP
// request and is dependent on the order of the fragments contained in the
// Key.
@ -100,7 +100,7 @@ message ScopedRouteConfiguration {
// The ordered set of fragments to match against. The order must match the
// fragments in the corresponding
// :ref:`scope_key_builder<envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.ScopedRoutes.scope_key_builder>`.
// :ref:`scope_key_builder<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scope_key_builder>`.
repeated Fragment fragments = 1 [(validate.rules).repeated = {min_items: 1}];
}
@ -110,8 +110,8 @@ message ScopedRouteConfiguration {
// The name assigned to the routing scope.
string name = 1 [(validate.rules).string = {min_len: 1}];
// The resource name to use for a :ref:`envoy_api_msg_service.discovery.v4alpha.DiscoveryRequest` to an
// RDS server to fetch the :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration` associated
// The resource name to use for a :ref:`envoy_v3_api_msg_service.discovery.v3.DiscoveryRequest` to an
// RDS server to fetch the :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated
// with this scope.
string route_configuration_name = 2 [(validate.rules).string = {min_len: 1}];

@ -30,17 +30,17 @@ message TapConfig {
// The match configuration. If the configuration matches the data source being tapped, a tap will
// occur, with the result written to the configured output.
// Exactly one of :ref:`match <envoy_api_field_config.tap.v3.TapConfig.match>` and
// :ref:`match_config <envoy_api_field_config.tap.v3.TapConfig.match_config>` must be set. If both
// are set, the :ref:`match <envoy_api_field_config.tap.v3.TapConfig.match>` will be used.
// Exactly one of :ref:`match <envoy_v3_api_field_config.tap.v3.TapConfig.match>` and
// :ref:`match_config <envoy_v3_api_field_config.tap.v3.TapConfig.match_config>` must be set. If both
// are set, the :ref:`match <envoy_v3_api_field_config.tap.v3.TapConfig.match>` will be used.
MatchPredicate match_config = 1
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
// The match configuration. If the configuration matches the data source being tapped, a tap will
// occur, with the result written to the configured output.
// Exactly one of :ref:`match <envoy_api_field_config.tap.v3.TapConfig.match>` and
// :ref:`match_config <envoy_api_field_config.tap.v3.TapConfig.match_config>` must be set. If both
// are set, the :ref:`match <envoy_api_field_config.tap.v3.TapConfig.match>` will be used.
// Exactly one of :ref:`match <envoy_v3_api_field_config.tap.v3.TapConfig.match>` and
// :ref:`match_config <envoy_v3_api_field_config.tap.v3.TapConfig.match_config>` must be set. If both
// are set, the :ref:`match <envoy_v3_api_field_config.tap.v3.TapConfig.match>` will be used.
common.matcher.v3.MatchPredicate match = 4;
// The tap output configuration. If a match configuration matches a data source being tapped,
@ -54,7 +54,7 @@ message TapConfig {
// .. note::
//
// This field defaults to 100/:ref:`HUNDRED
// <envoy_api_enum_type.v3.FractionalPercent.DenominatorType>`.
// <envoy_v3_api_enum_type.v3.FractionalPercent.DenominatorType>`.
core.v3.RuntimeFractionalPercent tap_enabled = 3;
}
@ -161,19 +161,19 @@ message OutputConfig {
// For buffered tapping, the maximum amount of received body that will be buffered prior to
// truncation. If truncation occurs, the :ref:`truncated
// <envoy_api_field_data.tap.v3.Body.truncated>` field will be set. If not specified, the
// <envoy_v3_api_field_data.tap.v3.Body.truncated>` field will be set. If not specified, the
// default is 1KiB.
google.protobuf.UInt32Value max_buffered_rx_bytes = 2;
// For buffered tapping, the maximum amount of transmitted body that will be buffered prior to
// truncation. If truncation occurs, the :ref:`truncated
// <envoy_api_field_data.tap.v3.Body.truncated>` field will be set. If not specified, the
// <envoy_v3_api_field_data.tap.v3.Body.truncated>` field will be set. If not specified, the
// default is 1KiB.
google.protobuf.UInt32Value max_buffered_tx_bytes = 3;
// Indicates whether taps produce a single buffered message per tap, or multiple streamed
// messages per tap in the emitted :ref:`TraceWrapper
// <envoy_api_msg_data.tap.v3.TraceWrapper>` messages. Note that streamed tapping does not
// <envoy_v3_api_msg_data.tap.v3.TraceWrapper>` messages. Note that streamed tapping does not
// mean that no buffering takes place. Buffering may be required if data is processed before a
// match can be determined. See the HTTP tap filter :ref:`streaming
// <config_http_filters_tap_streaming>` documentation for more information.
@ -186,20 +186,20 @@ message OutputSink {
"envoy.service.tap.v2alpha.OutputSink";
// Output format. All output is in the form of one or more :ref:`TraceWrapper
// <envoy_api_msg_data.tap.v3.TraceWrapper>` messages. This enumeration indicates
// <envoy_v3_api_msg_data.tap.v3.TraceWrapper>` messages. This enumeration indicates
// how those messages are written. Note that not all sinks support all output formats. See
// individual sink documentation for more information.
enum Format {
// Each message will be written as JSON. Any :ref:`body <envoy_api_msg_data.tap.v3.Body>`
// Each message will be written as JSON. Any :ref:`body <envoy_v3_api_msg_data.tap.v3.Body>`
// data will be present in the :ref:`as_bytes
// <envoy_api_field_data.tap.v3.Body.as_bytes>` field. This means that body data will be
// <envoy_v3_api_field_data.tap.v3.Body.as_bytes>` field. This means that body data will be
// base64 encoded as per the `proto3 JSON mappings
// <https://developers.google.com/protocol-buffers/docs/proto3#json>`_.
JSON_BODY_AS_BYTES = 0;
// Each message will be written as JSON. Any :ref:`body <envoy_api_msg_data.tap.v3.Body>`
// Each message will be written as JSON. Any :ref:`body <envoy_v3_api_msg_data.tap.v3.Body>`
// data will be present in the :ref:`as_string
// <envoy_api_field_data.tap.v3.Body.as_string>` field. This means that body data will be
// <envoy_v3_api_field_data.tap.v3.Body.as_string>` field. This means that body data will be
// string encoded as per the `proto3 JSON mappings
// <https://developers.google.com/protocol-buffers/docs/proto3#json>`_. This format type is
// useful when it is known that that body is human readable (e.g., JSON over HTTP) and the

@ -32,9 +32,9 @@ message TapConfig {
// The match configuration. If the configuration matches the data source being tapped, a tap will
// occur, with the result written to the configured output.
// Exactly one of :ref:`match <envoy_api_field_config.tap.v4alpha.TapConfig.match>` and
// :ref:`match_config <envoy_api_field_config.tap.v4alpha.TapConfig.match_config>` must be set. If both
// are set, the :ref:`match <envoy_api_field_config.tap.v4alpha.TapConfig.match>` will be used.
// Exactly one of :ref:`match <envoy_v3_api_field_config.tap.v3.TapConfig.match>` and
// :ref:`match_config <envoy_v3_api_field_config.tap.v3.TapConfig.match_config>` must be set. If both
// are set, the :ref:`match <envoy_v3_api_field_config.tap.v3.TapConfig.match>` will be used.
common.matcher.v4alpha.MatchPredicate match = 4;
// The tap output configuration. If a match configuration matches a data source being tapped,
@ -48,7 +48,7 @@ message TapConfig {
// .. note::
//
// This field defaults to 100/:ref:`HUNDRED
// <envoy_api_enum_type.v3.FractionalPercent.DenominatorType>`.
// <envoy_v3_api_enum_type.v3.FractionalPercent.DenominatorType>`.
core.v4alpha.RuntimeFractionalPercent tap_enabled = 3;
}
@ -159,19 +159,19 @@ message OutputConfig {
// For buffered tapping, the maximum amount of received body that will be buffered prior to
// truncation. If truncation occurs, the :ref:`truncated
// <envoy_api_field_data.tap.v3.Body.truncated>` field will be set. If not specified, the
// <envoy_v3_api_field_data.tap.v3.Body.truncated>` field will be set. If not specified, the
// default is 1KiB.
google.protobuf.UInt32Value max_buffered_rx_bytes = 2;
// For buffered tapping, the maximum amount of transmitted body that will be buffered prior to
// truncation. If truncation occurs, the :ref:`truncated
// <envoy_api_field_data.tap.v3.Body.truncated>` field will be set. If not specified, the
// <envoy_v3_api_field_data.tap.v3.Body.truncated>` field will be set. If not specified, the
// default is 1KiB.
google.protobuf.UInt32Value max_buffered_tx_bytes = 3;
// Indicates whether taps produce a single buffered message per tap, or multiple streamed
// messages per tap in the emitted :ref:`TraceWrapper
// <envoy_api_msg_data.tap.v3.TraceWrapper>` messages. Note that streamed tapping does not
// <envoy_v3_api_msg_data.tap.v3.TraceWrapper>` messages. Note that streamed tapping does not
// mean that no buffering takes place. Buffering may be required if data is processed before a
// match can be determined. See the HTTP tap filter :ref:`streaming
// <config_http_filters_tap_streaming>` documentation for more information.
@ -183,20 +183,20 @@ message OutputSink {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.tap.v3.OutputSink";
// Output format. All output is in the form of one or more :ref:`TraceWrapper
// <envoy_api_msg_data.tap.v3.TraceWrapper>` messages. This enumeration indicates
// <envoy_v3_api_msg_data.tap.v3.TraceWrapper>` messages. This enumeration indicates
// how those messages are written. Note that not all sinks support all output formats. See
// individual sink documentation for more information.
enum Format {
// Each message will be written as JSON. Any :ref:`body <envoy_api_msg_data.tap.v3.Body>`
// Each message will be written as JSON. Any :ref:`body <envoy_v3_api_msg_data.tap.v3.Body>`
// data will be present in the :ref:`as_bytes
// <envoy_api_field_data.tap.v3.Body.as_bytes>` field. This means that body data will be
// <envoy_v3_api_field_data.tap.v3.Body.as_bytes>` field. This means that body data will be
// base64 encoded as per the `proto3 JSON mappings
// <https://developers.google.com/protocol-buffers/docs/proto3#json>`_.
JSON_BODY_AS_BYTES = 0;
// Each message will be written as JSON. Any :ref:`body <envoy_api_msg_data.tap.v3.Body>`
// Each message will be written as JSON. Any :ref:`body <envoy_v3_api_msg_data.tap.v3.Body>`
// data will be present in the :ref:`as_string
// <envoy_api_field_data.tap.v3.Body.as_string>` field. This means that body data will be
// <envoy_v3_api_field_data.tap.v3.Body.as_string>` field. This means that body data will be
// string encoded as per the `proto3 JSON mappings
// <https://developers.google.com/protocol-buffers/docs/proto3#json>`_. This format type is
// useful when it is known that that body is human readable (e.g., JSON over HTTP) and the

@ -24,15 +24,15 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// .. attention::
//
// Use of this message type has been deprecated in favor of direct use of
// :ref:`Tracing.Http <envoy_api_msg_config.trace.v3.Tracing.Http>`.
// :ref:`Tracing.Http <envoy_v3_api_msg_config.trace.v3.Tracing.Http>`.
message Tracing {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.trace.v2.Tracing";
// Configuration for an HTTP tracer provider used by Envoy.
//
// The configuration is defined by the
// :ref:`HttpConnectionManager.Tracing <envoy_api_msg_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing>`
// :ref:`provider <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`
// :ref:`HttpConnectionManager.Tracing <envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing>`
// :ref:`provider <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`
// field.
message Http {
option (udpa.annotations.versioning).previous_message_type =

@ -24,15 +24,15 @@ option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSIO
// .. attention::
//
// Use of this message type has been deprecated in favor of direct use of
// :ref:`Tracing.Http <envoy_api_msg_config.trace.v4alpha.Tracing.Http>`.
// :ref:`Tracing.Http <envoy_v3_api_msg_config.trace.v3.Tracing.Http>`.
message Tracing {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.trace.v3.Tracing";
// Configuration for an HTTP tracer provider used by Envoy.
//
// The configuration is defined by the
// :ref:`HttpConnectionManager.Tracing <envoy_api_msg_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.Tracing>`
// :ref:`provider <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.Tracing.provider>`
// :ref:`HttpConnectionManager.Tracing <envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing>`
// :ref:`provider <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`
// field.
message Http {
option (udpa.annotations.versioning).previous_message_type =

@ -21,7 +21,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
enum OutlierEjectionType {
// In case upstream host returns certain number of consecutive 5xx.
// If
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is *false*, all type of errors are treated as HTTP 5xx errors.
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
// details.
@ -34,7 +34,7 @@ enum OutlierEjectionType {
// and selects hosts for which ratio of successful replies deviates from other hosts
// in the cluster.
// If
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is *false*, all errors (externally and locally generated) are used to calculate success rate
// statistics. See :ref:`Cluster outlier detection <arch_overview_outlier_detection>`
// documentation for details.
@ -42,7 +42,7 @@ enum OutlierEjectionType {
// Consecutive local origin failures: Connection failures, resets, timeouts, etc
// This type of ejection happens only when
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is set to *true*.
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
CONSECUTIVE_LOCAL_ORIGIN_FAILURE = 3;
@ -50,7 +50,7 @@ enum OutlierEjectionType {
// Runs over aggregated success rate statistics for local origin failures
// for all hosts in the cluster and selects hosts for which success rate deviates from other
// hosts in the cluster. This type of ejection happens only when
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
// is set to *true*.
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
SUCCESS_RATE_LOCAL_ORIGIN = 4;
@ -87,7 +87,7 @@ message OutlierDetectionEvent {
// The time in seconds since the last action (either an ejection or unejection) took place.
google.protobuf.UInt64Value secs_since_last_action = 3;
// The :ref:`cluster <envoy_api_msg_config.cluster.v3.Cluster>` that owns the ejected host.
// The :ref:`cluster <envoy_v3_api_msg_config.cluster.v3.Cluster>` that owns the ejected host.
string cluster_name = 4 [(validate.rules).string = {min_len: 1}];
// The URL of the ejected host. E.g., ``tcp://1.2.3.4:80``.

@ -79,7 +79,7 @@ message HealthCheckAddHealthy {
"envoy.data.core.v2alpha.HealthCheckAddHealthy";
// Whether this addition is the result of the first ever health check on a host, in which case
// the configured :ref:`healthy threshold <envoy_api_field_config.core.v3.HealthCheck.healthy_threshold>`
// the configured :ref:`healthy threshold <envoy_v3_api_field_config.core.v3.HealthCheck.healthy_threshold>`
// is bypassed and the host is immediately added.
bool first_check = 1;
}

@ -23,15 +23,15 @@ message Body {
bytes as_bytes = 1;
// Body data as string. This field is only used when the :ref:`JSON_BODY_AS_STRING
// <envoy_api_enum_value_config.tap.v3.OutputSink.Format.JSON_BODY_AS_STRING>` sink
// <envoy_v3_api_enum_value_config.tap.v3.OutputSink.Format.JSON_BODY_AS_STRING>` sink
// format type is selected. See the documentation for that option for why this is useful.
string as_string = 2;
}
// Specifies whether body data has been truncated to fit within the specified
// :ref:`max_buffered_rx_bytes
// <envoy_api_field_config.tap.v3.OutputConfig.max_buffered_rx_bytes>` and
// <envoy_v3_api_field_config.tap.v3.OutputConfig.max_buffered_rx_bytes>` and
// :ref:`max_buffered_tx_bytes
// <envoy_api_field_config.tap.v3.OutputConfig.max_buffered_tx_bytes>` settings.
// <envoy_v3_api_field_config.tap.v3.OutputConfig.max_buffered_tx_bytes>` settings.
bool truncated = 3;
}

@ -95,11 +95,11 @@ message SocketBufferedTrace {
repeated SocketEvent events = 3;
// Set to true if read events were truncated due to the :ref:`max_buffered_rx_bytes
// <envoy_api_field_config.tap.v3.OutputConfig.max_buffered_rx_bytes>` setting.
// <envoy_v3_api_field_config.tap.v3.OutputConfig.max_buffered_rx_bytes>` setting.
bool read_truncated = 4;
// Set to true if write events were truncated due to the :ref:`max_buffered_tx_bytes
// <envoy_api_field_config.tap.v3.OutputConfig.max_buffered_tx_bytes>` setting.
// <envoy_v3_api_field_config.tap.v3.OutputConfig.max_buffered_tx_bytes>` setting.
bool write_truncated = 5;
}

@ -19,7 +19,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: File access log]
// [#extension: envoy.access_loggers.file]
// Custom configuration for an :ref:`AccessLog <envoy_api_msg_config.accesslog.v3.AccessLog>`
// Custom configuration for an :ref:`AccessLog <envoy_v3_api_msg_config.accesslog.v3.AccessLog>`
// that writes log entries directly to a file. Configures the built-in *envoy.access_loggers.file*
// AccessLog.
// [#next-free-field: 6]

@ -18,7 +18,7 @@ option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSIO
// [#protodoc-title: File access log]
// [#extension: envoy.access_loggers.file]
// Custom configuration for an :ref:`AccessLog <envoy_api_msg_config.accesslog.v4alpha.AccessLog>`
// Custom configuration for an :ref:`AccessLog <envoy_v3_api_msg_config.accesslog.v3.AccessLog>`
// that writes log entries directly to a file. Configures the built-in *envoy.access_loggers.file*
// AccessLog.
// [#next-free-field: 6]

@ -20,9 +20,9 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: gRPC Access Log Service (ALS)]
// Configuration for the built-in *envoy.access_loggers.http_grpc*
// :ref:`AccessLog <envoy_api_msg_config.accesslog.v3.AccessLog>`. This configuration will
// :ref:`AccessLog <envoy_v3_api_msg_config.accesslog.v3.AccessLog>`. This configuration will
// populate :ref:`StreamAccessLogsMessage.http_logs
// <envoy_api_field_service.accesslog.v3.StreamAccessLogsMessage.http_logs>`.
// <envoy_v3_api_field_service.accesslog.v3.StreamAccessLogsMessage.http_logs>`.
// [#extension: envoy.access_loggers.http_grpc]
message HttpGrpcAccessLogConfig {
option (udpa.annotations.versioning).previous_message_type =
@ -31,15 +31,15 @@ message HttpGrpcAccessLogConfig {
CommonGrpcAccessLogConfig common_config = 1 [(validate.rules).message = {required: true}];
// Additional request headers to log in :ref:`HTTPRequestProperties.request_headers
// <envoy_api_field_data.accesslog.v3.HTTPRequestProperties.request_headers>`.
// <envoy_v3_api_field_data.accesslog.v3.HTTPRequestProperties.request_headers>`.
repeated string additional_request_headers_to_log = 2;
// Additional response headers to log in :ref:`HTTPResponseProperties.response_headers
// <envoy_api_field_data.accesslog.v3.HTTPResponseProperties.response_headers>`.
// <envoy_v3_api_field_data.accesslog.v3.HTTPResponseProperties.response_headers>`.
repeated string additional_response_headers_to_log = 3;
// Additional response trailers to log in :ref:`HTTPResponseProperties.response_trailers
// <envoy_api_field_data.accesslog.v3.HTTPResponseProperties.response_trailers>`.
// <envoy_v3_api_field_data.accesslog.v3.HTTPResponseProperties.response_trailers>`.
repeated string additional_response_trailers_to_log = 4;
}
@ -60,7 +60,7 @@ message CommonGrpcAccessLogConfig {
"envoy.config.accesslog.v2.CommonGrpcAccessLogConfig";
// The friendly name of the access log to be returned in :ref:`StreamAccessLogsMessage.Identifier
// <envoy_api_msg_service.accesslog.v3.StreamAccessLogsMessage.Identifier>`. This allows the
// <envoy_v3_api_msg_service.accesslog.v3.StreamAccessLogsMessage.Identifier>`. This allows the
// access log server to differentiate between different access logs coming from the same Envoy.
string log_name = 1 [(validate.rules).string = {min_len: 1}];
@ -83,7 +83,7 @@ message CommonGrpcAccessLogConfig {
google.protobuf.UInt32Value buffer_size_bytes = 4;
// Additional filter state objects to log in :ref:`filter_state_objects
// <envoy_api_field_data.accesslog.v3.AccessLogCommon.filter_state_objects>`.
// <envoy_v3_api_field_data.accesslog.v3.AccessLogCommon.filter_state_objects>`.
// Logger will call `FilterState::Object::serializeAsProto` to serialize the filter state object.
repeated string filter_state_objects_to_log = 5;
}

@ -20,9 +20,9 @@ option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSIO
// [#protodoc-title: gRPC Access Log Service (ALS)]
// Configuration for the built-in *envoy.access_loggers.http_grpc*
// :ref:`AccessLog <envoy_api_msg_config.accesslog.v4alpha.AccessLog>`. This configuration will
// :ref:`AccessLog <envoy_v3_api_msg_config.accesslog.v3.AccessLog>`. This configuration will
// populate :ref:`StreamAccessLogsMessage.http_logs
// <envoy_api_field_service.accesslog.v4alpha.StreamAccessLogsMessage.http_logs>`.
// <envoy_v3_api_field_service.accesslog.v3.StreamAccessLogsMessage.http_logs>`.
// [#extension: envoy.access_loggers.http_grpc]
message HttpGrpcAccessLogConfig {
option (udpa.annotations.versioning).previous_message_type =
@ -31,15 +31,15 @@ message HttpGrpcAccessLogConfig {
CommonGrpcAccessLogConfig common_config = 1 [(validate.rules).message = {required: true}];
// Additional request headers to log in :ref:`HTTPRequestProperties.request_headers
// <envoy_api_field_data.accesslog.v3.HTTPRequestProperties.request_headers>`.
// <envoy_v3_api_field_data.accesslog.v3.HTTPRequestProperties.request_headers>`.
repeated string additional_request_headers_to_log = 2;
// Additional response headers to log in :ref:`HTTPResponseProperties.response_headers
// <envoy_api_field_data.accesslog.v3.HTTPResponseProperties.response_headers>`.
// <envoy_v3_api_field_data.accesslog.v3.HTTPResponseProperties.response_headers>`.
repeated string additional_response_headers_to_log = 3;
// Additional response trailers to log in :ref:`HTTPResponseProperties.response_trailers
// <envoy_api_field_data.accesslog.v3.HTTPResponseProperties.response_trailers>`.
// <envoy_v3_api_field_data.accesslog.v3.HTTPResponseProperties.response_trailers>`.
repeated string additional_response_trailers_to_log = 4;
}
@ -60,7 +60,7 @@ message CommonGrpcAccessLogConfig {
"envoy.extensions.access_loggers.grpc.v3.CommonGrpcAccessLogConfig";
// The friendly name of the access log to be returned in :ref:`StreamAccessLogsMessage.Identifier
// <envoy_api_msg_service.accesslog.v4alpha.StreamAccessLogsMessage.Identifier>`. This allows the
// <envoy_v3_api_msg_service.accesslog.v3.StreamAccessLogsMessage.Identifier>`. This allows the
// access log server to differentiate between different access logs coming from the same Envoy.
string log_name = 1 [(validate.rules).string = {min_len: 1}];
@ -83,7 +83,7 @@ message CommonGrpcAccessLogConfig {
google.protobuf.UInt32Value buffer_size_bytes = 4;
// Additional filter state objects to log in :ref:`filter_state_objects
// <envoy_api_field_data.accesslog.v3.AccessLogCommon.filter_state_objects>`.
// <envoy_v3_api_field_data.accesslog.v3.AccessLogCommon.filter_state_objects>`.
// Logger will call `FilterState::Object::serializeAsProto` to serialize the filter state object.
repeated string filter_state_objects_to_log = 5;
}

@ -18,7 +18,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: OpenTelemetry (gRPC) Access Log]
// Configuration for the built-in *envoy.access_loggers.open_telemetry*
// :ref:`AccessLog <envoy_api_msg_config.accesslog.v3.AccessLog>`. This configuration will
// :ref:`AccessLog <envoy_v3_api_msg_config.accesslog.v3.AccessLog>`. This configuration will
// populate `opentelemetry.proto.collector.v1.logs.ExportLogsServiceRequest.resource_logs <https://github.com/open-telemetry/opentelemetry-proto/blob/main/opentelemetry/proto/collector/logs/v1/logs_service.proto>`_.
// OpenTelemetry `Resource <https://github.com/open-telemetry/opentelemetry-proto/blob/main/opentelemetry/proto/resource/v1/resource.proto>`_
// attributes are filled with Envoy node info. In addition, the request start time is set in the

@ -19,7 +19,7 @@ option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSIO
// [#protodoc-title: OpenTelemetry (gRPC) Access Log]
// Configuration for the built-in *envoy.access_loggers.open_telemetry*
// :ref:`AccessLog <envoy_api_msg_config.accesslog.v4alpha.AccessLog>`. This configuration will
// :ref:`AccessLog <envoy_v3_api_msg_config.accesslog.v3.AccessLog>`. This configuration will
// populate `opentelemetry.proto.collector.v1.logs.ExportLogsServiceRequest.resource_logs <https://github.com/open-telemetry/opentelemetry-proto/blob/main/opentelemetry/proto/collector/logs/v1/logs_service.proto>`_.
// OpenTelemetry `Resource <https://github.com/open-telemetry/opentelemetry-proto/blob/main/opentelemetry/proto/resource/v1/resource.proto>`_
// attributes are filled with Envoy node info. In addition, the request start time is set in the

@ -15,7 +15,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Standard Streams Access loggers]
// [#extension: envoy.access_loggers.stream]
// Custom configuration for an :ref:`AccessLog <envoy_api_msg_config.accesslog.v3.AccessLog>`
// Custom configuration for an :ref:`AccessLog <envoy_v3_api_msg_config.accesslog.v3.AccessLog>`
// that writes log entries directly to the operating system's standard output.
message StdoutAccessLog {
oneof access_log_format {
@ -26,7 +26,7 @@ message StdoutAccessLog {
}
}
// Custom configuration for an :ref:`AccessLog <envoy_api_msg_config.accesslog.v3.AccessLog>`
// Custom configuration for an :ref:`AccessLog <envoy_v3_api_msg_config.accesslog.v3.AccessLog>`
// that writes log entries directly to the operating system's standard error.
message StderrAccessLog {
oneof access_log_format {

@ -16,7 +16,7 @@ option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSIO
// [#protodoc-title: Standard Streams Access loggers]
// [#extension: envoy.access_loggers.stream]
// Custom configuration for an :ref:`AccessLog <envoy_api_msg_config.accesslog.v4alpha.AccessLog>`
// Custom configuration for an :ref:`AccessLog <envoy_v3_api_msg_config.accesslog.v3.AccessLog>`
// that writes log entries directly to the operating system's standard output.
message StdoutAccessLog {
option (udpa.annotations.versioning).previous_message_type =
@ -30,7 +30,7 @@ message StdoutAccessLog {
}
}
// Custom configuration for an :ref:`AccessLog <envoy_api_msg_config.accesslog.v4alpha.AccessLog>`
// Custom configuration for an :ref:`AccessLog <envoy_v3_api_msg_config.accesslog.v3.AccessLog>`
// that writes log entries directly to the operating system's standard error.
message StderrAccessLog {
option (udpa.annotations.versioning).previous_message_type =

@ -14,7 +14,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Wasm access log]
// [#extension: envoy.access_loggers.wasm]
// Custom configuration for an :ref:`AccessLog <envoy_api_msg_config.accesslog.v3.AccessLog>`
// Custom configuration for an :ref:`AccessLog <envoy_v3_api_msg_config.accesslog.v3.AccessLog>`
// that calls into a WASM VM. Configures the built-in *envoy.access_loggers.wasm*
// AccessLog.
message WasmAccessLog {

@ -24,12 +24,12 @@ message ClusterConfig {
// The DNS cache configuration that the cluster will attach to. Note this configuration must
// match that of associated :ref:`dynamic forward proxy HTTP filter configuration
// <envoy_api_field_extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig.dns_cache_config>`.
// <envoy_v3_api_field_extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig.dns_cache_config>`.
common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1
[(validate.rules).message = {required: true}];
// If true allow the cluster configuration to disable the auto_sni and auto_san_validation options
// in the :ref:`cluster's upstream_http_protocol_options
// <envoy_api_field_config.cluster.v3.Cluster.upstream_http_protocol_options>`
// <envoy_v3_api_field_config.cluster.v3.Cluster.upstream_http_protocol_options>`
bool allow_insecure_cluster_options = 2;
}

@ -27,7 +27,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// updated at user-configured intervals.
//
// Additionally, if
// :ref:`enable_redirection<envoy_api_field_extensions.filters.network.redis_proxy.v3.RedisProxy.ConnPoolSettings.enable_redirection>`
// :ref:`enable_redirection<envoy_v3_api_field_extensions.filters.network.redis_proxy.v3.RedisProxy.ConnPoolSettings.enable_redirection>`
// is true, then moved and ask redirection errors from upstream servers will trigger a topology
// refresh when they exceed a user-configured error threshold.
//

@ -39,7 +39,7 @@ message AwsRequestSigning {
//
// Note: this rewrite affects both signing and host header forwarding. However, this
// option shouldn't be used with
// :ref:`HCM host rewrite <envoy_api_field_config.route.v3.RouteAction.host_rewrite_literal>` given that the
// :ref:`HCM host rewrite <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_literal>` given that the
// value set here would be used for signing whereas the value set in the HCM would be used
// for host header forwarding which is not the desired outcome.
string host_rewrite = 3;

@ -21,9 +21,9 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// incoming request.
//
// This is intended to be used with
// :ref:`ExtensionWithMatcher <envoy_api_msg_extensions.common.matching.v3.ExtensionWithMatcher>`
// :ref:`ExtensionWithMatcher <envoy_v3_api_msg_extensions.common.matching.v3.ExtensionWithMatcher>`
// where a match tree is specified that indicates (via
// :ref:`ExecuteFilterAction <envoy_api_msg_extensions.filters.http.composite.v3.ExecuteFilterAction>`)
// :ref:`ExecuteFilterAction <envoy_v3_api_msg_extensions.filters.http.composite.v3.ExecuteFilterAction>`)
// which filter configuration to create and delegate to.
//
message Composite {

@ -99,7 +99,7 @@ message Compressor {
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
// A compressor library to use for compression. Currently only
// :ref:`envoy.compression.gzip.compressor<envoy_api_msg_extensions.compression.gzip.compressor.v3.Gzip>`
// :ref:`envoy.compression.gzip.compressor<envoy_v3_api_msg_extensions.compression.gzip.compressor.v3.Gzip>`
// is included in Envoy.
// This field is ignored if used in the context of the gzip http-filter, but is mandatory otherwise.
// [#extension-category: envoy.compression.compressor]

@ -80,7 +80,7 @@ message Compressor {
"remove_accept_encoding_header", "runtime_enabled";
// A compressor library to use for compression. Currently only
// :ref:`envoy.compression.gzip.compressor<envoy_api_msg_extensions.compression.gzip.compressor.v3.Gzip>`
// :ref:`envoy.compression.gzip.compressor<envoy_v3_api_msg_extensions.compression.gzip.compressor.v3.Gzip>`
// is included in Envoy.
// This field is ignored if used in the context of the gzip http-filter, but is mandatory otherwise.
// [#extension-category: envoy.compression.compressor]

@ -25,13 +25,13 @@ message CsrfPolicy {
// Specifies the % of requests for which the CSRF filter is enabled.
//
// If :ref:`runtime_key <envoy_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is specified,
// If :ref:`runtime_key <envoy_v3_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is specified,
// Envoy will lookup the runtime key to get the percentage of requests to filter.
//
// .. note::
//
// This field defaults to 100/:ref:`HUNDRED
// <envoy_api_enum_type.v3.FractionalPercent.DenominatorType>`.
// <envoy_v3_api_enum_type.v3.FractionalPercent.DenominatorType>`.
config.core.v3.RuntimeFractionalPercent filter_enabled = 1
[(validate.rules).message = {required: true}];
@ -39,7 +39,7 @@ message CsrfPolicy {
//
// This is intended to be used when ``filter_enabled`` is off and will be ignored otherwise.
//
// If :ref:`runtime_key <envoy_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is specified,
// If :ref:`runtime_key <envoy_v3_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is specified,
// Envoy will lookup the runtime key to get the percentage of requests for which it will evaluate
// and track the request's *Origin* and *Destination* to determine if it's valid, but will not
// enforce any policies.

@ -25,13 +25,13 @@ message CsrfPolicy {
// Specifies the % of requests for which the CSRF filter is enabled.
//
// If :ref:`runtime_key <envoy_api_field_config.core.v4alpha.RuntimeFractionalPercent.runtime_key>` is specified,
// If :ref:`runtime_key <envoy_v3_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is specified,
// Envoy will lookup the runtime key to get the percentage of requests to filter.
//
// .. note::
//
// This field defaults to 100/:ref:`HUNDRED
// <envoy_api_enum_type.v3.FractionalPercent.DenominatorType>`.
// <envoy_v3_api_enum_type.v3.FractionalPercent.DenominatorType>`.
config.core.v4alpha.RuntimeFractionalPercent filter_enabled = 1
[(validate.rules).message = {required: true}];
@ -39,7 +39,7 @@ message CsrfPolicy {
//
// This is intended to be used when ``filter_enabled`` is off and will be ignored otherwise.
//
// If :ref:`runtime_key <envoy_api_field_config.core.v4alpha.RuntimeFractionalPercent.runtime_key>` is specified,
// If :ref:`runtime_key <envoy_v3_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is specified,
// Envoy will lookup the runtime key to get the percentage of requests for which it will evaluate
// and track the request's *Origin* and *Destination* to determine if it's valid, but will not
// enforce any policies.

@ -41,7 +41,7 @@ message Decompressor {
}
// A decompressor library to use for both request and response decompression. Currently only
// :ref:`envoy.compression.gzip.compressor<envoy_api_msg_extensions.compression.gzip.decompressor.v3.Gzip>`
// :ref:`envoy.compression.gzip.compressor<envoy_v3_api_msg_extensions.compression.gzip.decompressor.v3.Gzip>`
// is included in Envoy.
// [#extension-category: envoy.compression.decompressor]
config.core.v3.TypedExtensionConfig decompressor_library = 1

@ -24,7 +24,7 @@ message FilterConfig {
// The DNS cache configuration that the filter will attach to. Note this configuration must
// match that of associated :ref:`dynamic forward proxy cluster configuration
// <envoy_api_field_extensions.clusters.dynamic_forward_proxy.v3.ClusterConfig.dns_cache_config>`.
// <envoy_v3_api_field_extensions.clusters.dynamic_forward_proxy.v3.ClusterConfig.dns_cache_config>`.
common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1
[(validate.rules).message = {required: true}];
}
@ -41,7 +41,7 @@ message PerRouteConfig {
//
// Note: this rewrite affects both DNS lookup and host header forwarding. However, this
// option shouldn't be used with
// :ref:`HCM host rewrite <envoy_api_field_config.route.v3.RouteAction.host_rewrite_literal>` given that the
// :ref:`HCM host rewrite <envoy_v3_api_field_config.route.v3.RouteAction.host_rewrite_literal>` given that the
// value set here would be used for DNS lookups whereas the value set in the HCM would be used
// for host header forwarding which is not the desired outcome.
string host_rewrite_literal = 1;
@ -52,7 +52,7 @@ message PerRouteConfig {
//
// Note: this rewrite affects both DNS lookup and host header forwarding. However, this
// option shouldn't be used with
// :ref:`HCM host rewrite header <envoy_api_field_config.route.v3.RouteAction.auto_host_rewrite>`
// :ref:`HCM host rewrite header <envoy_v3_api_field_config.route.v3.RouteAction.auto_host_rewrite>`
// given that the value set here would be used for DNS lookups whereas the value set in the HCM
// would be used for host header forwarding which is not the desired outcome.
//

@ -85,7 +85,7 @@ message ExtAuthz {
// ext_authz service as an opaque *protobuf::Struct*.
//
// For example, if the *jwt_authn* filter is used and :ref:`payload_in_metadata
// <envoy_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.payload_in_metadata>` is set,
// <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.payload_in_metadata>` is set,
// then the following will pass the jwt payload to the authorization server.
//
// .. code-block:: yaml
@ -97,7 +97,7 @@ message ExtAuthz {
// Specifies if the filter is enabled.
//
// If :ref:`runtime_key <envoy_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is specified,
// If :ref:`runtime_key <envoy_v3_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is specified,
// Envoy will lookup the runtime key to get the percentage of requests to filter.
//
// If this field is not specified, the filter will be enabled for all requests.
@ -108,7 +108,7 @@ message ExtAuthz {
type.matcher.v3.MetadataMatcher filter_enabled_metadata = 14;
// Specifies whether to deny the requests, when the filter is disabled.
// If :ref:`runtime_key <envoy_api_field_config.core.v3.RuntimeFeatureFlag.runtime_key>` is specified,
// If :ref:`runtime_key <envoy_v3_api_field_config.core.v3.RuntimeFeatureFlag.runtime_key>` is specified,
// Envoy will lookup the runtime key to determine whether to deny request for
// filter protected path at filter disabling. If filter is disabled in
// typed_per_filter_config for the path, requests will not be denied.
@ -119,7 +119,7 @@ message ExtAuthz {
// Specifies if the peer certificate is sent to the external service.
//
// When this field is true, Envoy will include the peer X.509 certificate, if available, in the
// :ref:`certificate<envoy_api_field_service.auth.v3.AttributeContext.Peer.certificate>`.
// :ref:`certificate<envoy_v3_api_field_service.auth.v3.AttributeContext.Peer.certificate>`.
bool include_peer_certificate = 10;
// Optional additional prefix to use when emitting statistics. This allows to distinguish
@ -148,7 +148,7 @@ message BufferSettings {
// Sets the maximum size of a message body that the filter will hold in memory. Envoy will return
// *HTTP 413* and will *not* initiate the authorization process when buffer reaches the number
// set in this field. Note that this setting will have precedence over :ref:`failure_mode_allow
// <envoy_api_field_extensions.filters.http.ext_authz.v3.ExtAuthz.failure_mode_allow>`.
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.ExtAuthz.failure_mode_allow>`.
uint32 max_request_bytes = 1 [(validate.rules).uint32 = {gt: 0}];
// When this field is true, Envoy will buffer the message until *max_request_bytes* is reached.
@ -172,24 +172,24 @@ message BufferSettings {
//
// *On authorization request*, a list of allowed request headers may be supplied. See
// :ref:`allowed_headers
// <envoy_api_field_extensions.filters.http.ext_authz.v3.AuthorizationRequest.allowed_headers>`
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.AuthorizationRequest.allowed_headers>`
// for details. Additional headers metadata may be added to the authorization request. See
// :ref:`headers_to_add
// <envoy_api_field_extensions.filters.http.ext_authz.v3.AuthorizationRequest.headers_to_add>` for
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.AuthorizationRequest.headers_to_add>` for
// details.
//
// On authorization response status HTTP 200 OK, the filter will allow traffic to the upstream and
// additional headers metadata may be added to the original client request. See
// :ref:`allowed_upstream_headers
// <envoy_api_field_extensions.filters.http.ext_authz.v3.AuthorizationResponse.allowed_upstream_headers>`
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.AuthorizationResponse.allowed_upstream_headers>`
// for details. Additionally, the filter may add additional headers to the client's response. See
// :ref:`allowed_client_headers_on_success
// <envoy_api_field_extensions.filters.http.ext_authz.v3.AuthorizationResponse.allowed_client_headers_on_success>`
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.AuthorizationResponse.allowed_client_headers_on_success>`
// for details.
//
// On other authorization response statuses, the filter will not allow traffic. Additional headers
// metadata as well as body may be added to the client's response. See :ref:`allowed_client_headers
// <envoy_api_field_extensions.filters.http.ext_authz.v3.AuthorizationResponse.allowed_client_headers>`
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.AuthorizationResponse.allowed_client_headers>`
// for details.
// [#next-free-field: 9]
message HttpService {
@ -216,7 +216,7 @@ message AuthorizationRequest {
"envoy.config.filter.http.ext_authz.v2.AuthorizationRequest";
// Authorization request will include the client request headers that have a correspondent match
// in the :ref:`list <envoy_api_msg_type.matcher.v3.ListStringMatcher>`. Note that in addition to the
// in the :ref:`list <envoy_v3_api_msg_type.matcher.v3.ListStringMatcher>`. Note that in addition to the
// user's supplied matchers:
//
// 1. *Host*, *Method*, *Path* and *Content-Length* are automatically included to the list.
@ -224,7 +224,7 @@ message AuthorizationRequest {
// 2. *Content-Length* will be set to 0 and the request to the authorization service will not have
// a message body. However, the authorization request can include the buffered client request body
// (controlled by :ref:`with_request_body
// <envoy_api_field_extensions.filters.http.ext_authz.v3.ExtAuthz.with_request_body>` setting),
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.ExtAuthz.with_request_body>` setting),
// consequently the value of *Content-Length* of the authorization request reflects the size of
// its payload size.
//
@ -239,24 +239,24 @@ message AuthorizationResponse {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.filter.http.ext_authz.v2.AuthorizationResponse";
// When this :ref:`list <envoy_api_msg_type.matcher.v3.ListStringMatcher>` is set, authorization
// When this :ref:`list <envoy_v3_api_msg_type.matcher.v3.ListStringMatcher>` is set, authorization
// response headers that have a correspondent match will be added to the original client request.
// Note that coexistent headers will be overridden.
type.matcher.v3.ListStringMatcher allowed_upstream_headers = 1;
// When this :ref:`list <envoy_api_msg_type.matcher.v3.ListStringMatcher>` is set, authorization
// When this :ref:`list <envoy_v3_api_msg_type.matcher.v3.ListStringMatcher>` is set, authorization
// response headers that have a correspondent match will be added to the client's response. Note
// that coexistent headers will be appended.
type.matcher.v3.ListStringMatcher allowed_upstream_headers_to_append = 3;
// When this :ref:`list <envoy_api_msg_type.matcher.v3.ListStringMatcher>`. is set, authorization
// When this :ref:`list <envoy_v3_api_msg_type.matcher.v3.ListStringMatcher>`. is set, authorization
// response headers that have a correspondent match will be added to the client's response. Note
// that when this list is *not* set, all the authorization response headers, except *Authority
// (Host)* will be in the response to the client. When a header is included in this list, *Path*,
// *Status*, *Content-Length*, *WWWAuthenticate* and *Location* are automatically added.
type.matcher.v3.ListStringMatcher allowed_client_headers = 2;
// When this :ref:`list <envoy_api_msg_type.matcher.v3.ListStringMatcher>`. is set, authorization
// When this :ref:`list <envoy_v3_api_msg_type.matcher.v3.ListStringMatcher>`. is set, authorization
// response headers that have a correspondent match will be added to the client's response when
// the authorization response itself is successful, i.e. not failed or denied. When this list is
// *not* set, no additional headers will be added to the client's response on success.
@ -286,7 +286,7 @@ message CheckSettings {
"envoy.config.filter.http.ext_authz.v2.CheckSettings";
// Context extensions to set on the CheckRequest's
// :ref:`AttributeContext.context_extensions<envoy_api_field_service.auth.v3.AttributeContext.context_extensions>`
// :ref:`AttributeContext.context_extensions<envoy_v3_api_field_service.auth.v3.AttributeContext.context_extensions>`
//
// You can use this to provide extra context for the external authorization server on specific
// virtual hosts/routes. For example, adding a context extension on the virtual host level can
@ -299,10 +299,10 @@ message CheckSettings {
// .. note::
//
// These settings are only applied to a filter configured with a
// :ref:`grpc_service<envoy_api_field_extensions.filters.http.ext_authz.v3.ExtAuthz.grpc_service>`.
// :ref:`grpc_service<envoy_v3_api_field_extensions.filters.http.ext_authz.v3.ExtAuthz.grpc_service>`.
map<string, string> context_extensions = 1;
// When set to true, disable the configured :ref:`with_request_body
// <envoy_api_field_extensions.filters.http.ext_authz.v3.ExtAuthz.with_request_body>` for a route.
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.ExtAuthz.with_request_body>` for a route.
bool disable_request_body_buffering = 2;
}

@ -85,7 +85,7 @@ message ExtAuthz {
// ext_authz service as an opaque *protobuf::Struct*.
//
// For example, if the *jwt_authn* filter is used and :ref:`payload_in_metadata
// <envoy_api_field_extensions.filters.http.jwt_authn.v4alpha.JwtProvider.payload_in_metadata>` is set,
// <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.payload_in_metadata>` is set,
// then the following will pass the jwt payload to the authorization server.
//
// .. code-block:: yaml
@ -97,7 +97,7 @@ message ExtAuthz {
// Specifies if the filter is enabled.
//
// If :ref:`runtime_key <envoy_api_field_config.core.v4alpha.RuntimeFractionalPercent.runtime_key>` is specified,
// If :ref:`runtime_key <envoy_v3_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is specified,
// Envoy will lookup the runtime key to get the percentage of requests to filter.
//
// If this field is not specified, the filter will be enabled for all requests.
@ -108,7 +108,7 @@ message ExtAuthz {
type.matcher.v4alpha.MetadataMatcher filter_enabled_metadata = 14;
// Specifies whether to deny the requests, when the filter is disabled.
// If :ref:`runtime_key <envoy_api_field_config.core.v4alpha.RuntimeFeatureFlag.runtime_key>` is specified,
// If :ref:`runtime_key <envoy_v3_api_field_config.core.v3.RuntimeFeatureFlag.runtime_key>` is specified,
// Envoy will lookup the runtime key to determine whether to deny request for
// filter protected path at filter disabling. If filter is disabled in
// typed_per_filter_config for the path, requests will not be denied.
@ -119,7 +119,7 @@ message ExtAuthz {
// Specifies if the peer certificate is sent to the external service.
//
// When this field is true, Envoy will include the peer X.509 certificate, if available, in the
// :ref:`certificate<envoy_api_field_service.auth.v4alpha.AttributeContext.Peer.certificate>`.
// :ref:`certificate<envoy_v3_api_field_service.auth.v3.AttributeContext.Peer.certificate>`.
bool include_peer_certificate = 10;
// Optional additional prefix to use when emitting statistics. This allows to distinguish
@ -148,7 +148,7 @@ message BufferSettings {
// Sets the maximum size of a message body that the filter will hold in memory. Envoy will return
// *HTTP 413* and will *not* initiate the authorization process when buffer reaches the number
// set in this field. Note that this setting will have precedence over :ref:`failure_mode_allow
// <envoy_api_field_extensions.filters.http.ext_authz.v4alpha.ExtAuthz.failure_mode_allow>`.
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.ExtAuthz.failure_mode_allow>`.
uint32 max_request_bytes = 1 [(validate.rules).uint32 = {gt: 0}];
// When this field is true, Envoy will buffer the message until *max_request_bytes* is reached.
@ -172,24 +172,24 @@ message BufferSettings {
//
// *On authorization request*, a list of allowed request headers may be supplied. See
// :ref:`allowed_headers
// <envoy_api_field_extensions.filters.http.ext_authz.v4alpha.AuthorizationRequest.allowed_headers>`
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.AuthorizationRequest.allowed_headers>`
// for details. Additional headers metadata may be added to the authorization request. See
// :ref:`headers_to_add
// <envoy_api_field_extensions.filters.http.ext_authz.v4alpha.AuthorizationRequest.headers_to_add>` for
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.AuthorizationRequest.headers_to_add>` for
// details.
//
// On authorization response status HTTP 200 OK, the filter will allow traffic to the upstream and
// additional headers metadata may be added to the original client request. See
// :ref:`allowed_upstream_headers
// <envoy_api_field_extensions.filters.http.ext_authz.v4alpha.AuthorizationResponse.allowed_upstream_headers>`
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.AuthorizationResponse.allowed_upstream_headers>`
// for details. Additionally, the filter may add additional headers to the client's response. See
// :ref:`allowed_client_headers_on_success
// <envoy_api_field_extensions.filters.http.ext_authz.v4alpha.AuthorizationResponse.allowed_client_headers_on_success>`
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.AuthorizationResponse.allowed_client_headers_on_success>`
// for details.
//
// On other authorization response statuses, the filter will not allow traffic. Additional headers
// metadata as well as body may be added to the client's response. See :ref:`allowed_client_headers
// <envoy_api_field_extensions.filters.http.ext_authz.v4alpha.AuthorizationResponse.allowed_client_headers>`
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.AuthorizationResponse.allowed_client_headers>`
// for details.
// [#next-free-field: 9]
message HttpService {
@ -216,7 +216,7 @@ message AuthorizationRequest {
"envoy.extensions.filters.http.ext_authz.v3.AuthorizationRequest";
// Authorization request will include the client request headers that have a correspondent match
// in the :ref:`list <envoy_api_msg_type.matcher.v4alpha.ListStringMatcher>`. Note that in addition to the
// in the :ref:`list <envoy_v3_api_msg_type.matcher.v3.ListStringMatcher>`. Note that in addition to the
// user's supplied matchers:
//
// 1. *Host*, *Method*, *Path* and *Content-Length* are automatically included to the list.
@ -224,7 +224,7 @@ message AuthorizationRequest {
// 2. *Content-Length* will be set to 0 and the request to the authorization service will not have
// a message body. However, the authorization request can include the buffered client request body
// (controlled by :ref:`with_request_body
// <envoy_api_field_extensions.filters.http.ext_authz.v4alpha.ExtAuthz.with_request_body>` setting),
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.ExtAuthz.with_request_body>` setting),
// consequently the value of *Content-Length* of the authorization request reflects the size of
// its payload size.
//
@ -239,24 +239,24 @@ message AuthorizationResponse {
option (udpa.annotations.versioning).previous_message_type =
"envoy.extensions.filters.http.ext_authz.v3.AuthorizationResponse";
// When this :ref:`list <envoy_api_msg_type.matcher.v4alpha.ListStringMatcher>` is set, authorization
// When this :ref:`list <envoy_v3_api_msg_type.matcher.v3.ListStringMatcher>` is set, authorization
// response headers that have a correspondent match will be added to the original client request.
// Note that coexistent headers will be overridden.
type.matcher.v4alpha.ListStringMatcher allowed_upstream_headers = 1;
// When this :ref:`list <envoy_api_msg_type.matcher.v4alpha.ListStringMatcher>` is set, authorization
// When this :ref:`list <envoy_v3_api_msg_type.matcher.v3.ListStringMatcher>` is set, authorization
// response headers that have a correspondent match will be added to the client's response. Note
// that coexistent headers will be appended.
type.matcher.v4alpha.ListStringMatcher allowed_upstream_headers_to_append = 3;
// When this :ref:`list <envoy_api_msg_type.matcher.v4alpha.ListStringMatcher>`. is set, authorization
// When this :ref:`list <envoy_v3_api_msg_type.matcher.v3.ListStringMatcher>`. is set, authorization
// response headers that have a correspondent match will be added to the client's response. Note
// that when this list is *not* set, all the authorization response headers, except *Authority
// (Host)* will be in the response to the client. When a header is included in this list, *Path*,
// *Status*, *Content-Length*, *WWWAuthenticate* and *Location* are automatically added.
type.matcher.v4alpha.ListStringMatcher allowed_client_headers = 2;
// When this :ref:`list <envoy_api_msg_type.matcher.v4alpha.ListStringMatcher>`. is set, authorization
// When this :ref:`list <envoy_v3_api_msg_type.matcher.v3.ListStringMatcher>`. is set, authorization
// response headers that have a correspondent match will be added to the client's response when
// the authorization response itself is successful, i.e. not failed or denied. When this list is
// *not* set, no additional headers will be added to the client's response on success.
@ -286,7 +286,7 @@ message CheckSettings {
"envoy.extensions.filters.http.ext_authz.v3.CheckSettings";
// Context extensions to set on the CheckRequest's
// :ref:`AttributeContext.context_extensions<envoy_api_field_service.auth.v4alpha.AttributeContext.context_extensions>`
// :ref:`AttributeContext.context_extensions<envoy_v3_api_field_service.auth.v3.AttributeContext.context_extensions>`
//
// You can use this to provide extra context for the external authorization server on specific
// virtual hosts/routes. For example, adding a context extension on the virtual host level can
@ -299,10 +299,10 @@ message CheckSettings {
// .. note::
//
// These settings are only applied to a filter configured with a
// :ref:`grpc_service<envoy_api_field_extensions.filters.http.ext_authz.v4alpha.ExtAuthz.grpc_service>`.
// :ref:`grpc_service<envoy_v3_api_field_extensions.filters.http.ext_authz.v3.ExtAuthz.grpc_service>`.
map<string, string> context_extensions = 1;
// When set to true, disable the configured :ref:`with_request_body
// <envoy_api_field_extensions.filters.http.ext_authz.v4alpha.ExtAuthz.with_request_body>` for a route.
// <envoy_v3_api_field_extensions.filters.http.ext_authz.v3.ExtAuthz.with_request_body>` for a route.
bool disable_request_body_buffering = 2;
}

@ -76,7 +76,7 @@ message HTTPFault {
// injection filter can be applied selectively to requests that match a set of
// headers specified in the fault filter config. The chances of actual fault
// injection further depend on the value of the :ref:`percentage
// <envoy_api_field_extensions.filters.http.fault.v3.FaultAbort.percentage>` field.
// <envoy_v3_api_field_extensions.filters.http.fault.v3.FaultAbort.percentage>` field.
// The filter will check the request's headers against all the specified
// headers in the filter config. A match will happen if all the headers in the
// config are present in the request with the same values (or based on

@ -76,7 +76,7 @@ message HTTPFault {
// injection filter can be applied selectively to requests that match a set of
// headers specified in the fault filter config. The chances of actual fault
// injection further depend on the value of the :ref:`percentage
// <envoy_api_field_extensions.filters.http.fault.v4alpha.FaultAbort.percentage>` field.
// <envoy_v3_api_field_extensions.filters.http.fault.v3.FaultAbort.percentage>` field.
// The filter will check the request's headers against all the specified
// headers in the filter config. A match will happen if all the headers in the
// config are present in the request with the same values (or based on

@ -71,7 +71,7 @@ message GrpcJsonTranscoder {
message RequestValidationOptions {
// By default, a request that cannot be mapped to any specified gRPC
// :ref:`services <envoy_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.services>`
// :ref:`services <envoy_v3_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.services>`
// will pass-through this filter.
// When set to true, the request will be rejected with a ``HTTP 404 Not Found``.
bool reject_unknown_method = 1;
@ -81,9 +81,9 @@ message GrpcJsonTranscoder {
// When set to true, the request will be rejected with a ``HTTP 400 Bad Request``.
//
// The fields
// :ref:`ignore_unknown_query_parameters <envoy_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.ignore_unknown_query_parameters>`
// :ref:`ignore_unknown_query_parameters <envoy_v3_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.ignore_unknown_query_parameters>`
// and
// :ref:`ignored_query_parameters <envoy_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.ignored_query_parameters>`
// :ref:`ignored_query_parameters <envoy_v3_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.ignored_query_parameters>`
// have priority over this strict validation behavior.
bool reject_unknown_query_parameters = 2;
}
@ -111,7 +111,7 @@ message GrpcJsonTranscoder {
// By default, the filter will pass through requests that do not map to any specified services.
// If the list of services is empty, filter is considered disabled.
// However, this behavior changes if
// :ref:`reject_unknown_method <envoy_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.RequestValidationOptions.reject_unknown_method>`
// :ref:`reject_unknown_method <envoy_v3_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.RequestValidationOptions.reject_unknown_method>`
// is enabled.
repeated string services = 2;
@ -214,7 +214,7 @@ message GrpcJsonTranscoder {
// This spec is only applied when extracting variable with multiple segments.
// For example, in case of `/foo/{x=*}/bar/{y=prefix/*}/{z=**}` `x` variable is single segment and `y` and `z` are multiple segments.
// For a path with `/foo/first/bar/prefix/second/third/fourth`, `x=first`, `y=prefix/second`, `z=third/fourth`.
// If this setting is not specified, the value defaults to :ref:`ALL_CHARACTERS_EXCEPT_RESERVED<envoy_api_enum_value_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.UrlUnescapeSpec.ALL_CHARACTERS_EXCEPT_RESERVED>`.
// If this setting is not specified, the value defaults to :ref:`ALL_CHARACTERS_EXCEPT_RESERVED<envoy_v3_api_enum_value_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.UrlUnescapeSpec.ALL_CHARACTERS_EXCEPT_RESERVED>`.
UrlUnescapeSpec url_unescape_spec = 10 [(validate.rules).enum = {defined_only: true}];
// Configure the behavior when handling requests that cannot be transcoded.

@ -54,9 +54,9 @@ message FilterConfig {
// If true, the filter will gather a histogram for the request time of the upstream.
// It works with :ref:`stats_for_all_methods
// <envoy_api_field_extensions.filters.http.grpc_stats.v3.FilterConfig.stats_for_all_methods>`
// <envoy_v3_api_field_extensions.filters.http.grpc_stats.v3.FilterConfig.stats_for_all_methods>`
// and :ref:`individual_method_stats_allowlist
// <envoy_api_field_extensions.filters.http.grpc_stats.v3.FilterConfig.individual_method_stats_allowlist>` the same way
// <envoy_v3_api_field_extensions.filters.http.grpc_stats.v3.FilterConfig.individual_method_stats_allowlist>` the same way
// request_message_count and response_message_count works.
bool enable_upstream_stats = 4;
}

@ -47,7 +47,7 @@ message LocalRateLimit {
//
// .. note::
// In the current implementation the token bucket's :ref:`fill_interval
// <envoy_api_field_type.v3.TokenBucket.fill_interval>` must be >= 50ms to avoid too aggressive
// <envoy_v3_api_field_type.v3.TokenBucket.fill_interval>` must be >= 50ms to avoid too aggressive
// refills.
type.v3.TokenBucket token_bucket = 3;
@ -83,8 +83,8 @@ message LocalRateLimit {
// .. note::
//
// In the current implementation the descriptor's token bucket :ref:`fill_interval
// <envoy_api_field_type.v3.TokenBucket.fill_interval>` must be a multiple
// global :ref:`token bucket's<envoy_api_field_extensions.filters.http.local_ratelimit.v3.LocalRateLimit.token_bucket>` fill interval.
// <envoy_v3_api_field_type.v3.TokenBucket.fill_interval>` must be a multiple
// global :ref:`token bucket's<envoy_v3_api_field_extensions.filters.http.local_ratelimit.v3.LocalRateLimit.token_bucket>` fill interval.
//
// The descriptors must match verbatim for rate limiting to apply. There is no partial
// match by a subset of descriptor entries in the current implementation.

@ -22,7 +22,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// External Authorization filter calls out to an external service over the
// gRPC Authorization API defined by
// :ref:`CheckRequest <envoy_api_msg_service.auth.v3.CheckRequest>`.
// :ref:`CheckRequest <envoy_v3_api_msg_service.auth.v3.CheckRequest>`.
// A failed check will cause this filter to close the TCP connection.
// [#next-free-field: 7]
message ExtAuthz {
@ -45,7 +45,7 @@ message ExtAuthz {
// Specifies if the peer certificate is sent to the external service.
//
// When this field is true, Envoy will include the peer X.509 certificate, if available, in the
// :ref:`certificate<envoy_api_field_service.auth.v3.AttributeContext.Peer.certificate>`.
// :ref:`certificate<envoy_v3_api_field_service.auth.v3.AttributeContext.Peer.certificate>`.
bool include_peer_certificate = 4;
// API version for ext_authz transport protocol. This describes the ext_authz gRPC endpoint and

@ -22,7 +22,7 @@ option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSIO
// External Authorization filter calls out to an external service over the
// gRPC Authorization API defined by
// :ref:`CheckRequest <envoy_api_msg_service.auth.v4alpha.CheckRequest>`.
// :ref:`CheckRequest <envoy_v3_api_msg_service.auth.v3.CheckRequest>`.
// A failed check will cause this filter to close the TCP connection.
// [#next-free-field: 7]
message ExtAuthz {
@ -45,7 +45,7 @@ message ExtAuthz {
// Specifies if the peer certificate is sent to the external service.
//
// When this field is true, Envoy will include the peer X.509 certificate, if available, in the
// :ref:`certificate<envoy_api_field_service.auth.v4alpha.AttributeContext.Peer.certificate>`.
// :ref:`certificate<envoy_v3_api_field_service.auth.v3.AttributeContext.Peer.certificate>`.
bool include_peer_certificate = 4;
// API version for ext_authz transport protocol. This describes the ext_authz gRPC endpoint and

@ -234,7 +234,7 @@ message HttpConnectionManager {
// Determines if upgrades are enabled or disabled by default. Defaults to true.
// This can be overridden on a per-route basis with :ref:`cluster
// <envoy_api_field_config.route.v3.RouteAction.upgrade_configs>` as documented in the
// <envoy_v3_api_field_config.route.v3.RouteAction.upgrade_configs>` as documented in the
// :ref:`upgrade documentation <arch_overview_upgrades>`.
google.protobuf.BoolValue enabled = 3;
}
@ -243,8 +243,8 @@ message HttpConnectionManager {
// before any processing of requests by HTTP filters, routing, and matching. Only the normalized
// path will be visible internally if a transformation is enabled. Any path rewrites that the
// router performs (e.g. :ref:`regex_rewrite
// <envoy_api_field_config.route.v3.RouteAction.regex_rewrite>` or :ref:`prefix_rewrite
// <envoy_api_field_config.route.v3.RouteAction.prefix_rewrite>`) will apply to the *:path* header
// <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>` or :ref:`prefix_rewrite
// <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`) will apply to the *:path* header
// destined for the upstream.
//
// Note: access logging and tracing will show the original *:path* header.
@ -252,7 +252,7 @@ message HttpConnectionManager {
// [#not-implemented-hide:] Normalization applies internally before any processing of requests by
// HTTP filters, routing, and matching *and* will affect the forwarded *:path* header. Defaults
// to :ref:`NormalizePathRFC3986
// <envoy_api_msg_type.http.v3.PathTransformation.Operation.NormalizePathRFC3986>`. When not
// <envoy_v3_api_msg_type.http.v3.PathTransformation.Operation.NormalizePathRFC3986>`. When not
// specified, this value may be overridden by the runtime variable
// :ref:`http_connection_manager.normalize_path<config_http_conn_man_runtime_normalize_path>`.
// Envoy will respond with 400 to paths that are malformed (e.g. for paths that fail RFC 3986
@ -310,7 +310,7 @@ message HttpConnectionManager {
// Presence of the object defines whether the connection manager
// emits :ref:`tracing <arch_overview_tracing>` data to the :ref:`configured tracing provider
// <envoy_api_msg_config.trace.v3.Tracing>`.
// <envoy_v3_api_msg_config.trace.v3.Tracing>`.
Tracing tracing = 7;
// Additional settings for HTTP requests handled by the connection manager. These will be
@ -354,10 +354,10 @@ message HttpConnectionManager {
//
// This idle timeout applies to new streams and is overridable by the
// :ref:`route-level idle_timeout
// <envoy_api_field_config.route.v3.RouteAction.idle_timeout>`. Even on a stream in
// <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>`. Even on a stream in
// which the override applies, prior to receipt of the initial request
// headers, the :ref:`stream_idle_timeout
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
// applies. 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
@ -370,12 +370,12 @@ message HttpConnectionManager {
// data has been proxied within available flow control windows. If the timeout is hit in this
// case, the :ref:`tx_flush_timeout <config_http_conn_man_stats_per_codec>` counter will be
// incremented. Note that :ref:`max_stream_duration
// <envoy_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` does not apply to
// <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` does not apply to
// this corner case.
//
// 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_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
// :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
//
// Note that it is possible to idle timeout even if the wire traffic for a stream is non-idle, due
// to the granularity of events presented to the connection manager. For example, while receiving
@ -477,7 +477,7 @@ message HttpConnectionManager {
// :ref:`config_http_conn_man_headers_x-forwarded-for` HTTP header. This may be used in
// conjunction with HTTP filters that explicitly manipulate XFF after the HTTP connection manager
// has mutated the request headers. While :ref:`use_remote_address
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.use_remote_address>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.use_remote_address>`
// will also suppress XFF addition, it has consequences for logging and other
// Envoy uses of the remote address, so *skip_xff_append* should be used
// when only an elision of XFF addition is intended.
@ -510,7 +510,7 @@ message HttpConnectionManager {
[(validate.rules).enum = {defined_only: true}];
// This field is valid only when :ref:`forward_client_cert_details
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.forward_client_cert_details>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.forward_client_cert_details>`
// is APPEND_FORWARD or SANITIZE_SET and the client connection is mTLS. It specifies the fields in
// the client certificate to be forwarded. Note that in the
// :ref:`config_http_conn_man_headers_x-forwarded-client-cert` header, *Hash* is always set, and
@ -526,7 +526,7 @@ message HttpConnectionManager {
// If
// :ref:`use_remote_address
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.use_remote_address>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.use_remote_address>`
// is true and represent_ipv4_remote_address_as_ipv4_mapped_ipv6 is true and the remote address is
// an IPv4 address, the address will be mapped to IPv6 before it is appended to *x-forwarded-for*.
// This is useful for testing compatibility of upstream services that parse the header value. For
@ -585,12 +585,12 @@ message HttpConnectionManager {
LocalReplyConfig local_reply_config = 38;
// Determines if the port part should be removed from host/authority header before any processing
// of request by HTTP filters or routing. The port would be removed only if it is equal to the :ref:`listener's<envoy_api_field_config.listener.v3.Listener.address>`
// of request by HTTP filters or routing. The port would be removed only if it is equal to the :ref:`listener's<envoy_v3_api_field_config.listener.v3.Listener.address>`
// local port. This affects the upstream host header unless the method is
// CONNECT in which case if no filter adds a port the original port will be restored before headers are
// sent upstream.
// Without setting this option, incoming requests with host `example:443` will not match against
// route with :ref:`domains<envoy_api_field_config.route.v3.VirtualHost.domains>` match set to `example`. Defaults to `false`. Note that port removal is not part
// route with :ref:`domains<envoy_v3_api_field_config.route.v3.VirtualHost.domains>` match set to `example`. Defaults to `false`. Note that port removal is not part
// of `HTTP spec <https://tools.ietf.org/html/rfc3986>`_ and is provided for convenience.
// Only one of `strip_matching_host_port` or `strip_any_host_port` can be set.
bool strip_matching_host_port = 39
@ -602,7 +602,7 @@ message HttpConnectionManager {
// This affects the upstream host header unless the method is CONNECT in
// which case if no filter adds a port the original port will be restored before headers are sent upstream.
// Without setting this option, incoming requests with host `example:443` will not match against
// route with :ref:`domains<envoy_api_field_config.route.v3.VirtualHost.domains>` match set to `example`. Defaults to `false`. Note that port removal is not part
// route with :ref:`domains<envoy_v3_api_field_config.route.v3.VirtualHost.domains>` match set to `example`. Defaults to `false`. Note that port removal is not part
// of `HTTP spec <https://tools.ietf.org/html/rfc3986>`_ and is provided for convenience.
// Only one of `strip_matching_host_port` or `strip_any_host_port` can be set.
bool strip_any_host_port = 42;
@ -632,7 +632,7 @@ message HttpConnectionManager {
// whether transformations affect the forwarded *:path* header. RFC 3986 path
// normalization is enabled by default and the default policy is that the
// normalized header will be forwarded. See :ref:`PathNormalizationOptions
// <envoy_api_msg_extensions.filters.network.http_connection_manager.v3.PathNormalizationOptions>`
// <envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.PathNormalizationOptions>`
// for details.
PathNormalizationOptions path_normalization_options = 43;
}
@ -736,14 +736,14 @@ message ScopedRoutes {
"envoy.config.filter.network.http_connection_manager.v2.ScopedRoutes";
// Specifies the mechanism for constructing "scope keys" based on HTTP request attributes. These
// keys are matched against a set of :ref:`Key<envoy_api_msg_config.route.v3.ScopedRouteConfiguration.Key>`
// objects assembled from :ref:`ScopedRouteConfiguration<envoy_api_msg_config.route.v3.ScopedRouteConfiguration>`
// keys are matched against a set of :ref:`Key<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration.Key>`
// objects assembled from :ref:`ScopedRouteConfiguration<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration>`
// messages distributed via SRDS (the Scoped Route Discovery Service) or assigned statically via
// :ref:`scoped_route_configurations_list<envoy_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scoped_route_configurations_list>`.
// :ref:`scoped_route_configurations_list<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scoped_route_configurations_list>`.
//
// Upon receiving a request's headers, the Router will build a key using the algorithm specified
// by this message. This key will be used to look up the routing table (i.e., the
// :ref:`RouteConfiguration<envoy_api_msg_config.route.v3.RouteConfiguration>`) to use for the request.
// :ref:`RouteConfiguration<envoy_v3_api_msg_config.route.v3.RouteConfiguration>`) to use for the request.
message ScopeKeyBuilder {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.filter.network.http_connection_manager.v2.ScopedRoutes.ScopeKeyBuilder";
@ -826,7 +826,7 @@ message ScopedRoutes {
}
// The final(built) scope key consists of the ordered union of these fragments, which are compared in order with the
// fragments of a :ref:`ScopedRouteConfiguration<envoy_api_msg_config.route.v3.ScopedRouteConfiguration>`.
// fragments of a :ref:`ScopedRouteConfiguration<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration>`.
// A missing fragment during comparison will make the key invalid, i.e., the computed key doesn't match any key.
repeated FragmentBuilder fragments = 1 [(validate.rules).repeated = {min_items: 1}];
}
@ -848,14 +848,14 @@ message ScopedRoutes {
// The set of routing scopes corresponding to the HCM. A scope is assigned to a request by
// matching a key constructed from the request's attributes according to the algorithm specified
// by the
// :ref:`ScopeKeyBuilder<envoy_api_msg_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder>`
// :ref:`ScopeKeyBuilder<envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder>`
// in this message.
ScopedRouteConfigurationsList scoped_route_configurations_list = 4;
// The set of routing scopes associated with the HCM will be dynamically loaded via the SRDS
// API. A scope is assigned to a request by matching a key constructed from the request's
// attributes according to the algorithm specified by the
// :ref:`ScopeKeyBuilder<envoy_api_msg_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder>`
// :ref:`ScopeKeyBuilder<envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder>`
// in this message.
ScopedRds scoped_rds = 5;
}
@ -893,7 +893,7 @@ message HttpFilter {
// filters for further documentation.
//
// To support configuring a :ref:`match tree <arch_overview_matching_api>`, use an
// :ref:`ExtensionWithMatcher <envoy_api_msg_extensions.common.matching.v3.ExtensionWithMatcher>`
// :ref:`ExtensionWithMatcher <envoy_v3_api_msg_extensions.common.matching.v3.ExtensionWithMatcher>`
// with the desired HTTP filter.
// [#extension-category: envoy.filters.http]
google.protobuf.Any typed_config = 4;
@ -903,7 +903,7 @@ message HttpFilter {
// Extension configs delivered through this mechanism are not expected to require warming (see https://github.com/envoyproxy/envoy/issues/12061).
//
// To support configuring a :ref:`match tree <arch_overview_matching_api>`, use an
// :ref:`ExtensionWithMatcher <envoy_api_msg_extensions.common.matching.v3.ExtensionWithMatcher>`
// :ref:`ExtensionWithMatcher <envoy_v3_api_msg_extensions.common.matching.v3.ExtensionWithMatcher>`
// with the desired HTTP filter. This works for both the default filter configuration as well
// as for filters provided via the API.
config.core.v3.ExtensionConfigSource config_discovery = 5;

@ -233,7 +233,7 @@ message HttpConnectionManager {
// Determines if upgrades are enabled or disabled by default. Defaults to true.
// This can be overridden on a per-route basis with :ref:`cluster
// <envoy_api_field_config.route.v4alpha.RouteAction.upgrade_configs>` as documented in the
// <envoy_v3_api_field_config.route.v3.RouteAction.upgrade_configs>` as documented in the
// :ref:`upgrade documentation <arch_overview_upgrades>`.
google.protobuf.BoolValue enabled = 3;
}
@ -242,8 +242,8 @@ message HttpConnectionManager {
// before any processing of requests by HTTP filters, routing, and matching. Only the normalized
// path will be visible internally if a transformation is enabled. Any path rewrites that the
// router performs (e.g. :ref:`regex_rewrite
// <envoy_api_field_config.route.v4alpha.RouteAction.regex_rewrite>` or :ref:`prefix_rewrite
// <envoy_api_field_config.route.v4alpha.RouteAction.prefix_rewrite>`) will apply to the *:path* header
// <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>` or :ref:`prefix_rewrite
// <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`) will apply to the *:path* header
// destined for the upstream.
//
// Note: access logging and tracing will show the original *:path* header.
@ -255,7 +255,7 @@ message HttpConnectionManager {
// [#not-implemented-hide:] Normalization applies internally before any processing of requests by
// HTTP filters, routing, and matching *and* will affect the forwarded *:path* header. Defaults
// to :ref:`NormalizePathRFC3986
// <envoy_api_msg_type.http.v3.PathTransformation.Operation.NormalizePathRFC3986>`. When not
// <envoy_v3_api_msg_type.http.v3.PathTransformation.Operation.NormalizePathRFC3986>`. When not
// specified, this value may be overridden by the runtime variable
// :ref:`http_connection_manager.normalize_path<config_http_conn_man_runtime_normalize_path>`.
// Envoy will respond with 400 to paths that are malformed (e.g. for paths that fail RFC 3986
@ -313,7 +313,7 @@ message HttpConnectionManager {
// Presence of the object defines whether the connection manager
// emits :ref:`tracing <arch_overview_tracing>` data to the :ref:`configured tracing provider
// <envoy_api_msg_config.trace.v4alpha.Tracing>`.
// <envoy_v3_api_msg_config.trace.v3.Tracing>`.
Tracing tracing = 7;
// Additional settings for HTTP requests handled by the connection manager. These will be
@ -357,10 +357,10 @@ message HttpConnectionManager {
//
// This idle timeout applies to new streams and is overridable by the
// :ref:`route-level idle_timeout
// <envoy_api_field_config.route.v4alpha.RouteAction.idle_timeout>`. Even on a stream in
// <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>`. Even on a stream in
// which the override applies, prior to receipt of the initial request
// headers, the :ref:`stream_idle_timeout
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.stream_idle_timeout>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
// applies. 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
@ -373,12 +373,12 @@ message HttpConnectionManager {
// data has been proxied within available flow control windows. If the timeout is hit in this
// case, the :ref:`tx_flush_timeout <config_http_conn_man_stats_per_codec>` counter will be
// incremented. Note that :ref:`max_stream_duration
// <envoy_api_field_config.core.v4alpha.HttpProtocolOptions.max_stream_duration>` does not apply to
// <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` does not apply to
// this corner case.
//
// 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_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
// :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
//
// Note that it is possible to idle timeout even if the wire traffic for a stream is non-idle, due
// to the granularity of events presented to the connection manager. For example, while receiving
@ -480,7 +480,7 @@ message HttpConnectionManager {
// :ref:`config_http_conn_man_headers_x-forwarded-for` HTTP header. This may be used in
// conjunction with HTTP filters that explicitly manipulate XFF after the HTTP connection manager
// has mutated the request headers. While :ref:`use_remote_address
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.use_remote_address>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.use_remote_address>`
// will also suppress XFF addition, it has consequences for logging and other
// Envoy uses of the remote address, so *skip_xff_append* should be used
// when only an elision of XFF addition is intended.
@ -513,7 +513,7 @@ message HttpConnectionManager {
[(validate.rules).enum = {defined_only: true}];
// This field is valid only when :ref:`forward_client_cert_details
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.forward_client_cert_details>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.forward_client_cert_details>`
// is APPEND_FORWARD or SANITIZE_SET and the client connection is mTLS. It specifies the fields in
// the client certificate to be forwarded. Note that in the
// :ref:`config_http_conn_man_headers_x-forwarded-client-cert` header, *Hash* is always set, and
@ -529,7 +529,7 @@ message HttpConnectionManager {
// If
// :ref:`use_remote_address
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.use_remote_address>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.use_remote_address>`
// is true and represent_ipv4_remote_address_as_ipv4_mapped_ipv6 is true and the remote address is
// an IPv4 address, the address will be mapped to IPv6 before it is appended to *x-forwarded-for*.
// This is useful for testing compatibility of upstream services that parse the header value. For
@ -589,12 +589,12 @@ message HttpConnectionManager {
oneof strip_port_mode {
// Determines if the port part should be removed from host/authority header before any processing
// of request by HTTP filters or routing. The port would be removed only if it is equal to the :ref:`listener's<envoy_api_field_config.listener.v4alpha.Listener.address>`
// of request by HTTP filters or routing. The port would be removed only if it is equal to the :ref:`listener's<envoy_v3_api_field_config.listener.v3.Listener.address>`
// local port. This affects the upstream host header unless the method is
// CONNECT in which case if no filter adds a port the original port will be restored before headers are
// sent upstream.
// Without setting this option, incoming requests with host `example:443` will not match against
// route with :ref:`domains<envoy_api_field_config.route.v4alpha.VirtualHost.domains>` match set to `example`. Defaults to `false`. Note that port removal is not part
// route with :ref:`domains<envoy_v3_api_field_config.route.v3.VirtualHost.domains>` match set to `example`. Defaults to `false`. Note that port removal is not part
// of `HTTP spec <https://tools.ietf.org/html/rfc3986>`_ and is provided for convenience.
// Only one of `strip_matching_host_port` or `strip_any_host_port` can be set.
bool strip_matching_host_port = 39;
@ -604,7 +604,7 @@ message HttpConnectionManager {
// This affects the upstream host header unless the method is CONNECT in
// which case if no filter adds a port the original port will be restored before headers are sent upstream.
// Without setting this option, incoming requests with host `example:443` will not match against
// route with :ref:`domains<envoy_api_field_config.route.v4alpha.VirtualHost.domains>` match set to `example`. Defaults to `false`. Note that port removal is not part
// route with :ref:`domains<envoy_v3_api_field_config.route.v3.VirtualHost.domains>` match set to `example`. Defaults to `false`. Note that port removal is not part
// of `HTTP spec <https://tools.ietf.org/html/rfc3986>`_ and is provided for convenience.
// Only one of `strip_matching_host_port` or `strip_any_host_port` can be set.
bool strip_any_host_port = 42;
@ -634,7 +634,7 @@ message HttpConnectionManager {
// whether transformations affect the forwarded *:path* header. RFC 3986 path
// normalization is enabled by default and the default policy is that the
// normalized header will be forwarded. See :ref:`PathNormalizationOptions
// <envoy_api_msg_extensions.filters.network.http_connection_manager.v3.PathNormalizationOptions>`
// <envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.PathNormalizationOptions>`
// for details.
PathNormalizationOptions path_normalization_options = 43;
}
@ -744,14 +744,14 @@ message ScopedRoutes {
"envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes";
// Specifies the mechanism for constructing "scope keys" based on HTTP request attributes. These
// keys are matched against a set of :ref:`Key<envoy_api_msg_config.route.v4alpha.ScopedRouteConfiguration.Key>`
// objects assembled from :ref:`ScopedRouteConfiguration<envoy_api_msg_config.route.v4alpha.ScopedRouteConfiguration>`
// keys are matched against a set of :ref:`Key<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration.Key>`
// objects assembled from :ref:`ScopedRouteConfiguration<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration>`
// messages distributed via SRDS (the Scoped Route Discovery Service) or assigned statically via
// :ref:`scoped_route_configurations_list<envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.ScopedRoutes.scoped_route_configurations_list>`.
// :ref:`scoped_route_configurations_list<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scoped_route_configurations_list>`.
//
// Upon receiving a request's headers, the Router will build a key using the algorithm specified
// by this message. This key will be used to look up the routing table (i.e., the
// :ref:`RouteConfiguration<envoy_api_msg_config.route.v4alpha.RouteConfiguration>`) to use for the request.
// :ref:`RouteConfiguration<envoy_v3_api_msg_config.route.v3.RouteConfiguration>`) to use for the request.
message ScopeKeyBuilder {
option (udpa.annotations.versioning).previous_message_type =
"envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder";
@ -834,7 +834,7 @@ message ScopedRoutes {
}
// The final(built) scope key consists of the ordered union of these fragments, which are compared in order with the
// fragments of a :ref:`ScopedRouteConfiguration<envoy_api_msg_config.route.v4alpha.ScopedRouteConfiguration>`.
// fragments of a :ref:`ScopedRouteConfiguration<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration>`.
// A missing fragment during comparison will make the key invalid, i.e., the computed key doesn't match any key.
repeated FragmentBuilder fragments = 1 [(validate.rules).repeated = {min_items: 1}];
}
@ -857,14 +857,14 @@ message ScopedRoutes {
// The set of routing scopes corresponding to the HCM. A scope is assigned to a request by
// matching a key constructed from the request's attributes according to the algorithm specified
// by the
// :ref:`ScopeKeyBuilder<envoy_api_msg_extensions.filters.network.http_connection_manager.v4alpha.ScopedRoutes.ScopeKeyBuilder>`
// :ref:`ScopeKeyBuilder<envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder>`
// in this message.
ScopedRouteConfigurationsList scoped_route_configurations_list = 4;
// The set of routing scopes associated with the HCM will be dynamically loaded via the SRDS
// API. A scope is assigned to a request by matching a key constructed from the request's
// attributes according to the algorithm specified by the
// :ref:`ScopeKeyBuilder<envoy_api_msg_extensions.filters.network.http_connection_manager.v4alpha.ScopedRoutes.ScopeKeyBuilder>`
// :ref:`ScopeKeyBuilder<envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder>`
// in this message.
ScopedRds scoped_rds = 5;
}
@ -902,7 +902,7 @@ message HttpFilter {
// filters for further documentation.
//
// To support configuring a :ref:`match tree <arch_overview_matching_api>`, use an
// :ref:`ExtensionWithMatcher <envoy_api_msg_extensions.common.matching.v4alpha.ExtensionWithMatcher>`
// :ref:`ExtensionWithMatcher <envoy_v3_api_msg_extensions.common.matching.v3.ExtensionWithMatcher>`
// with the desired HTTP filter.
// [#extension-category: envoy.filters.http]
google.protobuf.Any typed_config = 4;
@ -912,7 +912,7 @@ message HttpFilter {
// Extension configs delivered through this mechanism are not expected to require warming (see https://github.com/envoyproxy/envoy/issues/12061).
//
// To support configuring a :ref:`match tree <arch_overview_matching_api>`, use an
// :ref:`ExtensionWithMatcher <envoy_api_msg_extensions.common.matching.v4alpha.ExtensionWithMatcher>`
// :ref:`ExtensionWithMatcher <envoy_v3_api_msg_extensions.common.matching.v3.ExtensionWithMatcher>`
// with the desired HTTP filter. This works for both the default filter configuration as well
// as for filters provided via the API.
config.core.v4alpha.ExtensionConfigSource config_discovery = 5;

@ -36,7 +36,7 @@ message LocalRateLimit {
//
// .. note::
// In the current implementation the token bucket's :ref:`fill_interval
// <envoy_api_field_type.v3.TokenBucket.fill_interval>` must be >= 50ms to avoid too aggressive
// <envoy_v3_api_field_type.v3.TokenBucket.fill_interval>` must be >= 50ms to avoid too aggressive
// refills.
type.v3.TokenBucket token_bucket = 2 [(validate.rules).message = {required: true}];

@ -33,7 +33,7 @@ message PostgresProxy {
// terminate SSL session, but will pass all the packets to the upstream server.
// If the value is true, the Postgres proxy filter will try to terminate SSL
// session. In order to do that, the filter chain must use :ref:`starttls transport socket
// <envoy_api_msg_extensions.transport_sockets.starttls.v3.StartTlsConfig>`.
// <envoy_v3_api_msg_extensions.transport_sockets.starttls.v3.StartTlsConfig>`.
// If the filter does not manage to terminate the SSL session, it will close the connection from the client.
// Refer to official documentation for details
// `SSL Session Encryption Message Flow <https://www.postgresql.org/docs/current/protocol-flow.html#id-1.10.5.7.11>`_.

@ -242,7 +242,7 @@ message RedisProxy {
// * ``get abc:users`` would retrieve the key 'abc:users' from cluster_b.
// * ``get ab:users`` would retrieve the key 'ab:users' from cluster_a.
// * ``get z:users`` would return a NoUpstreamHost error. A :ref:`catch-all
// route<envoy_api_field_extensions.filters.network.redis_proxy.v3.RedisProxy.PrefixRoutes.catch_all_route>`
// route<envoy_v3_api_field_extensions.filters.network.redis_proxy.v3.RedisProxy.PrefixRoutes.catch_all_route>`
// would have retrieved the key from that cluster instead.
//
// See the :ref:`configuration section
@ -303,7 +303,7 @@ message RedisProxy {
}
// RedisProtocolOptions specifies Redis upstream protocol options. This object is used in
// :ref:`typed_extension_protocol_options<envoy_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`,
// :ref:`typed_extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`,
// keyed by the name `envoy.filters.network.redis_proxy`.
message RedisProtocolOptions {
option (udpa.annotations.versioning).previous_message_type =

@ -25,7 +25,7 @@ message FilterConfig {
// The DNS cache configuration that the filter will attach to. Note this
// configuration must match that of associated :ref:`dynamic forward proxy
// cluster configuration
// <envoy_api_field_extensions.clusters.dynamic_forward_proxy.v3.ClusterConfig.dns_cache_config>`.
// <envoy_v3_api_field_extensions.clusters.dynamic_forward_proxy.v3.ClusterConfig.dns_cache_config>`.
common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1
[(validate.rules).message = {required: true}];

@ -50,7 +50,7 @@ message TcpProxy {
// in the upstream cluster with metadata matching what is set in this field will be considered
// for load balancing. Note that this will be merged with what's provided in
// :ref:`TcpProxy.metadata_match
// <envoy_api_field_extensions.filters.network.tcp_proxy.v3.TcpProxy.metadata_match>`, with values
// <envoy_v3_api_field_extensions.filters.network.tcp_proxy.v3.TcpProxy.metadata_match>`, with values
// here taking precedence. The filter name should be specified as *envoy.lb*.
config.core.v3.Metadata metadata_match = 3;
}

@ -50,7 +50,7 @@ message TcpProxy {
// in the upstream cluster with metadata matching what is set in this field will be considered
// for load balancing. Note that this will be merged with what's provided in
// :ref:`TcpProxy.metadata_match
// <envoy_api_field_extensions.filters.network.tcp_proxy.v4alpha.TcpProxy.metadata_match>`, with values
// <envoy_v3_api_field_extensions.filters.network.tcp_proxy.v3.TcpProxy.metadata_match>`, with values
// here taking precedence. The filter name should be specified as *envoy.lb*.
config.core.v4alpha.Metadata metadata_match = 3;
}

@ -29,7 +29,7 @@ message RateLimit {
// Specifies the rate limit configuration stage. Each configured rate limit filter performs a
// rate limit check using descriptors configured in the
// :ref:`envoy_api_msg_extensions.filters.network.thrift_proxy.v3.RouteAction` for the request.
// :ref:`envoy_v3_api_msg_extensions.filters.network.thrift_proxy.v3.RouteAction` for the request.
// Only those entries with a matching stage number are used for a given filter. If not set, the
// default stage number is 0.
//

@ -29,7 +29,7 @@ message RateLimit {
// Specifies the rate limit configuration stage. Each configured rate limit filter performs a
// rate limit check using descriptors configured in the
// :ref:`envoy_api_msg_extensions.filters.network.thrift_proxy.v4alpha.RouteAction` for the request.
// :ref:`envoy_v3_api_msg_extensions.filters.network.thrift_proxy.v3.RouteAction` for the request.
// Only those entries with a matching stage number are used for a given filter. If not set, the
// default stage number is 0.
//

@ -60,17 +60,17 @@ message RouteMatch {
}
// Inverts whatever matching is done in the :ref:`method_name
// <envoy_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.method_name>` or
// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.method_name>` or
// :ref:`service_name
// <envoy_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.service_name>` fields.
// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.service_name>` fields.
// Cannot be combined with wildcard matching as that would result in routes never being matched.
//
// .. note::
//
// This does not invert matching done as part of the :ref:`headers field
// <envoy_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.headers>` field. To
// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.headers>` field. To
// invert header matching, see :ref:`invert_match
// <envoy_api_field_config.route.v3.HeaderMatcher.invert_match>`.
// <envoy_v3_api_field_config.route.v3.HeaderMatcher.invert_match>`.
bool invert = 3;
// Specifies a set of headers that the route should match on. The router will check the requests
@ -110,7 +110,7 @@ message RouteAction {
// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints in
// the upstream cluster with metadata matching what is set in this field will be considered.
// Note that this will be merged with what's provided in :ref:`WeightedCluster.metadata_match
// <envoy_api_field_extensions.filters.network.thrift_proxy.v3.WeightedCluster.ClusterWeight.metadata_match>`,
// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.WeightedCluster.ClusterWeight.metadata_match>`,
// with values there taking precedence. Keys and values should be provided under the "envoy.lb"
// metadata key.
config.core.v3.Metadata metadata_match = 3;
@ -147,7 +147,7 @@ message WeightedCluster {
// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints in
// the upstream cluster with metadata matching what is set in this field, combined with what's
// provided in :ref:`RouteAction's metadata_match
// <envoy_api_field_extensions.filters.network.thrift_proxy.v3.RouteAction.metadata_match>`,
// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteAction.metadata_match>`,
// will be considered. Values here will take precedence. Keys and values should be provided
// under the "envoy.lb" metadata key.
config.core.v3.Metadata metadata_match = 3;

@ -64,11 +64,11 @@ message ThriftProxy {
"envoy.config.filter.network.thrift_proxy.v2alpha1.ThriftProxy";
// Supplies the type of transport that the Thrift proxy should use. Defaults to
// :ref:`AUTO_TRANSPORT<envoy_api_enum_value_extensions.filters.network.thrift_proxy.v3.TransportType.AUTO_TRANSPORT>`.
// :ref:`AUTO_TRANSPORT<envoy_v3_api_enum_value_extensions.filters.network.thrift_proxy.v3.TransportType.AUTO_TRANSPORT>`.
TransportType transport = 2 [(validate.rules).enum = {defined_only: true}];
// Supplies the type of protocol that the Thrift proxy should use. Defaults to
// :ref:`AUTO_PROTOCOL<envoy_api_enum_value_extensions.filters.network.thrift_proxy.v3.ProtocolType.AUTO_PROTOCOL>`.
// :ref:`AUTO_PROTOCOL<envoy_v3_api_enum_value_extensions.filters.network.thrift_proxy.v3.ProtocolType.AUTO_PROTOCOL>`.
ProtocolType protocol = 3 [(validate.rules).enum = {defined_only: true}];
// The human readable prefix to use when emitting statistics.
@ -120,7 +120,7 @@ message ThriftFilter {
// ThriftProtocolOptions specifies Thrift upstream protocol options. This object is used in
// in
// :ref:`typed_extension_protocol_options<envoy_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`,
// :ref:`typed_extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`,
// keyed by the name `envoy.filters.network.thrift_proxy`.
message ThriftProtocolOptions {
option (udpa.annotations.versioning).previous_message_type =
@ -128,13 +128,13 @@ message ThriftProtocolOptions {
// Supplies the type of transport that the Thrift proxy should use for upstream connections.
// Selecting
// :ref:`AUTO_TRANSPORT<envoy_api_enum_value_extensions.filters.network.thrift_proxy.v3.TransportType.AUTO_TRANSPORT>`,
// :ref:`AUTO_TRANSPORT<envoy_v3_api_enum_value_extensions.filters.network.thrift_proxy.v3.TransportType.AUTO_TRANSPORT>`,
// which is the default, causes the proxy to use the same transport as the downstream connection.
TransportType transport = 1 [(validate.rules).enum = {defined_only: true}];
// Supplies the type of protocol that the Thrift proxy should use for upstream connections.
// Selecting
// :ref:`AUTO_PROTOCOL<envoy_api_enum_value_extensions.filters.network.thrift_proxy.v3.ProtocolType.AUTO_PROTOCOL>`,
// :ref:`AUTO_PROTOCOL<envoy_v3_api_enum_value_extensions.filters.network.thrift_proxy.v3.ProtocolType.AUTO_PROTOCOL>`,
// which is the default, causes the proxy to use the same protocol as the downstream connection.
ProtocolType protocol = 2 [(validate.rules).enum = {defined_only: true}];
}

@ -60,17 +60,17 @@ message RouteMatch {
}
// Inverts whatever matching is done in the :ref:`method_name
// <envoy_api_field_extensions.filters.network.thrift_proxy.v4alpha.RouteMatch.method_name>` or
// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.method_name>` or
// :ref:`service_name
// <envoy_api_field_extensions.filters.network.thrift_proxy.v4alpha.RouteMatch.service_name>` fields.
// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.service_name>` fields.
// Cannot be combined with wildcard matching as that would result in routes never being matched.
//
// .. note::
//
// This does not invert matching done as part of the :ref:`headers field
// <envoy_api_field_extensions.filters.network.thrift_proxy.v4alpha.RouteMatch.headers>` field. To
// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.headers>` field. To
// invert header matching, see :ref:`invert_match
// <envoy_api_field_config.route.v4alpha.HeaderMatcher.invert_match>`.
// <envoy_v3_api_field_config.route.v3.HeaderMatcher.invert_match>`.
bool invert = 3;
// Specifies a set of headers that the route should match on. The router will check the requests
@ -110,7 +110,7 @@ message RouteAction {
// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints in
// the upstream cluster with metadata matching what is set in this field will be considered.
// Note that this will be merged with what's provided in :ref:`WeightedCluster.metadata_match
// <envoy_api_field_extensions.filters.network.thrift_proxy.v4alpha.WeightedCluster.ClusterWeight.metadata_match>`,
// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.WeightedCluster.ClusterWeight.metadata_match>`,
// with values there taking precedence. Keys and values should be provided under the "envoy.lb"
// metadata key.
config.core.v4alpha.Metadata metadata_match = 3;
@ -147,7 +147,7 @@ message WeightedCluster {
// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints in
// the upstream cluster with metadata matching what is set in this field, combined with what's
// provided in :ref:`RouteAction's metadata_match
// <envoy_api_field_extensions.filters.network.thrift_proxy.v4alpha.RouteAction.metadata_match>`,
// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteAction.metadata_match>`,
// will be considered. Values here will take precedence. Keys and values should be provided
// under the "envoy.lb" metadata key.
config.core.v4alpha.Metadata metadata_match = 3;

@ -64,11 +64,11 @@ message ThriftProxy {
"envoy.extensions.filters.network.thrift_proxy.v3.ThriftProxy";
// Supplies the type of transport that the Thrift proxy should use. Defaults to
// :ref:`AUTO_TRANSPORT<envoy_api_enum_value_extensions.filters.network.thrift_proxy.v4alpha.TransportType.AUTO_TRANSPORT>`.
// :ref:`AUTO_TRANSPORT<envoy_v3_api_enum_value_extensions.filters.network.thrift_proxy.v3.TransportType.AUTO_TRANSPORT>`.
TransportType transport = 2 [(validate.rules).enum = {defined_only: true}];
// Supplies the type of protocol that the Thrift proxy should use. Defaults to
// :ref:`AUTO_PROTOCOL<envoy_api_enum_value_extensions.filters.network.thrift_proxy.v4alpha.ProtocolType.AUTO_PROTOCOL>`.
// :ref:`AUTO_PROTOCOL<envoy_v3_api_enum_value_extensions.filters.network.thrift_proxy.v3.ProtocolType.AUTO_PROTOCOL>`.
ProtocolType protocol = 3 [(validate.rules).enum = {defined_only: true}];
// The human readable prefix to use when emitting statistics.
@ -120,7 +120,7 @@ message ThriftFilter {
// ThriftProtocolOptions specifies Thrift upstream protocol options. This object is used in
// in
// :ref:`typed_extension_protocol_options<envoy_api_field_config.cluster.v4alpha.Cluster.typed_extension_protocol_options>`,
// :ref:`typed_extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`,
// keyed by the name `envoy.filters.network.thrift_proxy`.
message ThriftProtocolOptions {
option (udpa.annotations.versioning).previous_message_type =
@ -128,13 +128,13 @@ message ThriftProtocolOptions {
// Supplies the type of transport that the Thrift proxy should use for upstream connections.
// Selecting
// :ref:`AUTO_TRANSPORT<envoy_api_enum_value_extensions.filters.network.thrift_proxy.v4alpha.TransportType.AUTO_TRANSPORT>`,
// :ref:`AUTO_TRANSPORT<envoy_v3_api_enum_value_extensions.filters.network.thrift_proxy.v3.TransportType.AUTO_TRANSPORT>`,
// which is the default, causes the proxy to use the same transport as the downstream connection.
TransportType transport = 1 [(validate.rules).enum = {defined_only: true}];
// Supplies the type of protocol that the Thrift proxy should use for upstream connections.
// Selecting
// :ref:`AUTO_PROTOCOL<envoy_api_enum_value_extensions.filters.network.thrift_proxy.v4alpha.ProtocolType.AUTO_PROTOCOL>`,
// :ref:`AUTO_PROTOCOL<envoy_v3_api_enum_value_extensions.filters.network.thrift_proxy.v3.ProtocolType.AUTO_PROTOCOL>`,
// which is the default, causes the proxy to use the same protocol as the downstream connection.
ProtocolType protocol = 2 [(validate.rules).enum = {defined_only: true}];
}

@ -16,7 +16,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#extension: envoy.internal_redirect_predicates.allow_listed_routes]
message AllowListedRoutesConfig {
// The list of routes that's allowed as redirect target by this predicate,
// identified by the route's :ref:`name <envoy_api_field_config.route.v3.Route.route>`.
// identified by the route's :ref:`name <envoy_v3_api_field_config.route.v3.Route.route>`.
// Empty route names are not allowed.
repeated string allowed_route_names = 1
[(validate.rules).repeated = {items {string {min_len: 1}}}];

@ -160,11 +160,11 @@ message TlsCertificate {
config.core.v3.WatchedDirectory watched_directory = 7;
// BoringSSL private key method provider. This is an alternative to :ref:`private_key
// <envoy_api_field_extensions.transport_sockets.tls.v3.TlsCertificate.private_key>` field. This can't be
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.TlsCertificate.private_key>` field. This can't be
// marked as ``oneof`` due to API compatibility reasons. Setting both :ref:`private_key
// <envoy_api_field_extensions.transport_sockets.tls.v3.TlsCertificate.private_key>` and
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.TlsCertificate.private_key>` and
// :ref:`private_key_provider
// <envoy_api_field_extensions.transport_sockets.tls.v3.TlsCertificate.private_key_provider>` fields will result in an
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.TlsCertificate.private_key_provider>` fields will result in an
// error.
PrivateKeyProvider private_key_provider = 6;
@ -190,7 +190,7 @@ message TlsSessionTicketKeys {
// All keys are candidates for decrypting received tickets. This allows for easy rotation of keys
// by, for example, putting the new key first, and the previous key second.
//
// If :ref:`session_ticket_keys <envoy_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.session_ticket_keys>`
// If :ref:`session_ticket_keys <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.session_ticket_keys>`
// is not specified, the TLS library will still support resuming sessions via tickets, but it will
// use an internally-generated and managed key, so sessions cannot be resumed across hot restarts
// or on different hosts.
@ -224,7 +224,7 @@ message CertificateValidationContext {
// Connections where the certificate fails verification will be permitted.
// For HTTP connections, the result of certificate verification can be used in route matching. (
// see :ref:`validated <envoy_api_field_config.route.v3.RouteMatch.TlsContextMatchOptions.validated>` ).
// see :ref:`validated <envoy_v3_api_field_config.route.v3.RouteMatch.TlsContextMatchOptions.validated>` ).
ACCEPT_UNTRUSTED = 1;
}
@ -237,13 +237,13 @@ message CertificateValidationContext {
// for listeners). If not specified and a peer certificate is presented it will not be
// verified. By default, a client certificate is optional, unless one of the additional
// options (:ref:`require_client_certificate
// <envoy_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.require_client_certificate>`,
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.require_client_certificate>`,
// :ref:`verify_certificate_spki
// <envoy_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.verify_certificate_spki>`,
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.verify_certificate_spki>`,
// :ref:`verify_certificate_hash
// <envoy_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.verify_certificate_hash>`, or
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.verify_certificate_hash>`, or
// :ref:`match_subject_alt_names
// <envoy_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.match_subject_alt_names>`) is also
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.match_subject_alt_names>`) is also
// specified.
//
// It can optionally contain certificate revocation lists, in which case Envoy will verify
@ -289,15 +289,15 @@ message CertificateValidationContext {
//
// When both:
// :ref:`verify_certificate_hash
// <envoy_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.verify_certificate_hash>` and
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.verify_certificate_hash>` and
// :ref:`verify_certificate_spki
// <envoy_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.verify_certificate_spki>` are specified,
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.verify_certificate_spki>` are specified,
// a hash matching value from either of the lists will result in the certificate being accepted.
//
// .. attention::
//
// This option is preferred over :ref:`verify_certificate_hash
// <envoy_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.verify_certificate_hash>`,
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.verify_certificate_hash>`,
// because SPKI is tied to a private key, so it doesn't change when the certificate
// is renewed using the same private key.
repeated string verify_certificate_spki = 3
@ -325,9 +325,9 @@ message CertificateValidationContext {
//
// When both:
// :ref:`verify_certificate_hash
// <envoy_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.verify_certificate_hash>` and
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.verify_certificate_hash>` and
// :ref:`verify_certificate_spki
// <envoy_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.verify_certificate_spki>` are specified,
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.verify_certificate_spki>` are specified,
// a hash matching value from either of the lists will result in the certificate being accepted.
repeated string verify_certificate_hash = 2
[(validate.rules).repeated = {items {string {min_len: 64 max_bytes: 95}}}];
@ -336,7 +336,7 @@ message CertificateValidationContext {
// Subject Alternative Name of the presented certificate matches one of the specified matchers.
//
// When a certificate has wildcard DNS SAN entries, to match a specific client, it should be
// configured with exact match type in the :ref:`string matcher <envoy_api_msg_type.matcher.v3.StringMatcher>`.
// configured with exact match type in the :ref:`string matcher <envoy_v3_api_msg_type.matcher.v3.StringMatcher>`.
// For example if the certificate has "\*.example.com" as DNS SAN entry, to allow only "api.example.com",
// it should be configured as shown below.
//
@ -349,7 +349,7 @@ message CertificateValidationContext {
//
// Subject Alternative Names are easily spoofable and verifying only them is insecure,
// therefore this option must be used together with :ref:`trusted_ca
// <envoy_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.trusted_ca>`.
// <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.trusted_ca>`.
repeated type.matcher.v3.StringMatcher match_subject_alt_names = 9;
// [#not-implemented-hide:] Must present signed certificate time-stamp.

@ -32,7 +32,7 @@ message UpstreamTlsContext {
// .. attention::
//
// Server certificate verification is not enabled by default. Configure
// :ref:`trusted_ca<envoy_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.trusted_ca>` to enable
// :ref:`trusted_ca<envoy_v3_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.trusted_ca>` to enable
// verification.
CommonTlsContext common_tls_context = 1;
@ -101,8 +101,8 @@ message DownstreamTlsContext {
// Config for controlling stateless TLS session resumption: setting this to true will cause the TLS
// server to not issue TLS session tickets for the purposes of stateless TLS session resumption.
// If set to false, the TLS server will issue TLS session tickets and encrypt/decrypt them using
// the keys specified through either :ref:`session_ticket_keys <envoy_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.session_ticket_keys>`
// or :ref:`session_ticket_keys_sds_secret_config <envoy_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.session_ticket_keys_sds_secret_config>`.
// the keys specified through either :ref:`session_ticket_keys <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.session_ticket_keys>`
// or :ref:`session_ticket_keys_sds_secret_config <envoy_v3_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.session_ticket_keys_sds_secret_config>`.
// If this config is set to false and no keys are explicitly configured, the TLS server will issue
// TLS session tickets and encrypt/decrypt them using an internally-generated and managed key, with the
// implication that sessions cannot be resumed across hot restarts or on different hosts.
@ -256,7 +256,7 @@ message CommonTlsContext {
// Supplies the list of ALPN protocols that the listener should expose. In
// practice this is likely to be set to one of two values (see the
// :ref:`codec_type
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.codec_type>`
// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.codec_type>`
// parameter in the HTTP connection manager for more information):
//
// * "h2,http/1.1" If the listener is going to support both HTTP/2 and HTTP/1.1.

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save