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

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

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

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

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

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

@ -48,12 +48,12 @@ message Bootstrap {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
"envoy.config.bootstrap.v2.Bootstrap.StaticResources"; "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. // available regardless of LDS configuration.
repeated listener.v3.Listener listeners = 1; repeated listener.v3.Listener listeners = 1;
// If a network based configuration source is specified for :ref:`cds_config // 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 // to have some initial cluster definitions available to allow Envoy to know
// how to speak to the management server. These cluster definitions may not // 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 // 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; repeated cluster.v3.Cluster clusters = 2;
// These static secrets can be used by :ref:`SdsSecretConfig // 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; repeated envoy.extensions.transport_sockets.tls.v3.Secret secrets = 3;
} }
@ -72,7 +72,7 @@ message Bootstrap {
reserved 4; 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. // :ref:`LDS <arch_overview_dynamic_config_lds>` configuration source.
core.v3.ConfigSource lds_config = 1; core.v3.ConfigSource lds_config = 1;
@ -80,7 +80,7 @@ message Bootstrap {
// [#not-implemented-hide:] // [#not-implemented-hide:]
string lds_resources_locator = 5; 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>` // provided by a single :ref:`CDS <arch_overview_dynamic_config_cds>`
// configuration source. // configuration source.
core.v3.ConfigSource cds_config = 2; core.v3.ConfigSource cds_config = 2;
@ -91,10 +91,10 @@ message Bootstrap {
// A single :ref:`ADS <config_overview_ads>` source may be optionally // A single :ref:`ADS <config_overview_ads>` source may be optionally
// specified. This must have :ref:`api_type // specified. This must have :ref:`api_type
// <envoy_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC // <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
// <envoy_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`. Only // <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`. Only
// :ref:`ConfigSources <envoy_api_msg_config.core.v3.ConfigSource>` that have // :ref:`ConfigSources <envoy_v3_api_msg_config.core.v3.ConfigSource>` that have
// the :ref:`ads <envoy_api_field_config.core.v3.ConfigSource.ads>` field set will be // the :ref:`ads <envoy_v3_api_field_config.core.v3.ConfigSource.ads>` field set will be
// streamed on the ADS channel. // streamed on the ADS channel.
core.v3.ApiConfigSource ads_config = 3; core.v3.ApiConfigSource ads_config = 3;
} }
@ -152,7 +152,7 @@ message Bootstrap {
ClusterManager cluster_manager = 4; ClusterManager cluster_manager = 4;
// Health discovery service config option. // 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; core.v3.ApiConfigSource hds_config = 14;
// Optional file system path to search for startup flag files. // Optional file system path to search for startup flag files.
@ -200,7 +200,7 @@ message Bootstrap {
// //
// .. attention:: // .. attention::
// This field has been deprecated in favor of :ref:`HttpConnectionManager.Tracing.provider // 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 trace.v3.Tracing tracing = 9
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"]; [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. // 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 // 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 // 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 // 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. // histogram summary. Be aware that this can be a very large volume of data.
bool enable_dispatcher_stats = 16; 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 // 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 // <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; google.protobuf.UInt64Value stats_server_version_override = 19;
// Always use TCP queries instead of UDP queries for DNS lookups. // Always use TCP queries instead of UDP queries for DNS lookups.
// This may be overridden on a per-cluster basis in cds_config, // 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 // when :ref:`dns_resolvers <envoy_v3_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 // :ref:`use_tcp_for_dns_lookups <envoy_v3_api_field_config.cluster.v3.Cluster.use_tcp_for_dns_lookups>` are
// specified. // specified.
// Setting this value causes failure if the // Setting this value causes failure if the
// ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during // ``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 // Global map of CertificateProvider instances. These instances are referred to by name in the
// :ref:`CommonTlsContext.CertificateProviderInstance.instance_name // :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. // field.
// [#not-implemented-hide:] // [#not-implemented-hide:]
map<string, core.v3.TypedExtensionConfig> certificate_provider_instances = 25; 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 // 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 // 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. // Deprecated in favor of *access_log* which offers more options.
string access_log_path = 1 string access_log_path = 1
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"]; [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 // this configuration). In order to enable :ref:`zone aware routing
// <arch_overview_load_balancing_zone_aware_routing>` this option must be set. // <arch_overview_load_balancing_zone_aware_routing>` this option must be set.
// If *local_cluster_name* is defined then :ref:`clusters // 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 // 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 // the :option:`--service-cluster` option which does not `affect zone aware
// routing <https://github.com/envoyproxy/envoy/issues/774>`_. // routing <https://github.com/envoyproxy/envoy/issues/774>`_.
string local_cluster_name = 1; string local_cluster_name = 1;
@ -365,8 +365,8 @@ message ClusterManager {
// A management server endpoint to stream load stats to via // A management server endpoint to stream load stats to via
// *StreamLoadStats*. This must have :ref:`api_type // *StreamLoadStats*. This must have :ref:`api_type
// <envoy_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC // <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
// <envoy_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`. // <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`.
core.v3.ApiConfigSource load_stats_config = 4; core.v3.ApiConfigSource load_stats_config = 4;
} }

@ -45,12 +45,12 @@ message Bootstrap {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
"envoy.config.bootstrap.v3.Bootstrap.StaticResources"; "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. // available regardless of LDS configuration.
repeated listener.v4alpha.Listener listeners = 1; repeated listener.v4alpha.Listener listeners = 1;
// If a network based configuration source is specified for :ref:`cds_config // 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 // to have some initial cluster definitions available to allow Envoy to know
// how to speak to the management server. These cluster definitions may not // 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 // 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; repeated cluster.v4alpha.Cluster clusters = 2;
// These static secrets can be used by :ref:`SdsSecretConfig // 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; repeated envoy.extensions.transport_sockets.tls.v4alpha.Secret secrets = 3;
} }
@ -69,7 +69,7 @@ message Bootstrap {
reserved 4; 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. // :ref:`LDS <arch_overview_dynamic_config_lds>` configuration source.
core.v4alpha.ConfigSource lds_config = 1; core.v4alpha.ConfigSource lds_config = 1;
@ -77,7 +77,7 @@ message Bootstrap {
// [#not-implemented-hide:] // [#not-implemented-hide:]
string lds_resources_locator = 5; 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>` // provided by a single :ref:`CDS <arch_overview_dynamic_config_cds>`
// configuration source. // configuration source.
core.v4alpha.ConfigSource cds_config = 2; core.v4alpha.ConfigSource cds_config = 2;
@ -88,10 +88,10 @@ message Bootstrap {
// A single :ref:`ADS <config_overview_ads>` source may be optionally // A single :ref:`ADS <config_overview_ads>` source may be optionally
// specified. This must have :ref:`api_type // specified. This must have :ref:`api_type
// <envoy_api_field_config.core.v4alpha.ApiConfigSource.api_type>` :ref:`GRPC // <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
// <envoy_api_enum_value_config.core.v4alpha.ApiConfigSource.ApiType.GRPC>`. Only // <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`. Only
// :ref:`ConfigSources <envoy_api_msg_config.core.v4alpha.ConfigSource>` that have // :ref:`ConfigSources <envoy_v3_api_msg_config.core.v3.ConfigSource>` that have
// the :ref:`ads <envoy_api_field_config.core.v4alpha.ConfigSource.ads>` field set will be // the :ref:`ads <envoy_v3_api_field_config.core.v3.ConfigSource.ads>` field set will be
// streamed on the ADS channel. // streamed on the ADS channel.
core.v4alpha.ApiConfigSource ads_config = 3; core.v4alpha.ApiConfigSource ads_config = 3;
} }
@ -149,7 +149,7 @@ message Bootstrap {
ClusterManager cluster_manager = 4; ClusterManager cluster_manager = 4;
// Health discovery service config option. // 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; core.v4alpha.ApiConfigSource hds_config = 14;
// Optional file system path to search for startup flag files. // 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. // 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 // 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 // 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 // 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. // histogram summary. Be aware that this can be a very large volume of data.
bool enable_dispatcher_stats = 16; 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 // 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 // <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; google.protobuf.UInt64Value stats_server_version_override = 19;
// Always use TCP queries instead of UDP queries for DNS lookups. // Always use TCP queries instead of UDP queries for DNS lookups.
// This may be overridden on a per-cluster basis in cds_config, // 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 // when :ref:`dns_resolvers <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolvers>` and
// :ref:`use_tcp_for_dns_lookups <envoy_api_field_config.cluster.v4alpha.Cluster.use_tcp_for_dns_lookups>` are // :ref:`use_tcp_for_dns_lookups <envoy_v3_api_field_config.cluster.v3.Cluster.use_tcp_for_dns_lookups>` are
// specified. // specified.
// Setting this value causes failure if the // Setting this value causes failure if the
// ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during // ``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 // Global map of CertificateProvider instances. These instances are referred to by name in the
// :ref:`CommonTlsContext.CertificateProviderInstance.instance_name // :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. // field.
// [#not-implemented-hide:] // [#not-implemented-hide:]
map<string, core.v4alpha.TypedExtensionConfig> certificate_provider_instances = 25; 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 // this configuration). In order to enable :ref:`zone aware routing
// <arch_overview_load_balancing_zone_aware_routing>` this option must be set. // <arch_overview_load_balancing_zone_aware_routing>` this option must be set.
// If *local_cluster_name* is defined then :ref:`clusters // 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 // 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 // the :option:`--service-cluster` option which does not `affect zone aware
// routing <https://github.com/envoyproxy/envoy/issues/774>`_. // routing <https://github.com/envoyproxy/envoy/issues/774>`_.
string local_cluster_name = 1; string local_cluster_name = 1;
@ -342,8 +342,8 @@ message ClusterManager {
// A management server endpoint to stream load stats to via // A management server endpoint to stream load stats to via
// *StreamLoadStats*. This must have :ref:`api_type // *StreamLoadStats*. This must have :ref:`api_type
// <envoy_api_field_config.core.v4alpha.ApiConfigSource.api_type>` :ref:`GRPC // <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
// <envoy_api_enum_value_config.core.v4alpha.ApiConfigSource.ApiType.GRPC>`. // <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`.
core.v4alpha.ApiConfigSource load_stats_config = 4; core.v4alpha.ApiConfigSource load_stats_config = 4;
} }

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

@ -110,7 +110,7 @@ message Cluster {
CLUSTER_PROVIDED = 6; CLUSTER_PROVIDED = 6;
// [#not-implemented-hide:] Use the new :ref:`load_balancing_policy // [#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 // [#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 // and instead using the new load_balancing_policy field as the one and only mechanism for
// configuring this.] // configuring this.]
@ -123,8 +123,8 @@ message Cluster {
// specified, the DNS resolver will first perform a lookup for addresses in // 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. // the IPv6 family and fallback to a lookup for addresses in the IPv4 family.
// For cluster types other than // For cluster types other than
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and // :ref:`STRICT_DNS<envoy_v3_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:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
// this setting is // this setting is
// ignored. // ignored.
enum DnsLookupFamily { enum DnsLookupFamily {
@ -135,7 +135,7 @@ message Cluster {
enum ClusterProtocolSelection { enum ClusterProtocolSelection {
// Cluster can only operate on one of the possible upstream protocols (HTTP1.1, HTTP2). // 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. // present, HTTP2 will be used, otherwise HTTP1.1 will be used.
USE_CONFIGURED_PROTOCOL = 0; USE_CONFIGURED_PROTOCOL = 0;
@ -233,7 +233,7 @@ message Cluster {
// If KEYS_SUBSET is selected, subset selector matching is performed again with metadata // If KEYS_SUBSET is selected, subset selector matching is performed again with metadata
// keys reduced to // 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 // It allows for a fallback to a different, less specific selector if some of the keys of
// the selector are considered optional. // the selector are considered optional.
KEYS_SUBSET = 4; KEYS_SUBSET = 4;
@ -262,30 +262,30 @@ message Cluster {
[(validate.rules).enum = {defined_only: true}]; [(validate.rules).enum = {defined_only: true}];
// Subset of // Subset of
// :ref:`keys<envoy_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by // :ref:`keys<envoy_v3_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_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
// fallback policy. // fallback policy.
// It has to be a non empty list if KEYS_SUBSET fallback policy is selected. // 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. // For any other fallback policy the parameter is not used and should not be set.
// Only values also present in // 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`. // `fallback_keys_subset` cannot be equal to `keys`.
repeated string fallback_keys_subset = 3; repeated string fallback_keys_subset = 3;
} }
// The behavior used when no endpoint subset matches the selected route's // The behavior used when no endpoint subset matches the selected route's
// metadata. The value defaults to // 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}]; LbSubsetFallbackPolicy fallback_policy = 1 [(validate.rules).enum = {defined_only: true}];
// Specifies the default subset of endpoints used during fallback if // Specifies the default subset of endpoints used during fallback if
// fallback_policy is // 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 // Each field in default_subset is
// compared to the matching LbEndpoint.Metadata under the *envoy.lb* // compared to the matching LbEndpoint.Metadata under the *envoy.lb*
// namespace. It is valid for no hosts to match, in which case the behavior // namespace. It is valid for no hosts to match, in which case the behavior
// is the same as a fallback_policy of // 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; google.protobuf.Struct default_subset = 2;
// For each entry, LbEndpoint.Metadata's // 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 // 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 // provided host) the better the request distribution will reflect the desired weights. Defaults
// to 1024 entries, and limited to 8M entries. See also // 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}]; 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 // 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}]; 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 // Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
// to further constrain resource use. See also // 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}]; 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 // Specifies the base interval between refreshes. This parameter is required and must be greater
// than zero and less than // 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 = { google.protobuf.Duration base_interval = 1 [(validate.rules).duration = {
required: true required: true
gt {nanos: 1000000} gt {nanos: 1000000}
@ -564,8 +564,8 @@ message Cluster {
// Specifies the maximum interval between refreshes. This parameter is optional, but must be // Specifies the maximum interval between refreshes. This parameter is optional, but must be
// greater than or equal to the // greater than or equal to the
// :ref:`base_interval <envoy_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>` if set. The default // :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_api_field_config.cluster.v3.Cluster.RefreshRate.base_interval>`. // 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}}]; 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. // Configuration to use different transport sockets for different endpoints.
// The entry of *envoy.transport_socket_match* in the // 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 // 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 // For example, with the following match
// //
// .. code-block:: yaml // .. code-block:: yaml
@ -651,7 +651,7 @@ message Cluster {
// Connections to the endpoints whose metadata value under *envoy.transport_socket_match* // Connections to the endpoints whose metadata value under *envoy.transport_socket_match*
// having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration. // 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" // criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
// socket match in case above. // socket match in case above.
// //
@ -673,7 +673,7 @@ message Cluster {
// //
// This field can be used to specify custom transport socket configurations for health // 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 // 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.] // [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
repeated TransportSocketMatch transport_socket_matches = 43; 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. // Supplies the name of the cluster which must be unique across all clusters.
// The cluster name is used when emitting // The cluster name is used when emitting
// :ref:`statistics <config_cluster_manager_cluster_stats>` if :ref:`alt_stat_name // :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. // Any ``:`` in the cluster name will be converted to ``_`` when emitting statistics.
string name = 1 [(validate.rules).string = {min_len: 1}]; 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 // The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
// when picking a host in the cluster. // 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}]; LbPolicy lb_policy = 6 [(validate.rules).enum = {defined_only: true not_in: 7}];
// Setting this is required for specifying members of // Setting this is required for specifying members of
// :ref:`STATIC<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`, // :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` // :ref:`STRICT_DNS<envoy_v3_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. // 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. // This field supersedes the *hosts* field in the v2 API.
// //
// .. attention:: // .. attention::
// //
// Setting this allows non-EDS cluster types to contain embedded EDS equivalent // 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; endpoint.v3.ClusterLoadAssignment load_assignment = 33;
@ -752,12 +752,12 @@ message Cluster {
// HTTP protocol options that are applied only to upstream HTTP connections. // HTTP protocol options that are applied only to upstream HTTP connections.
// These options apply to all HTTP versions. // These options apply to all HTTP versions.
// This has been deprecated in favor of // This has been deprecated in favor of
// :ref:`upstream_http_protocol_options <envoy_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>` // :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_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message. // 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 // 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 // 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. // for example usage.
core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46 core.v3.UpstreamHttpProtocolOptions upstream_http_protocol_options = 46
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"]; [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 // Additional options when handling HTTP requests upstream. These options will be applicable to
// both HTTP1 and HTTP2 requests. // both HTTP1 and HTTP2 requests.
// This has been deprecated in favor of // This has been deprecated in favor of
// :ref:`common_http_protocol_options <envoy_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.common_http_protocol_options>` // :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_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message. // 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 // 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 // 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. // for example usage.
core.v3.HttpProtocolOptions common_http_protocol_options = 29 core.v3.HttpProtocolOptions common_http_protocol_options = 29
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"]; [deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
// Additional options when handling HTTP1 requests. // Additional options when handling HTTP1 requests.
// This has been deprecated in favor of http_protocol_options fields in the in the // 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 // 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 // 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. // for example usage.
core.v3.Http1ProtocolOptions http_protocol_options = 13 core.v3.Http1ProtocolOptions http_protocol_options = 13
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"]; [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 // with ALPN, `http2_protocol_options` must be specified. As an aside this allows HTTP/2
// connections to happen over plain text. // connections to happen over plain text.
// This has been deprecated in favor of http2_protocol_options fields in the in the // 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 // 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 // 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. // for example usage.
core.v3.Http2ProtocolOptions http2_protocol_options = 14 [ core.v3.Http2ProtocolOptions http2_protocol_options = 14 [
deprecated = true, deprecated = true,
@ -813,24 +813,24 @@ message Cluster {
map<string, google.protobuf.Any> typed_extension_protocol_options = 36; map<string, google.protobuf.Any> typed_extension_protocol_options = 36;
// If the DNS refresh rate is specified and the cluster type is either // 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>`, // :ref:`STRICT_DNS<envoy_v3_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>`, // 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 // 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 // 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 // value defaults to 5000ms. For cluster types other than
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` // :ref:`STRICT_DNS<envoy_v3_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>` // and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
// this setting is ignored. // this setting is ignored.
google.protobuf.Duration dns_refresh_rate = 16 google.protobuf.Duration dns_refresh_rate = 16
[(validate.rules).duration = {gt {nanos: 1000000}}]; [(validate.rules).duration = {gt {nanos: 1000000}}];
// If the DNS failure refresh rate is specified and the cluster type is either // 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>`, // :ref:`STRICT_DNS<envoy_v3_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>`, // 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 // 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 // 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 // other than :ref:`STRICT_DNS<envoy_v3_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 // :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
// ignored. // ignored.
RefreshRate dns_failure_refresh_rate = 44; 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 // The DNS IP address resolution policy. If this setting is not specified, the
// value defaults to // 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}]; DnsLookupFamily dns_lookup_family = 17 [(validate.rules).enum = {defined_only: true}];
// If DNS resolvers are specified and the cluster type is either // 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>`, // :ref:`STRICT_DNS<envoy_v3_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>`, // 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. // this value is used to specify the clusters dns resolvers.
// If this setting is not specified, the value defaults to the default // If this setting is not specified, the value defaults to the default
// resolver, which uses /etc/resolv.conf for configuration. For cluster types // resolver, which uses /etc/resolv.conf for configuration. For cluster types
// other than // other than
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` // :ref:`STRICT_DNS<envoy_v3_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>` // and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
// this setting is ignored. // this setting is ignored.
// Setting this value causes failure if the // Setting this value causes failure if the
// ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during // ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during
@ -872,7 +872,7 @@ message Cluster {
OutlierDetection outlier_detection = 19; OutlierDetection outlier_detection = 19;
// The interval for removing stale hosts from a cluster type // 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 // Hosts are considered stale if they have not been used
// as upstream destinations during this interval. New hosts are added // as upstream destinations during this interval. New hosts are added
// to original destination clusters on demand as new connections are // 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 // them remain open, saving the latency that would otherwise be spent
// on opening new connections. If this setting is not specified, the // on opening new connections. If this setting is not specified, the
// value defaults to 5000ms. For cluster types other than // 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. // this setting is ignored.
google.protobuf.Duration cleanup_interval = 20 [(validate.rules).duration = {gt {}}]; 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 // Optional configuration for the load balancing algorithm selected by
// LbPolicy. Currently only // LbPolicy. Currently only
// :ref:`RING_HASH<envoy_api_enum_value_config.cluster.v3.Cluster.LbPolicy.RING_HASH>`, // :ref:`RING_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.RING_HASH>`,
// :ref:`MAGLEV<envoy_api_enum_value_config.cluster.v3.Cluster.LbPolicy.MAGLEV>` and // :ref:`MAGLEV<envoy_v3_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:`LEAST_REQUEST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.LEAST_REQUEST>`
// has additional configuration options. // has additional configuration options.
// Specifying ring_hash_lb_config or maglev_lb_config or least_request_lb_config without setting the corresponding // 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. // LbPolicy will generate an error at runtime.
@ -921,7 +921,7 @@ message Cluster {
// Optional custom transport socket implementation to use for upstream connections. // Optional custom transport socket implementation to use for upstream connections.
// To setup TLS, set a transport socket with name `tls` and // 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 // If no transport socket configuration is specified, new connections
// will be set up with plaintext. // will be set up with plaintext.
core.v3.TransportSocket transport_socket = 24; core.v3.TransportSocket transport_socket = 24;
@ -936,9 +936,9 @@ message Cluster {
// Determines how Envoy selects the protocol used to speak to upstream hosts. // Determines how Envoy selects the protocol used to speak to upstream hosts.
// This has been deprecated in favor of setting explicit protocol selection // This has been deprecated in favor of setting explicit protocol selection
// in the :ref:`http_protocol_options // 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 // 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 ClusterProtocolSelection protocol_selection = 26
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"]; [deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"];
@ -971,8 +971,8 @@ message Cluster {
repeated Filter filters = 40; repeated Filter filters = 40;
// [#not-implemented-hide:] New mechanism for LB policy configuration. Used only if the // [#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:`lb_policy<envoy_v3_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:`LOAD_BALANCING_POLICY_CONFIG<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.LOAD_BALANCING_POLICY_CONFIG>`.
LoadBalancingPolicy load_balancing_policy = 41; LoadBalancingPolicy load_balancing_policy = 41;
// [#not-implemented-hide:] // [#not-implemented-hide:]
@ -1000,7 +1000,7 @@ message Cluster {
// .. attention:: // .. attention::
// //
// This field has been deprecated in favor of `timeout_budgets`, part of // 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 bool track_timeout_budgets = 47
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"]; [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 // 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 // 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. // Defaults to 30000ms or 30s.
google.protobuf.Duration base_ejection_time = 3 [(validate.rules).duration = {gt {}}]; 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 // Determines whether to distinguish local origin failures from external errors. If set to true
// the following configuration parameters are taken into account: // 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:`consecutive_local_origin_failure<envoy_v3_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:`enforcing_consecutive_local_origin_failure<envoy_v3_api_field_config.cluster.v3.OutlierDetection.enforcing_consecutive_local_origin_failure>`
// and // 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. // Defaults to false.
bool split_external_local_origin_errors = 12; bool split_external_local_origin_errors = 12;
// The number of consecutive locally originated failures before ejection // The number of consecutive locally originated failures before ejection
// occurs. Defaults to 5. Parameter takes effect only when // 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. // is set to true.
google.protobuf.UInt32Value consecutive_local_origin_failure = 13; 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 // is detected through consecutive locally originated failures. This setting can be
// used to disable ejection or to ramp it up slowly. Defaults to 100. // used to disable ejection or to ramp it up slowly. Defaults to 100.
// Parameter takes effect only when // 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. // is set to true.
google.protobuf.UInt32Value enforcing_consecutive_local_origin_failure = 14 google.protobuf.UInt32Value enforcing_consecutive_local_origin_failure = 14
[(validate.rules).uint32 = {lte: 100}]; [(validate.rules).uint32 = {lte: 100}];
@ -113,7 +113,7 @@ message OutlierDetection {
// is detected through success rate statistics for locally originated errors. // 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. // This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
// Parameter takes effect only when // 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. // is set to true.
google.protobuf.UInt32Value enforcing_local_origin_success_rate = 15 google.protobuf.UInt32Value enforcing_local_origin_success_rate = 15
[(validate.rules).uint32 = {lte: 100}]; [(validate.rules).uint32 = {lte: 100}];
@ -150,8 +150,8 @@ message OutlierDetection {
// this host. Defaults to 50. // this host. Defaults to 50.
google.protobuf.UInt32Value failure_percentage_request_volume = 20; 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 // 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 {}}]; google.protobuf.Duration max_ejection_time = 21 [(validate.rules).duration = {gt {}}];
} }

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

@ -110,7 +110,7 @@ message Cluster {
CLUSTER_PROVIDED = 6; CLUSTER_PROVIDED = 6;
// [#not-implemented-hide:] Use the new :ref:`load_balancing_policy // [#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 // [#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 // and instead using the new load_balancing_policy field as the one and only mechanism for
// configuring this.] // configuring this.]
@ -123,8 +123,8 @@ message Cluster {
// specified, the DNS resolver will first perform a lookup for addresses in // 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. // the IPv6 family and fallback to a lookup for addresses in the IPv4 family.
// For cluster types other than // For cluster types other than
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>` and // :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
// :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>`, // :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
// this setting is // this setting is
// ignored. // ignored.
enum DnsLookupFamily { enum DnsLookupFamily {
@ -135,7 +135,7 @@ message Cluster {
enum ClusterProtocolSelection { enum ClusterProtocolSelection {
// Cluster can only operate on one of the possible upstream protocols (HTTP1.1, HTTP2). // 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. // present, HTTP2 will be used, otherwise HTTP1.1 will be used.
USE_CONFIGURED_PROTOCOL = 0; USE_CONFIGURED_PROTOCOL = 0;
@ -233,7 +233,7 @@ message Cluster {
// If KEYS_SUBSET is selected, subset selector matching is performed again with metadata // If KEYS_SUBSET is selected, subset selector matching is performed again with metadata
// keys reduced to // 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 // It allows for a fallback to a different, less specific selector if some of the keys of
// the selector are considered optional. // the selector are considered optional.
KEYS_SUBSET = 4; KEYS_SUBSET = 4;
@ -262,30 +262,30 @@ message Cluster {
[(validate.rules).enum = {defined_only: true}]; [(validate.rules).enum = {defined_only: true}];
// Subset of // Subset of
// :ref:`keys<envoy_api_field_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by // :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
// :ref:`KEYS_SUBSET<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>` // :ref:`KEYS_SUBSET<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy.KEYS_SUBSET>`
// fallback policy. // fallback policy.
// It has to be a non empty list if KEYS_SUBSET fallback policy is selected. // 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. // For any other fallback policy the parameter is not used and should not be set.
// Only values also present in // 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`. // `fallback_keys_subset` cannot be equal to `keys`.
repeated string fallback_keys_subset = 3; repeated string fallback_keys_subset = 3;
} }
// The behavior used when no endpoint subset matches the selected route's // The behavior used when no endpoint subset matches the selected route's
// metadata. The value defaults to // 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}]; LbSubsetFallbackPolicy fallback_policy = 1 [(validate.rules).enum = {defined_only: true}];
// Specifies the default subset of endpoints used during fallback if // Specifies the default subset of endpoints used during fallback if
// fallback_policy is // 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 // Each field in default_subset is
// compared to the matching LbEndpoint.Metadata under the *envoy.lb* // compared to the matching LbEndpoint.Metadata under the *envoy.lb*
// namespace. It is valid for no hosts to match, in which case the behavior // namespace. It is valid for no hosts to match, in which case the behavior
// is the same as a fallback_policy of // 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; google.protobuf.Struct default_subset = 2;
// For each entry, LbEndpoint.Metadata's // 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 // 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 // provided host) the better the request distribution will reflect the desired weights. Defaults
// to 1024 entries, and limited to 8M entries. See also // 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}]; 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 // 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}]; 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 // Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
// to further constrain resource use. See also // 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}]; 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 // Specifies the base interval between refreshes. This parameter is required and must be greater
// than zero and less than // 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 = { google.protobuf.Duration base_interval = 1 [(validate.rules).duration = {
required: true required: true
gt {nanos: 1000000} gt {nanos: 1000000}
@ -568,8 +568,8 @@ message Cluster {
// Specifies the maximum interval between refreshes. This parameter is optional, but must be // Specifies the maximum interval between refreshes. This parameter is optional, but must be
// greater than or equal to the // greater than or equal to the
// :ref:`base_interval <envoy_api_field_config.cluster.v4alpha.Cluster.RefreshRate.base_interval>` if set. The default // :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_api_field_config.cluster.v4alpha.Cluster.RefreshRate.base_interval>`. // 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}}]; 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. // Configuration to use different transport sockets for different endpoints.
// The entry of *envoy.transport_socket_match* in the // 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 // 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 // For example, with the following match
// //
// .. code-block:: yaml // .. code-block:: yaml
@ -660,7 +660,7 @@ message Cluster {
// Connections to the endpoints whose metadata value under *envoy.transport_socket_match* // Connections to the endpoints whose metadata value under *envoy.transport_socket_match*
// having "acceptMTLS"/"true" key/value pair use the "enableMTLS" socket configuration. // 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" // criteria is provided, that always match any endpoint. For example, the "defaultToPlaintext"
// socket match in case above. // socket match in case above.
// //
@ -682,7 +682,7 @@ message Cluster {
// //
// This field can be used to specify custom transport socket configurations for health // 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 // 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.] // [#comment:TODO(incfly): add a detailed architecture doc on intended usage.]
repeated TransportSocketMatch transport_socket_matches = 43; 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. // Supplies the name of the cluster which must be unique across all clusters.
// The cluster name is used when emitting // The cluster name is used when emitting
// :ref:`statistics <config_cluster_manager_cluster_stats>` if :ref:`alt_stat_name // :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. // Any ``:`` in the cluster name will be converted to ``_`` when emitting statistics.
string name = 1 [(validate.rules).string = {min_len: 1}]; 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 // The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
// when picking a host in the cluster. // 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}]; LbPolicy lb_policy = 6 [(validate.rules).enum = {defined_only: true not_in: 7}];
// Setting this is required for specifying members of // Setting this is required for specifying members of
// :ref:`STATIC<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STATIC>`, // :ref:`STATIC<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STATIC>`,
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>` // :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>` clusters. // 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. // This field supersedes the *hosts* field in the v2 API.
// //
// .. attention:: // .. attention::
// //
// Setting this allows non-EDS cluster types to contain embedded EDS equivalent // 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; endpoint.v3.ClusterLoadAssignment load_assignment = 33;
@ -766,24 +766,24 @@ message Cluster {
map<string, google.protobuf.Any> typed_extension_protocol_options = 36; map<string, google.protobuf.Any> typed_extension_protocol_options = 36;
// If the DNS refresh rate is specified and the cluster type is either // 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>`, // :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_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 // 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 // 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 // value defaults to 5000ms. For cluster types other than
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>` // :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
// and :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>` // and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
// this setting is ignored. // this setting is ignored.
google.protobuf.Duration dns_refresh_rate = 16 google.protobuf.Duration dns_refresh_rate = 16
[(validate.rules).duration = {gt {nanos: 1000000}}]; [(validate.rules).duration = {gt {nanos: 1000000}}];
// If the DNS failure refresh rate is specified and the cluster type is either // 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>`, // :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_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 // 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 // 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 // other than :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
// :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is // :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>` this setting is
// ignored. // ignored.
RefreshRate dns_failure_refresh_rate = 44; 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 // The DNS IP address resolution policy. If this setting is not specified, the
// value defaults to // 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}]; DnsLookupFamily dns_lookup_family = 17 [(validate.rules).enum = {defined_only: true}];
// If DNS resolvers are specified and the cluster type is either // 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>`, // :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
// or :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_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. // this value is used to specify the clusters dns resolvers.
// If this setting is not specified, the value defaults to the default // If this setting is not specified, the value defaults to the default
// resolver, which uses /etc/resolv.conf for configuration. For cluster types // resolver, which uses /etc/resolv.conf for configuration. For cluster types
// other than // other than
// :ref:`STRICT_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.STRICT_DNS>` // :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`
// and :ref:`LOGICAL_DNS<envoy_api_enum_value_config.cluster.v4alpha.Cluster.DiscoveryType.LOGICAL_DNS>` // and :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`
// this setting is ignored. // this setting is ignored.
// Setting this value causes failure if the // Setting this value causes failure if the
// ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during // ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during
@ -825,7 +825,7 @@ message Cluster {
OutlierDetection outlier_detection = 19; OutlierDetection outlier_detection = 19;
// The interval for removing stale hosts from a cluster type // 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 // Hosts are considered stale if they have not been used
// as upstream destinations during this interval. New hosts are added // as upstream destinations during this interval. New hosts are added
// to original destination clusters on demand as new connections are // 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 // them remain open, saving the latency that would otherwise be spent
// on opening new connections. If this setting is not specified, the // on opening new connections. If this setting is not specified, the
// value defaults to 5000ms. For cluster types other than // 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. // this setting is ignored.
google.protobuf.Duration cleanup_interval = 20 [(validate.rules).duration = {gt {}}]; 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 // Optional configuration for the load balancing algorithm selected by
// LbPolicy. Currently only // LbPolicy. Currently only
// :ref:`RING_HASH<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbPolicy.RING_HASH>`, // :ref:`RING_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.RING_HASH>`,
// :ref:`MAGLEV<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbPolicy.MAGLEV>` and // :ref:`MAGLEV<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.MAGLEV>` and
// :ref:`LEAST_REQUEST<envoy_api_enum_value_config.cluster.v4alpha.Cluster.LbPolicy.LEAST_REQUEST>` // :ref:`LEAST_REQUEST<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.LEAST_REQUEST>`
// has additional configuration options. // has additional configuration options.
// Specifying ring_hash_lb_config or maglev_lb_config or least_request_lb_config without setting the corresponding // 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. // LbPolicy will generate an error at runtime.
@ -874,7 +874,7 @@ message Cluster {
// Optional custom transport socket implementation to use for upstream connections. // Optional custom transport socket implementation to use for upstream connections.
// To setup TLS, set a transport socket with name `tls` and // 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 // If no transport socket configuration is specified, new connections
// will be set up with plaintext. // will be set up with plaintext.
core.v4alpha.TransportSocket transport_socket = 24; core.v4alpha.TransportSocket transport_socket = 24;
@ -915,8 +915,8 @@ message Cluster {
repeated Filter filters = 40; repeated Filter filters = 40;
// [#not-implemented-hide:] New mechanism for LB policy configuration. Used only if the // [#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:`lb_policy<envoy_v3_api_field_config.cluster.v3.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:`LOAD_BALANCING_POLICY_CONFIG<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbPolicy.LOAD_BALANCING_POLICY_CONFIG>`.
LoadBalancingPolicy load_balancing_policy = 41; LoadBalancingPolicy load_balancing_policy = 41;
// [#not-implemented-hide:] // [#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 // 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 // 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. // Defaults to 30000ms or 30s.
google.protobuf.Duration base_ejection_time = 3 [(validate.rules).duration = {gt {}}]; 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 // Determines whether to distinguish local origin failures from external errors. If set to true
// the following configuration parameters are taken into account: // 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:`consecutive_local_origin_failure<envoy_v3_api_field_config.cluster.v3.OutlierDetection.consecutive_local_origin_failure>`,
// :ref:`enforcing_consecutive_local_origin_failure<envoy_api_field_config.cluster.v4alpha.OutlierDetection.enforcing_consecutive_local_origin_failure>` // :ref:`enforcing_consecutive_local_origin_failure<envoy_v3_api_field_config.cluster.v3.OutlierDetection.enforcing_consecutive_local_origin_failure>`
// and // 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. // Defaults to false.
bool split_external_local_origin_errors = 12; bool split_external_local_origin_errors = 12;
// The number of consecutive locally originated failures before ejection // The number of consecutive locally originated failures before ejection
// occurs. Defaults to 5. Parameter takes effect only when // 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. // is set to true.
google.protobuf.UInt32Value consecutive_local_origin_failure = 13; 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 // is detected through consecutive locally originated failures. This setting can be
// used to disable ejection or to ramp it up slowly. Defaults to 100. // used to disable ejection or to ramp it up slowly. Defaults to 100.
// Parameter takes effect only when // 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. // is set to true.
google.protobuf.UInt32Value enforcing_consecutive_local_origin_failure = 14 google.protobuf.UInt32Value enforcing_consecutive_local_origin_failure = 14
[(validate.rules).uint32 = {lte: 100}]; [(validate.rules).uint32 = {lte: 100}];
@ -113,7 +113,7 @@ message OutlierDetection {
// is detected through success rate statistics for locally originated errors. // 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. // This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
// Parameter takes effect only when // 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. // is set to true.
google.protobuf.UInt32Value enforcing_local_origin_success_rate = 15 google.protobuf.UInt32Value enforcing_local_origin_success_rate = 15
[(validate.rules).uint32 = {lte: 100}]; [(validate.rules).uint32 = {lte: 100}];
@ -150,8 +150,8 @@ message OutlierDetection {
// this host. Defaults to 50. // this host. Defaults to 50.
google.protobuf.UInt32Value failure_percentage_request_volume = 20; 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 // 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 {}}]; google.protobuf.Duration max_ejection_time = 21 [(validate.rules).duration = {gt {}}];
} }

@ -37,7 +37,7 @@ message EnvoyInternalAddress {
oneof address_name_specifier { oneof address_name_specifier {
option (validate.required) = true; 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; 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 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: // to bind to any address. [#comment:TODO(zuercher) reinstate when implemented:
// It is possible to distinguish a Listener address via the prefix/suffix matching // 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 // in :ref:`FilterChainMatch <envoy_v3_api_msg_config.listener.v3.FilterChainMatch>`.] When used
// within an upstream :ref:`BindConfig <envoy_api_msg_config.core.v3.BindConfig>`, the address // 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 // 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 // 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 // (*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}]; string address = 2 [(validate.rules).string = {min_len: 1}];
oneof port_specifier { oneof port_specifier {
@ -72,7 +72,7 @@ message SocketAddress {
uint32 port_value = 3 [(validate.rules).uint32 = {lte: 65535}]; uint32 port_value = 3 [(validate.rules).uint32 = {lte: 65535}];
// This is only valid if :ref:`resolver_name // 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. // named resolver is capable of named port resolution.
string named_port = 4; string named_port = 4;
} }
@ -117,7 +117,7 @@ message BindConfig {
// Whether to set the *IP_FREEBIND* option when creating the socket. When this // Whether to set the *IP_FREEBIND* option when creating the socket. When this
// flag is set to true, allows the :ref:`source_address // 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 // 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 // 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 // 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 // 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 // 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 = { google.protobuf.Duration base_interval = 1 [(validate.rules).duration = {
required: true required: true
gte {nanos: 1000000} gte {nanos: 1000000}
@ -29,8 +29,8 @@ message BackoffStrategy {
// Specifies the maximum interval between retries. This parameter is optional, // Specifies the maximum interval between retries. This parameter is optional,
// but must be greater than or equal to the :ref:`base_interval // 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 // 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 {}}]; google.protobuf.Duration max_interval = 2 [(validate.rules).duration = {gt {}}];
} }

@ -69,12 +69,12 @@ enum TrafficDirection {
message Locality { message Locality {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.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; string region = 1;
// Defines the local service zone where Envoy is running. Though optional, it // Defines the local service zone where Envoy is running. Though optional, it
// should be set if discovery service routing is used and the discovery // 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 // either in this message or via :option:`--service-zone`. The meaning of zone
// is context dependent, e.g. `Availability Zone (AZ) // is context dependent, e.g. `Availability Zone (AZ)
// <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html>`_ // <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: // optional, it should be set if any of the following features are used:
// :ref:`statsd <arch_overview_statistics>`, :ref:`health check cluster // :ref:`statsd <arch_overview_statistics>`, :ref:`health check cluster
// verification // verification
// <envoy_api_field_config.core.v3.HealthCheck.HttpHealthCheck.service_name_matcher>`, // <envoy_v3_api_field_config.core.v3.HealthCheck.HttpHealthCheck.service_name_matcher>`,
// :ref:`runtime override directory <envoy_api_msg_config.bootstrap.v3.Runtime>`, // :ref:`runtime override directory <envoy_v3_api_msg_config.bootstrap.v3.Runtime>`,
// :ref:`user agent addition // :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:`HTTP global rate limiting <config_http_filters_rate_limit>`,
// :ref:`CDS <config_cluster_manager_cds>`, and :ref:`HTTP tracing // :ref:`CDS <config_cluster_manager_cds>`, and :ref:`HTTP tracing
// <arch_overview_tracing>`, either in this message or via // <arch_overview_tracing>`, either in this message or via
@ -352,7 +352,7 @@ message DataSource {
message RetryPolicy { message RetryPolicy {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.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 // This parameter is optional, in which case the default base interval is 1000 milliseconds. The
// default maximum interval is 10 times the base interval. // default maximum interval is 10 times the base interval.
BackoffStrategy retry_back_off = 1; BackoffStrategy retry_back_off = 1;
@ -393,7 +393,7 @@ message AsyncDataSource {
} }
// Configuration for transport socket in :ref:`listeners <config_listeners>` and // 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 // empty, a default transport socket implementation and configuration will be
// chosen based on the platform and existence of tls_context. // chosen based on the platform and existence of tls_context.
message TransportSocket { message TransportSocket {
@ -420,7 +420,7 @@ message TransportSocket {
// .. note:: // .. note::
// //
// Parsing of the runtime key's data is implemented such that it may be represented as a // 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 // 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 // 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. // 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 // 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. // specify that ADS is to be used.
message AggregatedConfigSource { message AggregatedConfigSource {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
@ -118,7 +118,7 @@ message AggregatedConfigSource {
// [#not-implemented-hide:] // [#not-implemented-hide:]
// Self-referencing config source options. This is currently empty, but when // 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. // specify that other data can be obtained from the same server.
message SelfConfigSource { message SelfConfigSource {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.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 // Configuration for :ref:`listeners <config_listeners>`, :ref:`clusters
// <config_cluster_manager>`, :ref:`routes // <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 // <arch_overview_service_discovery>` etc. may either be sourced from the
// filesystem or from an xDS API source. Filesystem configs are watched with // filesystem or from an xDS API source. Filesystem configs are watched with
// inotify for updates. // inotify for updates.
@ -162,7 +162,7 @@ message ConfigSource {
option (validate.required) = true; option (validate.required) = true;
// Path on the filesystem to source and watch for configuration updates. // 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. // the certificate and key files are also watched for updates.
// //
// .. note:: // .. note::
@ -186,7 +186,7 @@ message ConfigSource {
// [#not-implemented-hide:] // [#not-implemented-hide:]
// When set, the client will access the resources from the same server it got the // 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 // 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 // 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.) // 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 // 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] // [#protodoc-title: gRPC services]
// gRPC service configuration. This is used by :ref:`ApiConfigSource // 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] // [#next-free-field: 6]
message GrpcService { message GrpcService {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.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"; "envoy.api.v2.core.GrpcService.EnvoyGrpc";
// The name of the upstream gRPC cluster. SSL credentials will be supplied // 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 // in the :ref:`Cluster <envoy_v3_api_msg_config.cluster.v3.Cluster>` :ref:`transport_socket
// <envoy_api_field_config.cluster.v3.Cluster.transport_socket>`. // <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket>`.
string cluster_name = 1 [(validate.rules).string = {min_len: 1}]; 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`. // 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 // The target URI when using the `Google C++ gRPC client
// <https://github.com/grpc/grpc>`_. SSL credentials will be supplied in // <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}]; string target_uri = 1 [(validate.rules).string = {min_len: 1}];
ChannelCredentials channel_credentials = 2; ChannelCredentials channel_credentials = 2;

@ -85,7 +85,7 @@ message HealthCheck {
// The value of the host header in the HTTP health check request. If // 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 // 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 // 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}]; 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 // 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 // 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 // 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. // range are required. Only statuses in the range [100, 600) are allowed.
repeated type.v3.Int64Range expected_statuses = 9; 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 // An optional service name parameter which is used to validate the identity of
// the health checked cluster using a :ref:`StringMatcher // 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. // <arch_overview_health_checking_identity>` for more information.
type.matcher.v3.StringMatcher service_name_matcher = 11; 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 // 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 // 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 // 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 string authority = 2
[(validate.rules).string = {well_known_regex: HTTP_HEADER_VALUE strict: false}]; [(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 // Specifies the ALPN protocols for health check connections. This is useful if the
// corresponding upstream is using ALPN-based :ref:`FilterChainMatch // 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. // versus data connections. If empty, no ALPN protocols will be set on health check connections.
repeated string alpn_protocols = 1; repeated string alpn_protocols = 1;
} }
@ -339,7 +339,7 @@ message HealthCheck {
TlsOptions tls_options = 21; TlsOptions tls_options = 21;
// Optional key/value pairs that will be used to match a transport socket from those specified in the cluster's // 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 // For example, the following match criteria
// //
// .. code-block:: yaml // .. code-block:: yaml
@ -347,7 +347,7 @@ message HealthCheck {
// transport_socket_match_criteria: // transport_socket_match_criteria:
// useMTLS: true // 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 // .. code-block:: yaml
// //
@ -360,13 +360,13 @@ message HealthCheck {
// config: { ... } # tls socket configuration // config: { ... } # tls socket configuration
// //
// If this field is set, then for health checks it will supersede an entry of *envoy.transport_socket* in the // 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 // This allows using different transport socket capabilities for health checking versus proxying to the
// endpoint. // endpoint.
// //
// If the key/values pairs specified do not match any // If the key/values pairs specified do not match any
// :ref:`transport socket matches <envoy_api_field_config.cluster.v3.Cluster.transport_socket_matches>`, // :ref:`transport socket matches <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket_matches>`,
// the cluster's :ref:`transport socket <envoy_api_field_config.cluster.v3.Cluster.transport_socket>` // the cluster's :ref:`transport socket <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket>`
// will be used for health check socket configuration. // will be used for health check socket configuration.
google.protobuf.Struct transport_socket_match_criteria = 23; 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 // 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 // downstream connection a drain sequence will occur prior to closing the connection, see
// :ref:`drain_timeout // :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. // 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. // 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" // 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 // 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; google.protobuf.Duration idle_timeout = 1;
// The maximum duration of a connection. The duration is defined as a period since a connection // 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 // 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 // the connection will be closed. Drain sequence will occur prior to closing the connection if
// if's applicable. See :ref:`drain_timeout // 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. // Note: not implemented for upstream connections.
google.protobuf.Duration max_connection_duration = 3; google.protobuf.Duration max_connection_duration = 3;

@ -40,7 +40,7 @@ message EnvoyInternalAddress {
oneof address_name_specifier { oneof address_name_specifier {
option (validate.required) = true; 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; 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 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: // to bind to any address. [#comment:TODO(zuercher) reinstate when implemented:
// It is possible to distinguish a Listener address via the prefix/suffix matching // 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 // in :ref:`FilterChainMatch <envoy_v3_api_msg_config.listener.v3.FilterChainMatch>`.] When used
// within an upstream :ref:`BindConfig <envoy_api_msg_config.core.v4alpha.BindConfig>`, the address // 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 // 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 // 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 // (*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}]; string address = 2 [(validate.rules).string = {min_len: 1}];
oneof port_specifier { oneof port_specifier {
@ -75,7 +75,7 @@ message SocketAddress {
uint32 port_value = 3 [(validate.rules).uint32 = {lte: 65535}]; uint32 port_value = 3 [(validate.rules).uint32 = {lte: 65535}];
// This is only valid if :ref:`resolver_name // 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. // named resolver is capable of named port resolution.
string named_port = 4; string named_port = 4;
} }
@ -120,7 +120,7 @@ message BindConfig {
// Whether to set the *IP_FREEBIND* option when creating the socket. When this // Whether to set the *IP_FREEBIND* option when creating the socket. When this
// flag is set to true, allows the :ref:`source_address // 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 // 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 // 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 // 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 // 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 // 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 = { google.protobuf.Duration base_interval = 1 [(validate.rules).duration = {
required: true required: true
gte {nanos: 1000000} gte {nanos: 1000000}
@ -30,8 +30,8 @@ message BackoffStrategy {
// Specifies the maximum interval between retries. This parameter is optional, // Specifies the maximum interval between retries. This parameter is optional,
// but must be greater than or equal to the :ref:`base_interval // 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 // 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 {}}]; google.protobuf.Duration max_interval = 2 [(validate.rules).duration = {gt {}}];
} }

@ -66,12 +66,12 @@ enum TrafficDirection {
message Locality { message Locality {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.core.v3.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; string region = 1;
// Defines the local service zone where Envoy is running. Though optional, it // Defines the local service zone where Envoy is running. Though optional, it
// should be set if discovery service routing is used and the discovery // 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 // either in this message or via :option:`--service-zone`. The meaning of zone
// is context dependent, e.g. `Availability Zone (AZ) // is context dependent, e.g. `Availability Zone (AZ)
// <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html>`_ // <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: // optional, it should be set if any of the following features are used:
// :ref:`statsd <arch_overview_statistics>`, :ref:`health check cluster // :ref:`statsd <arch_overview_statistics>`, :ref:`health check cluster
// verification // verification
// <envoy_api_field_config.core.v4alpha.HealthCheck.HttpHealthCheck.service_name_matcher>`, // <envoy_v3_api_field_config.core.v3.HealthCheck.HttpHealthCheck.service_name_matcher>`,
// :ref:`runtime override directory <envoy_api_msg_config.bootstrap.v4alpha.Runtime>`, // :ref:`runtime override directory <envoy_v3_api_msg_config.bootstrap.v3.Runtime>`,
// :ref:`user agent addition // :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:`HTTP global rate limiting <config_http_filters_rate_limit>`,
// :ref:`CDS <config_cluster_manager_cds>`, and :ref:`HTTP tracing // :ref:`CDS <config_cluster_manager_cds>`, and :ref:`HTTP tracing
// <arch_overview_tracing>`, either in this message or via // <arch_overview_tracing>`, either in this message or via
@ -348,7 +348,7 @@ message DataSource {
message RetryPolicy { message RetryPolicy {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.core.v3.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 // This parameter is optional, in which case the default base interval is 1000 milliseconds. The
// default maximum interval is 10 times the base interval. // default maximum interval is 10 times the base interval.
BackoffStrategy retry_back_off = 1; BackoffStrategy retry_back_off = 1;
@ -390,7 +390,7 @@ message AsyncDataSource {
} }
// Configuration for transport socket in :ref:`listeners <config_listeners>` and // 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 // empty, a default transport socket implementation and configuration will be
// chosen based on the platform and existence of tls_context. // chosen based on the platform and existence of tls_context.
message TransportSocket { message TransportSocket {
@ -418,7 +418,7 @@ message TransportSocket {
// .. note:: // .. note::
// //
// Parsing of the runtime key's data is implemented such that it may be represented as a // 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 // 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 // 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. // 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 // 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. // specify that ADS is to be used.
message AggregatedConfigSource { message AggregatedConfigSource {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
@ -121,7 +121,7 @@ message AggregatedConfigSource {
// [#not-implemented-hide:] // [#not-implemented-hide:]
// Self-referencing config source options. This is currently empty, but when // 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. // specify that other data can be obtained from the same server.
message SelfConfigSource { message SelfConfigSource {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
@ -148,7 +148,7 @@ message RateLimitSettings {
// Configuration for :ref:`listeners <config_listeners>`, :ref:`clusters // Configuration for :ref:`listeners <config_listeners>`, :ref:`clusters
// <config_cluster_manager>`, :ref:`routes // <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 // <arch_overview_service_discovery>` etc. may either be sourced from the
// filesystem or from an xDS API source. Filesystem configs are watched with // filesystem or from an xDS API source. Filesystem configs are watched with
// inotify for updates. // inotify for updates.
@ -166,7 +166,7 @@ message ConfigSource {
option (validate.required) = true; option (validate.required) = true;
// Path on the filesystem to source and watch for configuration updates. // 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. // the certificate and key files are also watched for updates.
// //
// .. note:: // .. note::
@ -190,7 +190,7 @@ message ConfigSource {
// [#not-implemented-hide:] // [#not-implemented-hide:]
// When set, the client will access the resources from the same server it got the // 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 // 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 // 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.) // 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 // 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] // [#protodoc-title: gRPC services]
// gRPC service configuration. This is used by :ref:`ApiConfigSource // 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] // [#next-free-field: 6]
message GrpcService { message GrpcService {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.core.v3.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"; "envoy.config.core.v3.GrpcService.EnvoyGrpc";
// The name of the upstream gRPC cluster. SSL credentials will be supplied // 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 // in the :ref:`Cluster <envoy_v3_api_msg_config.cluster.v3.Cluster>` :ref:`transport_socket
// <envoy_api_field_config.cluster.v4alpha.Cluster.transport_socket>`. // <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket>`.
string cluster_name = 1 [(validate.rules).string = {min_len: 1}]; 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`. // 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 // The target URI when using the `Google C++ gRPC client
// <https://github.com/grpc/grpc>`_. SSL credentials will be supplied in // <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}]; string target_uri = 1 [(validate.rules).string = {min_len: 1}];
ChannelCredentials channel_credentials = 2; ChannelCredentials channel_credentials = 2;

@ -85,7 +85,7 @@ message HealthCheck {
// The value of the host header in the HTTP health check request. If // 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 // 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 // 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}]; 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 // 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 // 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 // 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. // range are required. Only statuses in the range [100, 600) are allowed.
repeated type.v3.Int64Range expected_statuses = 9; 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 // An optional service name parameter which is used to validate the identity of
// the health checked cluster using a :ref:`StringMatcher // 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. // <arch_overview_health_checking_identity>` for more information.
type.matcher.v4alpha.StringMatcher service_name_matcher = 11; 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 // 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 // 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 // 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 string authority = 2
[(validate.rules).string = {well_known_regex: HTTP_HEADER_VALUE strict: false}]; [(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 // Specifies the ALPN protocols for health check connections. This is useful if the
// corresponding upstream is using ALPN-based :ref:`FilterChainMatch // 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. // versus data connections. If empty, no ALPN protocols will be set on health check connections.
repeated string alpn_protocols = 1; repeated string alpn_protocols = 1;
} }
@ -339,7 +339,7 @@ message HealthCheck {
TlsOptions tls_options = 21; TlsOptions tls_options = 21;
// Optional key/value pairs that will be used to match a transport socket from those specified in the cluster's // 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 // For example, the following match criteria
// //
// .. code-block:: yaml // .. code-block:: yaml
@ -347,7 +347,7 @@ message HealthCheck {
// transport_socket_match_criteria: // transport_socket_match_criteria:
// useMTLS: true // 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 // .. code-block:: yaml
// //
@ -360,13 +360,13 @@ message HealthCheck {
// config: { ... } # tls socket configuration // config: { ... } # tls socket configuration
// //
// If this field is set, then for health checks it will supersede an entry of *envoy.transport_socket* in the // 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 // This allows using different transport socket capabilities for health checking versus proxying to the
// endpoint. // endpoint.
// //
// If the key/values pairs specified do not match any // If the key/values pairs specified do not match any
// :ref:`transport socket matches <envoy_api_field_config.cluster.v4alpha.Cluster.transport_socket_matches>`, // :ref:`transport socket matches <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket_matches>`,
// the cluster's :ref:`transport socket <envoy_api_field_config.cluster.v4alpha.Cluster.transport_socket>` // the cluster's :ref:`transport socket <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket>`
// will be used for health check socket configuration. // will be used for health check socket configuration.
google.protobuf.Struct transport_socket_match_criteria = 23; 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 // 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 // downstream connection a drain sequence will occur prior to closing the connection, see
// :ref:`drain_timeout // :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. // 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. // 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" // 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 // 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; google.protobuf.Duration idle_timeout = 1;
// The maximum duration of a connection. The duration is defined as a period since a connection // 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 // 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 // the connection will be closed. Drain sequence will occur prior to closing the connection if
// if's applicable. See :ref:`drain_timeout // 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. // Note: not implemented for upstream connections.
google.protobuf.Duration max_connection_duration = 3; google.protobuf.Duration max_connection_duration = 3;

@ -101,9 +101,9 @@ message ClusterLoadAssignment {
} }
// Name of the cluster. This will be the :ref:`service_name // 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 // 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}]; string cluster_name = 1 [(validate.rules).string = {min_len: 1}];
// List of endpoints to load balance to. // List of endpoints to load balance to.

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

@ -20,7 +20,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Load Report] // [#protodoc-title: Load Report]
// These are stats Envoy reports to the management server at a frequency defined by // 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. // Stats per upstream region/zone and optionally per subzone.
// [#next-free-field: 9] // [#next-free-field: 9]
message UpstreamLocalityStats { message UpstreamLocalityStats {
@ -52,7 +52,7 @@ message UpstreamLocalityStats {
// Endpoint granularity stats information for this locality. This information // Endpoint granularity stats information for this locality. This information
// is populated if the Server requests it by setting // 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; repeated UpstreamEndpointStats upstream_endpoint_stats = 7;
// [#not-implemented-hide:] The priority of the endpoint group these metrics // [#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 // 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 ID: 7
// [#next-free-field: 7] // [#next-free-field: 7]
message ClusterStats { message ClusterStats {

@ -60,7 +60,7 @@ message Listener {
// set use_original_dst parameter to true. Default is true. // set use_original_dst parameter to true. Default is true.
// //
// This is deprecated. Use :ref:`Listener.bind_to_port // 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; google.protobuf.BoolValue bind_to_port = 1;
} }
@ -111,8 +111,8 @@ message Listener {
string stat_prefix = 28; string stat_prefix = 28;
// A list of filter chains to consider for this listener. The // 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:`FilterChain <envoy_v3_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:`FilterChainMatch <envoy_v3_api_msg_config.listener.v3.FilterChainMatch>` criteria is used on a
// connection. // connection.
// //
// Example using SNI for filter chain selection can be found in the // 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 // 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 // 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 // filters are processed sequentially right after a socket has been accepted by the listener, and
// before a connection is created. // before a connection is created.
// UDP Listener filters can be specified when the protocol in the listener socket address in // 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 // :ref:`protocol <envoy_v3_api_field_config.core.v3.SocketAddress.protocol>` is :ref:`UDP
// <envoy_api_enum_value_config.core.v3.SocketAddress.Protocol.UDP>`. // <envoy_v3_api_enum_value_config.core.v3.SocketAddress.Protocol.UDP>`.
// UDP listeners currently support a single filter. // UDP listeners currently support a single filter.
repeated ListenerFilter listener_filters = 9; repeated ListenerFilter listener_filters = 9;
@ -176,7 +176,7 @@ message Listener {
// *iptables* *TPROXY* target, in which case the original source and destination addresses and // *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 // 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 // :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 // "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 // 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 // using *TPROXY* cannot be distinguished from connections redirected using *TPROXY* and are
@ -221,14 +221,14 @@ message Listener {
core.v3.TrafficDirection traffic_direction = 16; core.v3.TrafficDirection traffic_direction = 16;
// If the protocol in the listener socket address in :ref:`protocol // If the protocol in the listener socket address in :ref:`protocol
// <envoy_api_field_config.core.v3.SocketAddress.protocol>` is :ref:`UDP // <envoy_v3_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_enum_value_config.core.v3.SocketAddress.Protocol.UDP>`, this field specifies UDP
// listener specific configuration. // listener specific configuration.
UdpListenerConfig udp_listener_config = 18; UdpListenerConfig udp_listener_config = 18;
// Used to represent an API listener, which is used in non-proxy clients. The type of API // 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. // 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. // should be set.
// //
// .. note:: // .. note::
@ -249,8 +249,8 @@ message Listener {
// worker threads. // worker threads.
// //
// In the scenario that the listener X redirects all the connections to the listeners Y1 and Y2 // 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 // 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_api_field_config.listener.v3.Listener.bind_to_port>` to false in Y1 and Y2, // 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 // 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. // enable the balance config in Y1 and Y2 to balance the connections among the workers.
ConnectionBalanceConfig connection_balance_config = 20; ConnectionBalanceConfig connection_balance_config = 20;
@ -277,7 +277,7 @@ message Listener {
// Whether the listener should bind to the port. A listener that doesn't // Whether the listener should bind to the port. A listener that doesn't
// bind can only receive connections redirected from other listeners that set // 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. // to true. Default is true.
google.protobuf.BoolValue bind_to_port = 26; 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 // 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. // :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 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`. // field `envoy_internal_address`.
// //
// There are some limitations are derived from the implementation. The known limitations include // 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. // 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:`tcp_backlog_size <envoy_v3_api_field_config.listener.v3.Listener.tcp_backlog_size>`
// * :ref:`freebind <envoy_api_field_config.listener.v3.Listener.freebind>` // * :ref:`freebind <envoy_v3_api_field_config.listener.v3.Listener.freebind>`
// * :ref:`transparent <envoy_api_field_config.listener.v3.Listener.transparent>` // * :ref:`transparent <envoy_v3_api_field_config.listener.v3.Listener.transparent>`
// [#not-implemented-hide:] // [#not-implemented-hide:]
InternalListenerConfig internal_listener = 27; InternalListenerConfig internal_listener = 27;
} }

@ -239,7 +239,7 @@ message FilterChain {
// Optional custom transport socket implementation to use for downstream connections. // Optional custom transport socket implementation to use for downstream connections.
// To setup TLS, set a transport socket with name `tls` and // 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 // If no transport socket configuration is specified, new connections
// will be set up with plaintext. // will be set up with plaintext.
// [#extension-category: envoy.transport_sockets.downstream] // [#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. // 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. // for further examples.
ListenerFilterChainMatchPredicate filter_disabled = 4; ListenerFilterChainMatchPredicate filter_disabled = 4;
} }

@ -62,7 +62,7 @@ message Listener {
// set use_original_dst parameter to true. Default is true. // set use_original_dst parameter to true. Default is true.
// //
// This is deprecated. Use :ref:`Listener.bind_to_port // 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; google.protobuf.BoolValue bind_to_port = 1;
} }
@ -117,8 +117,8 @@ message Listener {
string stat_prefix = 28; string stat_prefix = 28;
// A list of filter chains to consider for this listener. The // 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:`FilterChain <envoy_v3_api_msg_config.listener.v3.FilterChain>` with the most specific
// :ref:`FilterChainMatch <envoy_api_msg_config.listener.v4alpha.FilterChainMatch>` criteria is used on a // :ref:`FilterChainMatch <envoy_v3_api_msg_config.listener.v3.FilterChainMatch>` criteria is used on a
// connection. // connection.
// //
// Example using SNI for filter chain selection can be found in the // 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 // 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 // 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 // filters are processed sequentially right after a socket has been accepted by the listener, and
// before a connection is created. // before a connection is created.
// UDP Listener filters can be specified when the protocol in the listener socket address in // 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 // :ref:`protocol <envoy_v3_api_field_config.core.v3.SocketAddress.protocol>` is :ref:`UDP
// <envoy_api_enum_value_config.core.v4alpha.SocketAddress.Protocol.UDP>`. // <envoy_v3_api_enum_value_config.core.v3.SocketAddress.Protocol.UDP>`.
// UDP listeners currently support a single filter. // UDP listeners currently support a single filter.
repeated ListenerFilter listener_filters = 9; repeated ListenerFilter listener_filters = 9;
@ -178,7 +178,7 @@ message Listener {
// *iptables* *TPROXY* target, in which case the original source and destination addresses and // *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 // 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 // :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 // "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 // 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 // using *TPROXY* cannot be distinguished from connections redirected using *TPROXY* and are
@ -223,14 +223,14 @@ message Listener {
core.v4alpha.TrafficDirection traffic_direction = 16; core.v4alpha.TrafficDirection traffic_direction = 16;
// If the protocol in the listener socket address in :ref:`protocol // If the protocol in the listener socket address in :ref:`protocol
// <envoy_api_field_config.core.v4alpha.SocketAddress.protocol>` is :ref:`UDP // <envoy_v3_api_field_config.core.v3.SocketAddress.protocol>` is :ref:`UDP
// <envoy_api_enum_value_config.core.v4alpha.SocketAddress.Protocol.UDP>`, this field specifies UDP // <envoy_v3_api_enum_value_config.core.v3.SocketAddress.Protocol.UDP>`, this field specifies UDP
// listener specific configuration. // listener specific configuration.
UdpListenerConfig udp_listener_config = 18; UdpListenerConfig udp_listener_config = 18;
// Used to represent an API listener, which is used in non-proxy clients. The type of API // 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. // 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. // should be set.
// //
// .. note:: // .. note::
@ -251,8 +251,8 @@ message Listener {
// worker threads. // worker threads.
// //
// In the scenario that the listener X redirects all the connections to the listeners Y1 and Y2 // 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 // 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_api_field_config.listener.v4alpha.Listener.bind_to_port>` to false in Y1 and Y2, // 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 // 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. // enable the balance config in Y1 and Y2 to balance the connections among the workers.
ConnectionBalanceConfig connection_balance_config = 20; ConnectionBalanceConfig connection_balance_config = 20;
@ -279,7 +279,7 @@ message Listener {
// Whether the listener should bind to the port. A listener that doesn't // Whether the listener should bind to the port. A listener that doesn't
// bind can only receive connections redirected from other listeners that set // 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. // to true. Default is true.
google.protobuf.BoolValue bind_to_port = 26; 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 // 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. // :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 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`. // field `envoy_internal_address`.
// //
// There are some limitations are derived from the implementation. The known limitations include // 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. // 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:`tcp_backlog_size <envoy_v3_api_field_config.listener.v3.Listener.tcp_backlog_size>`
// * :ref:`freebind <envoy_api_field_config.listener.v4alpha.Listener.freebind>` // * :ref:`freebind <envoy_v3_api_field_config.listener.v3.Listener.freebind>`
// * :ref:`transparent <envoy_api_field_config.listener.v4alpha.Listener.transparent>` // * :ref:`transparent <envoy_v3_api_field_config.listener.v3.Listener.transparent>`
// [#not-implemented-hide:] // [#not-implemented-hide:]
InternalListenerConfig internal_listener = 27; InternalListenerConfig internal_listener = 27;
} }

@ -229,7 +229,7 @@ message FilterChain {
// Optional custom transport socket implementation to use for downstream connections. // Optional custom transport socket implementation to use for downstream connections.
// To setup TLS, set a transport socket with name `tls` and // 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 // If no transport socket configuration is specified, new connections
// will be set up with plaintext. // will be set up with plaintext.
// [#extension-category: envoy.transport_sockets.downstream] // [#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. // 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. // for further examples.
ListenerFilterChainMatchPredicate filter_disabled = 4; ListenerFilterChainMatchPredicate filter_disabled = 4;
} }

@ -19,7 +19,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Metrics service] // [#protodoc-title: Metrics service]
// Metrics Service is configured as a built-in *envoy.stat_sinks.metrics_service* :ref:`StatsSink // 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. // Metrics Service.
// [#extension: envoy.stat_sinks.metrics_service] // [#extension: envoy.stat_sinks.metrics_service]
message MetricsServiceConfig { message MetricsServiceConfig {
@ -36,7 +36,7 @@ message MetricsServiceConfig {
// If true, counters are reported as the delta between flushing intervals. Otherwise, the current // If true, counters are reported as the delta between flushing intervals. Otherwise, the current
// counter value is reported. Defaults to false. // counter value is reported. Defaults to false.
// Eventually (https://github.com/envoyproxy/envoy/issues/10968) if this value is not set, the // 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; 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, // 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; string name = 1;
// Stats sink specific configuration which depends on the sink being instantiated. See // 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] // [#extension-category: envoy.stats_sinks]
oneof config_type { oneof config_type {
google.protobuf.Any typed_config = 3; google.protobuf.Any typed_config = 3;
@ -49,13 +49,13 @@ message StatsConfig {
// Each stat name is iteratively processed through these tag specifiers. // 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 // 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. // same portion of the match.
repeated TagSpecifier stats_tags = 1; repeated TagSpecifier stats_tags = 1;
// Use all default tag regexes specified in Envoy. These can be combined with // Use all default tag regexes specified in Envoy. These can be combined with
// custom tags specified in :ref:`stats_tags // 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. // the custom tags.
// //
// .. note:: // .. note::
@ -117,7 +117,7 @@ message StatsMatcher {
// However, StatsMatcher can be used to limit the creation of families of stats in order to // 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 // conserve memory. Stats can either be disabled entirely, or they can be
// limited by either an exclusion or an inclusion list of :ref:`StringMatcher // 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 // * If `reject_all` is set to `true`, no stats will be instantiated. If `reject_all` is set to
// `false`, all stats will be instantiated. // `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 // 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 // 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 // <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 // <envoy_v3_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 // neither :ref:`regex <envoy_v3_api_field_config.metrics.v3.TagSpecifier.regex>` or
// :ref:`fixed_value <envoy_api_field_config.metrics.v3.TagSpecifier.fixed_value>` were specified, // :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. // Envoy will attempt to find that name in its set of defaults and use the accompanying regex.
// //
// .. note:: // .. note::
@ -350,7 +350,7 @@ message StatsdSink {
// Stats configuration proto schema for built-in *envoy.stat_sinks.dog_statsd* sink. // 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/>`_ // The sink emits stats with `DogStatsD <https://docs.datadoghq.com/guides/dogstatsd/>`_
// compatible tags. Tags are configurable via :ref:`StatsConfig // 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] // [#extension: envoy.stat_sinks.dog_statsd]
message DogStatsdSink { message DogStatsdSink {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
@ -367,7 +367,7 @@ message DogStatsdSink {
} }
// Optional custom metric name prefix. See :ref:`StatsdSink's prefix field // 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; string prefix = 3;
// Optional max datagram size to use when sending UDP messages. By default Envoy // 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] // [#protodoc-title: Metrics service]
// Metrics Service is configured as a built-in *envoy.stat_sinks.metrics_service* :ref:`StatsSink // 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. // Metrics Service.
// [#extension: envoy.stat_sinks.metrics_service] // [#extension: envoy.stat_sinks.metrics_service]
message MetricsServiceConfig { message MetricsServiceConfig {
@ -36,7 +36,7 @@ message MetricsServiceConfig {
// If true, counters are reported as the delta between flushing intervals. Otherwise, the current // If true, counters are reported as the delta between flushing intervals. Otherwise, the current
// counter value is reported. Defaults to false. // counter value is reported. Defaults to false.
// Eventually (https://github.com/envoyproxy/envoy/issues/10968) if this value is not set, the // 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; 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, // 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; string name = 1;
// Stats sink specific configuration which depends on the sink being instantiated. See // 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] // [#extension-category: envoy.stats_sinks]
oneof config_type { oneof config_type {
google.protobuf.Any typed_config = 3; google.protobuf.Any typed_config = 3;
@ -49,13 +49,13 @@ message StatsConfig {
// Each stat name is iteratively processed through these tag specifiers. // 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 // 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. // same portion of the match.
repeated TagSpecifier stats_tags = 1; repeated TagSpecifier stats_tags = 1;
// Use all default tag regexes specified in Envoy. These can be combined with // Use all default tag regexes specified in Envoy. These can be combined with
// custom tags specified in :ref:`stats_tags // 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. // the custom tags.
// //
// .. note:: // .. note::
@ -117,7 +117,7 @@ message StatsMatcher {
// However, StatsMatcher can be used to limit the creation of families of stats in order to // 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 // conserve memory. Stats can either be disabled entirely, or they can be
// limited by either an exclusion or an inclusion list of :ref:`StringMatcher // 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 // * If `reject_all` is set to `true`, no stats will be instantiated. If `reject_all` is set to
// `false`, all stats will be instantiated. // `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 // 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 // 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 // <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 // <envoy_v3_api_field_config.metrics.v3.TagSpecifier.tag_name>` is provided in the config and
// neither :ref:`regex <envoy_api_field_config.metrics.v4alpha.TagSpecifier.regex>` or // neither :ref:`regex <envoy_v3_api_field_config.metrics.v3.TagSpecifier.regex>` or
// :ref:`fixed_value <envoy_api_field_config.metrics.v4alpha.TagSpecifier.fixed_value>` were specified, // :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. // Envoy will attempt to find that name in its set of defaults and use the accompanying regex.
// //
// .. note:: // .. note::
@ -353,7 +353,7 @@ message StatsdSink {
// Stats configuration proto schema for built-in *envoy.stat_sinks.dog_statsd* sink. // 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/>`_ // The sink emits stats with `DogStatsD <https://docs.datadoghq.com/guides/dogstatsd/>`_
// compatible tags. Tags are configurable via :ref:`StatsConfig // 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] // [#extension: envoy.stat_sinks.dog_statsd]
message DogStatsdSink { message DogStatsdSink {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
@ -370,7 +370,7 @@ message DogStatsdSink {
} }
// Optional custom metric name prefix. See :ref:`StatsdSink's prefix field // 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; string prefix = 3;
// Optional max datagram size to use when sending UDP messages. By default Envoy // 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>` // * If the :ref:`TLS Inspector <config_listener_filters_tls_inspector>`
// filter is not added, and if a `FilterChainMatch` is not defined for // filter is not added, and if a `FilterChainMatch` is not defined for
// the :ref:`server name // 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 // a TLS connection's requested SNI server name will be treated as if it
// wasn't present. // wasn't present.
// //
@ -265,7 +265,7 @@ message Principal {
// A CIDR block that describes the downstream remote/origin address. // A CIDR block that describes the downstream remote/origin address.
// Note: This is always the physical peer even if the // 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, // inferred from for example the x-forwarder-for header, proxy protocol,
// etc. // etc.
core.v3.CidrRange direct_remote_ip = 10; core.v3.CidrRange direct_remote_ip = 10;
@ -273,7 +273,7 @@ message Principal {
// A CIDR block that describes the downstream remote/origin address. // A CIDR block that describes the downstream remote/origin address.
// Note: This may not be the physical peer and could be different from the // Note: This may not be the physical peer and could be different from the
// :ref:`direct_remote_ip // :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 // remote ip is inferred from for example the x-forwarder-for header, proxy
// protocol, etc. // protocol, etc.
core.v3.CidrRange remote_ip = 11; core.v3.CidrRange remote_ip = 11;

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

@ -27,8 +27,8 @@ message RouteConfiguration {
// The name of the route configuration. For example, it might match // The name of the route configuration. For example, it might match
// :ref:`route_config_name // :ref:`route_config_name
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.Rds.route_config_name>` in // <envoy_v3_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`. // :ref:`envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.Rds`.
string name = 1; string name = 1;
// An array of virtual hosts that make up the route table. // 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 // 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 // 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 // after headers from any enclosed :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` or
// :ref:`envoy_api_msg_config.route.v3.RouteAction`. For more information, including details on // :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 // header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`. // <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v3.HeaderValueOption response_headers_to_add = 4 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 // 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 // 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 // applied after headers from any enclosed :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` or
// :ref:`envoy_api_msg_config.route.v3.RouteAction`. For more information, including details on // :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 // header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`. // <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v3.HeaderValueOption request_headers_to_add = 6 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 // 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 selected at runtime. This setting defaults to true if the route table
// is statically defined via the :ref:`route_config // 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 // option. This setting default to false if the route table is loaded dynamically via the
// :ref:`rds // :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 // option. Users may wish to override the default behavior in certain cases (for example when
// using CDS with a static route table). // using CDS with a static route table).
google.protobuf.BoolValue validate_clusters = 7; google.protobuf.BoolValue validate_clusters = 7;
// The maximum bytes of the response :ref:`direct response body // 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. // is 4096.
// //
// .. warning:: // .. warning::
// //
// Envoy currently holds the content of :ref:`direct response body // 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 // this to be larger than the default 4KB, since the allocated memory for direct response body
// is not subject to data plane buffering controls. // 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 // 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 // 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 // after headers from enclosed :ref:`envoy_v3_api_msg_config.route.v3.Route` and before headers from the
// enclosing :ref:`envoy_api_msg_config.route.v3.RouteConfiguration`. For more information, including // 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 // details on header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`. // <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v3.HeaderValueOption request_headers_to_add = 7 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 // 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 // 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 // after headers from enclosed :ref:`envoy_v3_api_msg_config.route.v3.Route` and before headers from the
// enclosing :ref:`envoy_api_msg_config.route.v3.RouteConfiguration`. For more information, including // 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 // details on header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`. // <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v3.HeaderValueOption response_headers_to_add = 10 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>` // specific; see the :ref:`HTTP filter documentation <config_http_filters>`
// for if and how it is utilized. // for if and how it is utilized.
// [#comment: An entry's value may be wrapped in a // [#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.] // message to specify additional options.]
map<string, google.protobuf.Any> typed_per_filter_config = 15; 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. // will see the attempt count as perceived by the second Envoy. Defaults to false.
// This header is unaffected by the // This header is unaffected by the
// :ref:`suppress_envoy_headers // :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.] // [#next-major-version: rename to include_attempt_count_in_request.]
bool include_request_attempt_count = 14; 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. // will see the attempt count as perceived by the Envoy closest upstream from itself. Defaults to false.
// This header is unaffected by the // This header is unaffected by the
// :ref:`suppress_envoy_headers // :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; bool include_attempt_count_in_response = 19;
// Indicates the retry policy for all routes in this virtual host. Note that setting a // Indicates the retry policy for all routes in this virtual host. Note that setting a
@ -173,7 +173,7 @@ message VirtualHost {
// [#not-implemented-hide:] // [#not-implemented-hide:]
// Specifies the configuration for retry policy extension. Note that setting a route level entry // 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 // 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. // set if this field is used.
google.protobuf.Any retry_policy_typed_config = 20; google.protobuf.Any retry_policy_typed_config = 20;
@ -201,7 +201,7 @@ message FilterAction {
// .. attention:: // .. attention::
// //
// Envoy supports routing on HTTP method via :ref:`header matching // 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] // [#next-free-field: 19]
message Route { message Route {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.route.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 // specific; see the :ref:`HTTP filter documentation <config_http_filters>` for
// if and how it is utilized. // if and how it is utilized.
// [#comment: An entry's value may be wrapped in a // [#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.] // message to specify additional options.]
map<string, google.protobuf.Any> typed_per_filter_config = 13; map<string, google.protobuf.Any> typed_per_filter_config = 13;
// Specifies a set of headers that will be added to requests matching this // 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 // route. Headers specified at this level are applied before headers from the
// enclosing :ref:`envoy_api_msg_config.route.v3.VirtualHost` and // enclosing :ref:`envoy_v3_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.RouteConfiguration`. For more information, including details on
// header value syntax, see the documentation on :ref:`custom request headers // header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`. // <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v3.HeaderValueOption request_headers_to_add = 9 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 // Specifies a set of headers that will be added to responses to requests
// matching this route. Headers specified at this level are applied before // matching this route. Headers specified at this level are applied before
// headers from the enclosing :ref:`envoy_api_msg_config.route.v3.VirtualHost` and // headers from the enclosing :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` and
// :ref:`envoy_api_msg_config.route.v3.RouteConfiguration`. For more information, including // :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. For more information, including
// details on header value syntax, see the documentation on // details on header value syntax, see the documentation on
// :ref:`custom request headers <config_http_conn_man_headers_custom_request_headers>`. // :ref:`custom request headers <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v3.HeaderValueOption response_headers_to_add = 10 repeated core.v3.HeaderValueOption response_headers_to_add = 10
@ -302,9 +302,9 @@ message Route {
google.protobuf.UInt32Value per_request_buffer_limit_bytes = 16; 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 // 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 // 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 // traffic to be forwarded to each cluster. The router selects an upstream cluster based on the
// weights. // weights.
@ -325,7 +325,7 @@ message WeightedCluster {
string name = 1 [(validate.rules).string = {min_len: 1}]; string name = 1 [(validate.rules).string = {min_len: 1}];
// An integer between 0 and :ref:`total_weight // 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 // 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. // entries in the clusters array must add up to the total_weight, which defaults to 100.
google.protobuf.UInt32Value weight = 2; 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 // 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 // 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 // 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*. // values here taking precedence. The filter name should be specified as *envoy.lb*.
core.v3.Metadata metadata_match = 3; core.v3.Metadata metadata_match = 3;
// Specifies a list of headers to be added to requests when this cluster is selected // 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 // 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_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_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.RouteConfiguration`. For more information, including details on
// header value syntax, see the documentation on :ref:`custom request headers // header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`. // <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v3.HeaderValueOption request_headers_to_add = 4 repeated core.v3.HeaderValueOption request_headers_to_add = 4
[(validate.rules).repeated = {max_items: 1000}]; [(validate.rules).repeated = {max_items: 1000}];
// Specifies a list of HTTP headers that should be removed from each request when // 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 = { repeated string request_headers_to_remove = 9 [(validate.rules).repeated = {
items {string {well_known_regex: HTTP_HEADER_NAME strict: false}} 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 // 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 // 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_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_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.RouteConfiguration`. For more information, including details on
// header value syntax, see the documentation on :ref:`custom request headers // header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`. // <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v3.HeaderValueOption response_headers_to_add = 5 repeated core.v3.HeaderValueOption response_headers_to_add = 5
[(validate.rules).repeated = {max_items: 1000}]; [(validate.rules).repeated = {max_items: 1000}];
// Specifies a list of headers to be removed from responses when this cluster is selected // 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 = { repeated string response_headers_to_remove = 6 [(validate.rules).repeated = {
items {string {well_known_regex: HTTP_HEADER_NAME strict: false}} 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>` // specific; see the :ref:`HTTP filter documentation <config_http_filters>`
// for if and how it is utilized. // for if and how it is utilized.
// [#comment: An entry's value may be wrapped in a // [#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.] // message to specify additional options.]
map<string, google.protobuf.Any> typed_per_filter_config = 10; 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 // If neither ``enabled``, ``filter_enabled``, nor ``shadow_enabled`` are specified, the CORS
// filter will be enabled for 100% of the requests. // 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. // specified, Envoy will lookup the runtime key to get the percentage of requests to filter.
core.v3.RuntimeFractionalPercent filter_enabled = 9; 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 // 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. // 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 // 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. // and track the request's *Origin* to determine if it's valid but will not enforce any policies.
core.v3.RuntimeFractionalPercent shadow_enabled = 10; core.v3.RuntimeFractionalPercent shadow_enabled = 10;
@ -748,7 +748,7 @@ message RouteAction {
// This overrides any enabled/disabled upgrade filter chain specified in the // This overrides any enabled/disabled upgrade filter chain specified in the
// HttpConnectionManager // HttpConnectionManager
// :ref:`upgrade_configs // :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. // but does not affect any custom filter chain specified there.
message UpgradeConfig { message UpgradeConfig {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
@ -783,9 +783,9 @@ message RouteAction {
message MaxStreamDuration { message MaxStreamDuration {
// Specifies the maximum duration allowed for streams on the route. If not specified, the value // Specifies the maximum duration allowed for streams on the route. If not specified, the value
// from the :ref:`max_stream_duration // 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 // :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 // is used. If this field is set explicitly to zero, any
// HttpConnectionManager max_stream_duration timeout will be disabled for // HttpConnectionManager max_stream_duration timeout will be disabled for
// this route. // this route.
@ -849,7 +849,7 @@ message RouteAction {
// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints // 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 // in the upstream cluster with metadata matching what's set in this field will be considered
// for load balancing. If using :ref:`weighted_clusters // 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*. // provided there taking precedence. The filter name should be specified as *envoy.lb*.
core.v3.Metadata metadata_match = 4; core.v3.Metadata metadata_match = 4;
@ -860,16 +860,16 @@ message RouteAction {
// <config_http_filters_router_x-envoy-original-path>` header. // <config_http_filters_router_x-envoy-original-path>` header.
// //
// Only one of *prefix_rewrite* or // 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. // may be specified.
// //
// .. attention:: // .. attention::
// //
// Pay careful attention to the use of trailing slashes in the // 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, // 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 // 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 // .. code-block:: yaml
// //
@ -896,7 +896,7 @@ message RouteAction {
// before the rewrite into the :ref:`x-envoy-original-path // before the rewrite into the :ref:`x-envoy-original-path
// <config_http_filters_router_x-envoy-original-path>` header. // <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. // or *regex_rewrite* may be specified.
// //
// Examples using Google's `RE2 <https://github.com/google/re2>`_ engine: // 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, // 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 // 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 // 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. // connection manager stream idle timeout is configured.
// //
// The idle timeout is distinct to :ref:`timeout // 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 // 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. // of time the request's stream may be idle.
// //
// After header decoding, the idle timeout will apply on downstream and // 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" // 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 // 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; google.protobuf.Duration idle_timeout = 24;
// Indicates that the route has a retry policy. Note that if this is set, // Indicates that the route has a retry policy. Note that if this is set,
@ -1008,7 +1008,7 @@ message RouteAction {
// [#not-implemented-hide:] // [#not-implemented-hide:]
// Specifies the configuration for retry policy extension. Note that if this is set, it'll take // 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, // 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. // should not be set if this field is used.
google.protobuf.Any retry_policy_typed_config = 33; 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 // Specifies if the rate limit filter should include the virtual host rate
// limits. By default, if the route configured rate limits, the virtual host // 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. // request.
// //
// This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>` // 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. // Indicates that the route has a CORS policy.
CorsPolicy cors = 17; 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 // 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>`_, // `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
// or its default value (infinity) instead of // 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 // 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 // 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 // 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 // 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. // time gaps between gRPC request and response in gRPC streaming mode.
// //
@ -1071,7 +1071,7 @@ message RouteAction {
google.protobuf.Duration max_grpc_timeout = 23 google.protobuf.Duration max_grpc_timeout = 23
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"]; [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 // 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 // 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 // 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 // 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 // response back to the downstream. An upstream redirect response is defined
// by :ref:`redirect_response_codes // 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; InternalRedirectPolicy internal_redirect_policy = 34;
InternalRedirectAction internal_redirect_action = 26 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 // An internal redirect is handled, iff the number of previous internal redirects that a
// downstream request has encountered is lower than this value, and // 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 // 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, // In the case where a downstream request is bounced among multiple routes by internal redirect,
// the first route that hits this threshold, or has // 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 // set to
// :ref:`PASS_THROUGH_INTERNAL_REDIRECT // :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. // will pass the redirect back to downstream.
// //
// If not specified, at most one redirect will be followed. // If not specified, at most one redirect will be followed.
@ -1268,7 +1268,7 @@ message RetryPolicy {
// .. note:: // .. note::
// //
// If left unspecified, Envoy will use the global // 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 // 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 // retry policy, a request that times out will not be retried as the total timeout budget
// would have been exhausted. // would have been exhausted.
@ -1343,7 +1343,7 @@ message HedgePolicy {
// if there are no more retries left. // 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. // * 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. // one error code and specifies a maximum number of retries.
// //
// Defaults to false. // Defaults to false.
@ -1418,7 +1418,7 @@ message RedirectAction {
// .. attention:: // .. attention::
// //
// Pay attention to the use of trailing slashes as mentioned in // 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 string prefix_rewrite = 5
[(validate.rules).string = {well_known_regex: HTTP_HEADER_VALUE strict: false}]; [(validate.rules).string = {well_known_regex: HTTP_HEADER_VALUE strict: false}];
@ -1470,8 +1470,8 @@ message DirectResponseAction {
// .. note:: // .. note::
// //
// Headers can be specified using *response_headers_to_add* in the enclosing // 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_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` or
// :ref:`envoy_api_msg_config.route.v3.VirtualHost`. // :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`.
core.v3.DataSource body = 2; 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. // 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 // 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 // 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 // each in the HTTP connection manager and the route level, the one configured here takes
// priority. // priority.
@ -1597,14 +1597,14 @@ message RateLimit {
// ("destination_cluster", "<routed target cluster>") // ("destination_cluster", "<routed target cluster>")
// //
// Once a request matches against a route table rule, a routed cluster is determined by one of // 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: // 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. // 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. // 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. // header in the request contains the target cluster.
message DestinationCluster { message DestinationCluster {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
@ -1698,7 +1698,7 @@ message RateLimit {
// ("<descriptor_key>", "<value_queried_from_dynamic_metadata>") // ("<descriptor_key>", "<value_queried_from_dynamic_metadata>")
// //
// .. attention:: // .. 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 { message DynamicMetaData {
// The key to use in the descriptor entry. // The key to use in the descriptor entry.
string descriptor_key = 1 [(validate.rules).string = {min_len: 1}]; string descriptor_key = 1 [(validate.rules).string = {min_len: 1}];
@ -1722,7 +1722,7 @@ message RateLimit {
// Query :ref:`dynamic metadata <well_known_dynamic_metadata>` // Query :ref:`dynamic metadata <well_known_dynamic_metadata>`
DYNAMIC = 0; 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; ROUTE_ENTRY = 1;
} }
@ -1765,7 +1765,7 @@ message RateLimit {
// Rate limit on dynamic metadata. // Rate limit on dynamic metadata.
// //
// .. attention:: // .. 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 [ DynamicMetaData dynamic_metadata = 7 [
deprecated = true, deprecated = true,
(envoy.annotations.deprecated_at_minor_version) = "3.0", (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. // 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 // The value must be a struct containing an integer "requests_per_unit" property
// and a "unit" property with a value parseable to :ref:`RateLimitUnit // 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}]; type.metadata.v3.MetadataKey metadata_key = 1 [(validate.rules).message = {required: true}];
} }
@ -1845,8 +1845,8 @@ message RateLimit {
// //
// .. attention:: // .. attention::
// In the absence of any header match specifier, match will default to :ref:`present_match // 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_v3_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.name>` header will match, regardless of the header's
// value. // value.
// //
// [#next-major-version: HeaderMatcher should be refactored to use StringMatcher.] // [#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. // downstream request has encountered is lower than this value.
// In the case where a downstream request is bounced among multiple routes by 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 does not set :ref:`internal_redirect_policy // 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. // will pass the redirect back to downstream.
// //
// If not specified, at most one redirect will be followed. // 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 // A simple wrapper for an HTTP filter config. This is intended to be used as a wrapper for the
// map value in // map value in
// :ref:`VirtualHost.typed_per_filter_config<envoy_api_field_config.route.v3.VirtualHost.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_api_field_config.route.v3.Route.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_api_field_config.route.v3.WeightedCluster.ClusterWeight.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. // to add additional flags to the filter.
// [#not-implemented-hide:] // [#not-implemented-hide:]
message FilterConfig { message FilterConfig {

@ -15,13 +15,13 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// * Routing :ref:`architecture overview <arch_overview_http_routing>` // * Routing :ref:`architecture overview <arch_overview_http_routing>`
// Specifies a routing scope, which associates a // Specifies a routing scope, which associates a
// :ref:`Key<envoy_api_msg_config.route.v3.ScopedRouteConfiguration.Key>` to a // :ref:`Key<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration.Key>` to a
// :ref:`envoy_api_msg_config.route.v3.RouteConfiguration` (identified by its resource name). // :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 // The HTTP connection manager builds up a table consisting of these Key to
// RouteConfiguration mappings, and looks up the RouteConfiguration to use per // RouteConfiguration mappings, and looks up the RouteConfiguration to use per
// request according to the algorithm specified in the // 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. // assigned to the HttpConnectionManager.
// //
// For example, with the following configurations (in YAML): // For example, with the following configurations (in YAML):
@ -43,7 +43,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// key: vip // key: vip
// //
// ScopedRouteConfiguration resources (specified statically via // 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): // or obtained dynamically via SRDS):
// //
// .. code:: // .. code::
@ -78,7 +78,7 @@ message ScopedRouteConfiguration {
"envoy.api.v2.ScopedRouteConfiguration"; "envoy.api.v2.ScopedRouteConfiguration";
// Specifies a key which is matched against the output of the // 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 // specified in the HttpConnectionManager. The matching is done per HTTP
// request and is dependent on the order of the fragments contained in the // request and is dependent on the order of the fragments contained in the
// Key. // Key.
@ -100,7 +100,7 @@ message ScopedRouteConfiguration {
// The ordered set of fragments to match against. The order must match the // The ordered set of fragments to match against. The order must match the
// fragments in the corresponding // 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}]; repeated Fragment fragments = 1 [(validate.rules).repeated = {min_items: 1}];
} }
@ -110,8 +110,8 @@ message ScopedRouteConfiguration {
// The name assigned to the routing scope. // The name assigned to the routing scope.
string name = 1 [(validate.rules).string = {min_len: 1}]; 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 // 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_api_msg_config.route.v3.RouteConfiguration` associated // RDS server to fetch the :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated
// with this scope. // with this scope.
string route_configuration_name = 2 [(validate.rules).string = {min_len: 1}]; 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 // The name of the route configuration. For example, it might match
// :ref:`route_config_name // :ref:`route_config_name
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.Rds.route_config_name>` in // <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.Rds.route_config_name>` in
// :ref:`envoy_api_msg_extensions.filters.network.http_connection_manager.v4alpha.Rds`. // :ref:`envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.Rds`.
string name = 1; string name = 1;
// An array of virtual hosts that make up the route table. // 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 // 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 // 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 // after headers from any enclosed :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` or
// :ref:`envoy_api_msg_config.route.v4alpha.RouteAction`. For more information, including details on // :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 // header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`. // <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v4alpha.HeaderValueOption response_headers_to_add = 4 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 // 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 // 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 // applied after headers from any enclosed :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` or
// :ref:`envoy_api_msg_config.route.v4alpha.RouteAction`. For more information, including details on // :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 // header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`. // <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v4alpha.HeaderValueOption request_headers_to_add = 6 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 // 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 selected at runtime. This setting defaults to true if the route table
// is statically defined via the :ref:`route_config // 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 // option. This setting default to false if the route table is loaded dynamically via the
// :ref:`rds // :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 // option. Users may wish to override the default behavior in certain cases (for example when
// using CDS with a static route table). // using CDS with a static route table).
google.protobuf.BoolValue validate_clusters = 7; google.protobuf.BoolValue validate_clusters = 7;
// The maximum bytes of the response :ref:`direct response body // 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. // is 4096.
// //
// .. warning:: // .. warning::
// //
// Envoy currently holds the content of :ref:`direct response body // 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 // this to be larger than the default 4KB, since the allocated memory for direct response body
// is not subject to data plane buffering controls. // 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 // 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 // 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 // after headers from enclosed :ref:`envoy_v3_api_msg_config.route.v3.Route` and before headers from the
// enclosing :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration`. For more information, including // 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 // details on header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`. // <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v4alpha.HeaderValueOption request_headers_to_add = 7 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 // 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 // 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 // after headers from enclosed :ref:`envoy_v3_api_msg_config.route.v3.Route` and before headers from the
// enclosing :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration`. For more information, including // 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 // details on header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`. // <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v4alpha.HeaderValueOption response_headers_to_add = 10 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>` // specific; see the :ref:`HTTP filter documentation <config_http_filters>`
// for if and how it is utilized. // for if and how it is utilized.
// [#comment: An entry's value may be wrapped in a // [#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.] // message to specify additional options.]
map<string, google.protobuf.Any> typed_per_filter_config = 15; 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. // will see the attempt count as perceived by the second Envoy. Defaults to false.
// This header is unaffected by the // This header is unaffected by the
// :ref:`suppress_envoy_headers // :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.] // [#next-major-version: rename to include_attempt_count_in_request.]
bool include_request_attempt_count = 14; 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. // will see the attempt count as perceived by the Envoy closest upstream from itself. Defaults to false.
// This header is unaffected by the // This header is unaffected by the
// :ref:`suppress_envoy_headers // :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; bool include_attempt_count_in_response = 19;
// Indicates the retry policy for all routes in this virtual host. Note that setting a // Indicates the retry policy for all routes in this virtual host. Note that setting a
@ -171,7 +171,7 @@ message VirtualHost {
// [#not-implemented-hide:] // [#not-implemented-hide:]
// Specifies the configuration for retry policy extension. Note that setting a route level entry // 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 // 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. // set if this field is used.
google.protobuf.Any retry_policy_typed_config = 20; google.protobuf.Any retry_policy_typed_config = 20;
@ -199,7 +199,7 @@ message FilterAction {
// .. attention:: // .. attention::
// //
// Envoy supports routing on HTTP method via :ref:`header matching // 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] // [#next-free-field: 19]
message Route { message Route {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.route.v3.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 // specific; see the :ref:`HTTP filter documentation <config_http_filters>` for
// if and how it is utilized. // if and how it is utilized.
// [#comment: An entry's value may be wrapped in a // [#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.] // message to specify additional options.]
map<string, google.protobuf.Any> typed_per_filter_config = 13; map<string, google.protobuf.Any> typed_per_filter_config = 13;
// Specifies a set of headers that will be added to requests matching this // 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 // route. Headers specified at this level are applied before headers from the
// enclosing :ref:`envoy_api_msg_config.route.v4alpha.VirtualHost` and // enclosing :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` and
// :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration`. For more information, including details on // :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 // header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`. // <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v4alpha.HeaderValueOption request_headers_to_add = 9 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 // Specifies a set of headers that will be added to responses to requests
// matching this route. Headers specified at this level are applied before // matching this route. Headers specified at this level are applied before
// headers from the enclosing :ref:`envoy_api_msg_config.route.v4alpha.VirtualHost` and // headers from the enclosing :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` and
// :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration`. For more information, including // :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. For more information, including
// details on header value syntax, see the documentation on // details on header value syntax, see the documentation on
// :ref:`custom request headers <config_http_conn_man_headers_custom_request_headers>`. // :ref:`custom request headers <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v4alpha.HeaderValueOption response_headers_to_add = 10 repeated core.v4alpha.HeaderValueOption response_headers_to_add = 10
@ -300,9 +300,9 @@ message Route {
google.protobuf.UInt32Value per_request_buffer_limit_bytes = 16; 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 // 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 // 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 // traffic to be forwarded to each cluster. The router selects an upstream cluster based on the
// weights. // weights.
@ -324,7 +324,7 @@ message WeightedCluster {
string name = 1 [(validate.rules).string = {min_len: 1}]; string name = 1 [(validate.rules).string = {min_len: 1}];
// An integer between 0 and :ref:`total_weight // 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 // 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. // entries in the clusters array must add up to the total_weight, which defaults to 100.
google.protobuf.UInt32Value weight = 2; 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 // 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 // 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 // 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*. // values here taking precedence. The filter name should be specified as *envoy.lb*.
core.v4alpha.Metadata metadata_match = 3; core.v4alpha.Metadata metadata_match = 3;
// Specifies a list of headers to be added to requests when this cluster is selected // 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 // 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_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`, and
// :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration`. For more information, including details on // :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 // header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`. // <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v4alpha.HeaderValueOption request_headers_to_add = 4 repeated core.v4alpha.HeaderValueOption request_headers_to_add = 4
[(validate.rules).repeated = {max_items: 1000}]; [(validate.rules).repeated = {max_items: 1000}];
// Specifies a list of HTTP headers that should be removed from each request when // 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 = { repeated string request_headers_to_remove = 9 [(validate.rules).repeated = {
items {string {well_known_regex: HTTP_HEADER_NAME strict: false}} 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 // 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 // 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_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`, and
// :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration`. For more information, including details on // :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 // header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`. // <config_http_conn_man_headers_custom_request_headers>`.
repeated core.v4alpha.HeaderValueOption response_headers_to_add = 5 repeated core.v4alpha.HeaderValueOption response_headers_to_add = 5
[(validate.rules).repeated = {max_items: 1000}]; [(validate.rules).repeated = {max_items: 1000}];
// Specifies a list of headers to be removed from responses when this cluster is selected // 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 = { repeated string response_headers_to_remove = 6 [(validate.rules).repeated = {
items {string {well_known_regex: HTTP_HEADER_NAME strict: false}} 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>` // specific; see the :ref:`HTTP filter documentation <config_http_filters>`
// for if and how it is utilized. // for if and how it is utilized.
// [#comment: An entry's value may be wrapped in a // [#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.] // message to specify additional options.]
map<string, google.protobuf.Any> typed_per_filter_config = 10; 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 // If neither ``enabled``, ``filter_enabled``, nor ``shadow_enabled`` are specified, the CORS
// filter will be enabled for 100% of the requests. // 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. // specified, Envoy will lookup the runtime key to get the percentage of requests to filter.
core.v4alpha.RuntimeFractionalPercent filter_enabled = 9; 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 // 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. // 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 // 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. // and track the request's *Origin* to determine if it's valid but will not enforce any policies.
core.v4alpha.RuntimeFractionalPercent shadow_enabled = 10; core.v4alpha.RuntimeFractionalPercent shadow_enabled = 10;
@ -740,7 +740,7 @@ message RouteAction {
// This overrides any enabled/disabled upgrade filter chain specified in the // This overrides any enabled/disabled upgrade filter chain specified in the
// HttpConnectionManager // HttpConnectionManager
// :ref:`upgrade_configs // :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. // but does not affect any custom filter chain specified there.
message UpgradeConfig { message UpgradeConfig {
option (udpa.annotations.versioning).previous_message_type = 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 // Specifies the maximum duration allowed for streams on the route. If not specified, the value
// from the :ref:`max_stream_duration // 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 // :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 // is used. If this field is set explicitly to zero, any
// HttpConnectionManager max_stream_duration timeout will be disabled for // HttpConnectionManager max_stream_duration timeout will be disabled for
// this route. // this route.
@ -848,7 +848,7 @@ message RouteAction {
// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints // 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 // in the upstream cluster with metadata matching what's set in this field will be considered
// for load balancing. If using :ref:`weighted_clusters // 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*. // provided there taking precedence. The filter name should be specified as *envoy.lb*.
core.v4alpha.Metadata metadata_match = 4; core.v4alpha.Metadata metadata_match = 4;
@ -859,16 +859,16 @@ message RouteAction {
// <config_http_filters_router_x-envoy-original-path>` header. // <config_http_filters_router_x-envoy-original-path>` header.
// //
// Only one of *prefix_rewrite* or // 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. // may be specified.
// //
// .. attention:: // .. attention::
// //
// Pay careful attention to the use of trailing slashes in the // 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, // 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 // 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 // .. code-block:: yaml
// //
@ -895,7 +895,7 @@ message RouteAction {
// before the rewrite into the :ref:`x-envoy-original-path // before the rewrite into the :ref:`x-envoy-original-path
// <config_http_filters_router_x-envoy-original-path>` header. // <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. // or *regex_rewrite* may be specified.
// //
// Examples using Google's `RE2 <https://github.com/google/re2>`_ engine: // 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, // 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 // 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 // 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. // connection manager stream idle timeout is configured.
// //
// The idle timeout is distinct to :ref:`timeout // 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 // 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. // of time the request's stream may be idle.
// //
// After header decoding, the idle timeout will apply on downstream and // 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" // 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 // 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; google.protobuf.Duration idle_timeout = 24;
// Indicates that the route has a retry policy. Note that if this is set, // Indicates that the route has a retry policy. Note that if this is set,
@ -1007,7 +1007,7 @@ message RouteAction {
// [#not-implemented-hide:] // [#not-implemented-hide:]
// Specifies the configuration for retry policy extension. Note that if this is set, it'll take // 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, // 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. // should not be set if this field is used.
google.protobuf.Any retry_policy_typed_config = 33; 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 // 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 // response back to the downstream. An upstream redirect response is defined
// by :ref:`redirect_response_codes // 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; InternalRedirectPolicy internal_redirect_policy = 34;
// Indicates that the route has a hedge policy. Note that if this is set, // Indicates that the route has a hedge policy. Note that if this is set,
@ -1209,7 +1209,7 @@ message RetryPolicy {
// .. note:: // .. note::
// //
// If left unspecified, Envoy will use the global // 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 // 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 // retry policy, a request that times out will not be retried as the total timeout budget
// would have been exhausted. // would have been exhausted.
@ -1284,7 +1284,7 @@ message HedgePolicy {
// if there are no more retries left. // 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. // * 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. // one error code and specifies a maximum number of retries.
// //
// Defaults to false. // Defaults to false.
@ -1360,7 +1360,7 @@ message RedirectAction {
// .. attention:: // .. attention::
// //
// Pay attention to the use of trailing slashes as mentioned in // 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 string prefix_rewrite = 5
[(validate.rules).string = {well_known_regex: HTTP_HEADER_VALUE strict: false}]; [(validate.rules).string = {well_known_regex: HTTP_HEADER_VALUE strict: false}];
@ -1412,8 +1412,8 @@ message DirectResponseAction {
// .. note:: // .. note::
// //
// Headers can be specified using *response_headers_to_add* in the enclosing // 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_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` or
// :ref:`envoy_api_msg_config.route.v4alpha.VirtualHost`. // :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`.
core.v4alpha.DataSource body = 2; 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. // 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 // 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 // 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 // each in the HTTP connection manager and the route level, the one configured here takes
// priority. // priority.
@ -1542,14 +1542,14 @@ message RateLimit {
// ("destination_cluster", "<routed target cluster>") // ("destination_cluster", "<routed target cluster>")
// //
// Once a request matches against a route table rule, a routed cluster is determined by one of // 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: // 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. // 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. // 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. // header in the request contains the target cluster.
message DestinationCluster { message DestinationCluster {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
@ -1643,7 +1643,7 @@ message RateLimit {
// ("<descriptor_key>", "<value_queried_from_dynamic_metadata>") // ("<descriptor_key>", "<value_queried_from_dynamic_metadata>")
// //
// .. attention:: // .. 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 { message DynamicMetaData {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
"envoy.config.route.v3.RateLimit.Action.DynamicMetaData"; "envoy.config.route.v3.RateLimit.Action.DynamicMetaData";
@ -1673,7 +1673,7 @@ message RateLimit {
// Query :ref:`dynamic metadata <well_known_dynamic_metadata>` // Query :ref:`dynamic metadata <well_known_dynamic_metadata>`
DYNAMIC = 0; 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; ROUTE_ENTRY = 1;
} }
@ -1738,7 +1738,7 @@ message RateLimit {
// Metadata struct that defines the key and path to retrieve the struct value. // 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 // The value must be a struct containing an integer "requests_per_unit" property
// and a "unit" property with a value parseable to :ref:`RateLimitUnit // 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}]; type.metadata.v3.MetadataKey metadata_key = 1 [(validate.rules).message = {required: true}];
} }
@ -1796,8 +1796,8 @@ message RateLimit {
// //
// .. attention:: // .. attention::
// In the absence of any header match specifier, match will default to :ref:`present_match // 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_v3_api_field_config.route.v3.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.name>` header will match, regardless of the header's
// value. // value.
// //
// [#next-major-version: HeaderMatcher should be refactored to use StringMatcher.] // [#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. // downstream request has encountered is lower than this value.
// In the case where a downstream request is bounced among multiple routes by 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 does not set :ref:`internal_redirect_policy // 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. // will pass the redirect back to downstream.
// //
// If not specified, at most one redirect will be followed. // 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 // A simple wrapper for an HTTP filter config. This is intended to be used as a wrapper for the
// map value in // map value in
// :ref:`VirtualHost.typed_per_filter_config<envoy_api_field_config.route.v4alpha.VirtualHost.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_api_field_config.route.v4alpha.Route.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_api_field_config.route.v4alpha.WeightedCluster.ClusterWeight.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. // to add additional flags to the filter.
// [#not-implemented-hide:] // [#not-implemented-hide:]
message FilterConfig { 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>` // * Routing :ref:`architecture overview <arch_overview_http_routing>`
// Specifies a routing scope, which associates a // Specifies a routing scope, which associates a
// :ref:`Key<envoy_api_msg_config.route.v4alpha.ScopedRouteConfiguration.Key>` to a // :ref:`Key<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration.Key>` to a
// :ref:`envoy_api_msg_config.route.v4alpha.RouteConfiguration` (identified by its resource name). // :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 // The HTTP connection manager builds up a table consisting of these Key to
// RouteConfiguration mappings, and looks up the RouteConfiguration to use per // RouteConfiguration mappings, and looks up the RouteConfiguration to use per
// request according to the algorithm specified in the // 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. // assigned to the HttpConnectionManager.
// //
// For example, with the following configurations (in YAML): // 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 // key: vip
// //
// ScopedRouteConfiguration resources (specified statically via // 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): // or obtained dynamically via SRDS):
// //
// .. code:: // .. code::
@ -78,7 +78,7 @@ message ScopedRouteConfiguration {
"envoy.config.route.v3.ScopedRouteConfiguration"; "envoy.config.route.v3.ScopedRouteConfiguration";
// Specifies a key which is matched against the output of the // 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 // specified in the HttpConnectionManager. The matching is done per HTTP
// request and is dependent on the order of the fragments contained in the // request and is dependent on the order of the fragments contained in the
// Key. // Key.
@ -100,7 +100,7 @@ message ScopedRouteConfiguration {
// The ordered set of fragments to match against. The order must match the // The ordered set of fragments to match against. The order must match the
// fragments in the corresponding // 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}]; repeated Fragment fragments = 1 [(validate.rules).repeated = {min_items: 1}];
} }
@ -110,8 +110,8 @@ message ScopedRouteConfiguration {
// The name assigned to the routing scope. // The name assigned to the routing scope.
string name = 1 [(validate.rules).string = {min_len: 1}]; 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 // 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_api_msg_config.route.v4alpha.RouteConfiguration` associated // RDS server to fetch the :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated
// with this scope. // with this scope.
string route_configuration_name = 2 [(validate.rules).string = {min_len: 1}]; 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 // The match configuration. If the configuration matches the data source being tapped, a tap will
// occur, with the result written to the configured output. // occur, with the result written to the configured output.
// Exactly one of :ref:`match <envoy_api_field_config.tap.v3.TapConfig.match>` and // Exactly one of :ref:`match <envoy_v3_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 // :ref:`match_config <envoy_v3_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. // are set, the :ref:`match <envoy_v3_api_field_config.tap.v3.TapConfig.match>` will be used.
MatchPredicate match_config = 1 MatchPredicate match_config = 1
[deprecated = true, (envoy.annotations.deprecated_at_minor_version) = "3.0"]; [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 // The match configuration. If the configuration matches the data source being tapped, a tap will
// occur, with the result written to the configured output. // occur, with the result written to the configured output.
// Exactly one of :ref:`match <envoy_api_field_config.tap.v3.TapConfig.match>` and // Exactly one of :ref:`match <envoy_v3_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 // :ref:`match_config <envoy_v3_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. // are set, the :ref:`match <envoy_v3_api_field_config.tap.v3.TapConfig.match>` will be used.
common.matcher.v3.MatchPredicate match = 4; common.matcher.v3.MatchPredicate match = 4;
// The tap output configuration. If a match configuration matches a data source being tapped, // The tap output configuration. If a match configuration matches a data source being tapped,
@ -54,7 +54,7 @@ message TapConfig {
// .. note:: // .. note::
// //
// This field defaults to 100/:ref:`HUNDRED // 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; 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 // For buffered tapping, the maximum amount of received body that will be buffered prior to
// truncation. If truncation occurs, the :ref:`truncated // 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. // default is 1KiB.
google.protobuf.UInt32Value max_buffered_rx_bytes = 2; google.protobuf.UInt32Value max_buffered_rx_bytes = 2;
// For buffered tapping, the maximum amount of transmitted body that will be buffered prior to // For buffered tapping, the maximum amount of transmitted body that will be buffered prior to
// truncation. If truncation occurs, the :ref:`truncated // 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. // default is 1KiB.
google.protobuf.UInt32Value max_buffered_tx_bytes = 3; google.protobuf.UInt32Value max_buffered_tx_bytes = 3;
// Indicates whether taps produce a single buffered message per tap, or multiple streamed // Indicates whether taps produce a single buffered message per tap, or multiple streamed
// messages per tap in the emitted :ref:`TraceWrapper // 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 // 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 // match can be determined. See the HTTP tap filter :ref:`streaming
// <config_http_filters_tap_streaming>` documentation for more information. // <config_http_filters_tap_streaming>` documentation for more information.
@ -186,20 +186,20 @@ message OutputSink {
"envoy.service.tap.v2alpha.OutputSink"; "envoy.service.tap.v2alpha.OutputSink";
// Output format. All output is in the form of one or more :ref:`TraceWrapper // 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 // how those messages are written. Note that not all sinks support all output formats. See
// individual sink documentation for more information. // individual sink documentation for more information.
enum Format { 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 // 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 // base64 encoded as per the `proto3 JSON mappings
// <https://developers.google.com/protocol-buffers/docs/proto3#json>`_. // <https://developers.google.com/protocol-buffers/docs/proto3#json>`_.
JSON_BODY_AS_BYTES = 0; 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 // 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 // string encoded as per the `proto3 JSON mappings
// <https://developers.google.com/protocol-buffers/docs/proto3#json>`_. This format type is // <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 // 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 // The match configuration. If the configuration matches the data source being tapped, a tap will
// occur, with the result written to the configured output. // occur, with the result written to the configured output.
// Exactly one of :ref:`match <envoy_api_field_config.tap.v4alpha.TapConfig.match>` and // Exactly one of :ref:`match <envoy_v3_api_field_config.tap.v3.TapConfig.match>` and
// :ref:`match_config <envoy_api_field_config.tap.v4alpha.TapConfig.match_config>` must be set. If both // :ref:`match_config <envoy_v3_api_field_config.tap.v3.TapConfig.match_config>` must be set. If both
// are set, the :ref:`match <envoy_api_field_config.tap.v4alpha.TapConfig.match>` will be used. // are set, the :ref:`match <envoy_v3_api_field_config.tap.v3.TapConfig.match>` will be used.
common.matcher.v4alpha.MatchPredicate match = 4; common.matcher.v4alpha.MatchPredicate match = 4;
// The tap output configuration. If a match configuration matches a data source being tapped, // The tap output configuration. If a match configuration matches a data source being tapped,
@ -48,7 +48,7 @@ message TapConfig {
// .. note:: // .. note::
// //
// This field defaults to 100/:ref:`HUNDRED // 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; 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 // For buffered tapping, the maximum amount of received body that will be buffered prior to
// truncation. If truncation occurs, the :ref:`truncated // 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. // default is 1KiB.
google.protobuf.UInt32Value max_buffered_rx_bytes = 2; google.protobuf.UInt32Value max_buffered_rx_bytes = 2;
// For buffered tapping, the maximum amount of transmitted body that will be buffered prior to // For buffered tapping, the maximum amount of transmitted body that will be buffered prior to
// truncation. If truncation occurs, the :ref:`truncated // 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. // default is 1KiB.
google.protobuf.UInt32Value max_buffered_tx_bytes = 3; google.protobuf.UInt32Value max_buffered_tx_bytes = 3;
// Indicates whether taps produce a single buffered message per tap, or multiple streamed // Indicates whether taps produce a single buffered message per tap, or multiple streamed
// messages per tap in the emitted :ref:`TraceWrapper // 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 // 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 // match can be determined. See the HTTP tap filter :ref:`streaming
// <config_http_filters_tap_streaming>` documentation for more information. // <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"; 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 // 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 // how those messages are written. Note that not all sinks support all output formats. See
// individual sink documentation for more information. // individual sink documentation for more information.
enum Format { 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 // 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 // base64 encoded as per the `proto3 JSON mappings
// <https://developers.google.com/protocol-buffers/docs/proto3#json>`_. // <https://developers.google.com/protocol-buffers/docs/proto3#json>`_.
JSON_BODY_AS_BYTES = 0; 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 // 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 // string encoded as per the `proto3 JSON mappings
// <https://developers.google.com/protocol-buffers/docs/proto3#json>`_. This format type is // <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 // 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:: // .. attention::
// //
// Use of this message type has been deprecated in favor of direct use of // 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 { message Tracing {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.trace.v2.Tracing"; option (udpa.annotations.versioning).previous_message_type = "envoy.config.trace.v2.Tracing";
// Configuration for an HTTP tracer provider used by Envoy. // Configuration for an HTTP tracer provider used by Envoy.
// //
// The configuration is defined by the // The configuration is defined by the
// :ref:`HttpConnectionManager.Tracing <envoy_api_msg_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing>` // :ref:`HttpConnectionManager.Tracing <envoy_v3_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:`provider <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`
// field. // field.
message Http { message Http {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =

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

@ -21,7 +21,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
enum OutlierEjectionType { enum OutlierEjectionType {
// In case upstream host returns certain number of consecutive 5xx. // In case upstream host returns certain number of consecutive 5xx.
// If // 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. // is *false*, all type of errors are treated as HTTP 5xx errors.
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for // See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
// details. // details.
@ -34,7 +34,7 @@ enum OutlierEjectionType {
// and selects hosts for which ratio of successful replies deviates from other hosts // and selects hosts for which ratio of successful replies deviates from other hosts
// in the cluster. // in the cluster.
// If // 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 // is *false*, all errors (externally and locally generated) are used to calculate success rate
// statistics. See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` // statistics. See :ref:`Cluster outlier detection <arch_overview_outlier_detection>`
// documentation for details. // documentation for details.
@ -42,7 +42,7 @@ enum OutlierEjectionType {
// Consecutive local origin failures: Connection failures, resets, timeouts, etc // Consecutive local origin failures: Connection failures, resets, timeouts, etc
// This type of ejection happens only when // 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*. // is set to *true*.
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for // See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
CONSECUTIVE_LOCAL_ORIGIN_FAILURE = 3; CONSECUTIVE_LOCAL_ORIGIN_FAILURE = 3;
@ -50,7 +50,7 @@ enum OutlierEjectionType {
// Runs over aggregated success rate statistics for local origin failures // 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 // 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 // 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*. // is set to *true*.
// See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for // See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
SUCCESS_RATE_LOCAL_ORIGIN = 4; 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. // The time in seconds since the last action (either an ejection or unejection) took place.
google.protobuf.UInt64Value secs_since_last_action = 3; 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}]; string cluster_name = 4 [(validate.rules).string = {min_len: 1}];
// The URL of the ejected host. E.g., ``tcp://1.2.3.4:80``. // 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"; "envoy.data.core.v2alpha.HealthCheckAddHealthy";
// Whether this addition is the result of the first ever health check on a host, in which case // 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. // is bypassed and the host is immediately added.
bool first_check = 1; bool first_check = 1;
} }

@ -23,15 +23,15 @@ message Body {
bytes as_bytes = 1; bytes as_bytes = 1;
// Body data as string. This field is only used when the :ref:`JSON_BODY_AS_STRING // 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. // format type is selected. See the documentation for that option for why this is useful.
string as_string = 2; string as_string = 2;
} }
// Specifies whether body data has been truncated to fit within the specified // Specifies whether body data has been truncated to fit within the specified
// :ref:`max_buffered_rx_bytes // :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 // :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; bool truncated = 3;
} }

@ -95,11 +95,11 @@ message SocketBufferedTrace {
repeated SocketEvent events = 3; repeated SocketEvent events = 3;
// Set to true if read events were truncated due to the :ref:`max_buffered_rx_bytes // 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; bool read_truncated = 4;
// Set to true if write events were truncated due to the :ref:`max_buffered_tx_bytes // 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; bool write_truncated = 5;
} }

@ -19,7 +19,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: File access log] // [#protodoc-title: File access log]
// [#extension: envoy.access_loggers.file] // [#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* // that writes log entries directly to a file. Configures the built-in *envoy.access_loggers.file*
// AccessLog. // AccessLog.
// [#next-free-field: 6] // [#next-free-field: 6]

@ -18,7 +18,7 @@ option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSIO
// [#protodoc-title: File access log] // [#protodoc-title: File access log]
// [#extension: envoy.access_loggers.file] // [#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* // that writes log entries directly to a file. Configures the built-in *envoy.access_loggers.file*
// AccessLog. // AccessLog.
// [#next-free-field: 6] // [#next-free-field: 6]

@ -20,9 +20,9 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: gRPC Access Log Service (ALS)] // [#protodoc-title: gRPC Access Log Service (ALS)]
// Configuration for the built-in *envoy.access_loggers.http_grpc* // 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 // 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] // [#extension: envoy.access_loggers.http_grpc]
message HttpGrpcAccessLogConfig { message HttpGrpcAccessLogConfig {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
@ -31,15 +31,15 @@ message HttpGrpcAccessLogConfig {
CommonGrpcAccessLogConfig common_config = 1 [(validate.rules).message = {required: true}]; CommonGrpcAccessLogConfig common_config = 1 [(validate.rules).message = {required: true}];
// Additional request headers to log in :ref:`HTTPRequestProperties.request_headers // 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; repeated string additional_request_headers_to_log = 2;
// Additional response headers to log in :ref:`HTTPResponseProperties.response_headers // 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; repeated string additional_response_headers_to_log = 3;
// Additional response trailers to log in :ref:`HTTPResponseProperties.response_trailers // 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; repeated string additional_response_trailers_to_log = 4;
} }
@ -60,7 +60,7 @@ message CommonGrpcAccessLogConfig {
"envoy.config.accesslog.v2.CommonGrpcAccessLogConfig"; "envoy.config.accesslog.v2.CommonGrpcAccessLogConfig";
// The friendly name of the access log to be returned in :ref:`StreamAccessLogsMessage.Identifier // 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. // access log server to differentiate between different access logs coming from the same Envoy.
string log_name = 1 [(validate.rules).string = {min_len: 1}]; string log_name = 1 [(validate.rules).string = {min_len: 1}];
@ -83,7 +83,7 @@ message CommonGrpcAccessLogConfig {
google.protobuf.UInt32Value buffer_size_bytes = 4; google.protobuf.UInt32Value buffer_size_bytes = 4;
// Additional filter state objects to log in :ref:`filter_state_objects // 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. // Logger will call `FilterState::Object::serializeAsProto` to serialize the filter state object.
repeated string filter_state_objects_to_log = 5; 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)] // [#protodoc-title: gRPC Access Log Service (ALS)]
// Configuration for the built-in *envoy.access_loggers.http_grpc* // 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 // 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] // [#extension: envoy.access_loggers.http_grpc]
message HttpGrpcAccessLogConfig { message HttpGrpcAccessLogConfig {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
@ -31,15 +31,15 @@ message HttpGrpcAccessLogConfig {
CommonGrpcAccessLogConfig common_config = 1 [(validate.rules).message = {required: true}]; CommonGrpcAccessLogConfig common_config = 1 [(validate.rules).message = {required: true}];
// Additional request headers to log in :ref:`HTTPRequestProperties.request_headers // 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; repeated string additional_request_headers_to_log = 2;
// Additional response headers to log in :ref:`HTTPResponseProperties.response_headers // 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; repeated string additional_response_headers_to_log = 3;
// Additional response trailers to log in :ref:`HTTPResponseProperties.response_trailers // 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; repeated string additional_response_trailers_to_log = 4;
} }
@ -60,7 +60,7 @@ message CommonGrpcAccessLogConfig {
"envoy.extensions.access_loggers.grpc.v3.CommonGrpcAccessLogConfig"; "envoy.extensions.access_loggers.grpc.v3.CommonGrpcAccessLogConfig";
// The friendly name of the access log to be returned in :ref:`StreamAccessLogsMessage.Identifier // 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. // access log server to differentiate between different access logs coming from the same Envoy.
string log_name = 1 [(validate.rules).string = {min_len: 1}]; string log_name = 1 [(validate.rules).string = {min_len: 1}];
@ -83,7 +83,7 @@ message CommonGrpcAccessLogConfig {
google.protobuf.UInt32Value buffer_size_bytes = 4; google.protobuf.UInt32Value buffer_size_bytes = 4;
// Additional filter state objects to log in :ref:`filter_state_objects // 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. // Logger will call `FilterState::Object::serializeAsProto` to serialize the filter state object.
repeated string filter_state_objects_to_log = 5; 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] // [#protodoc-title: OpenTelemetry (gRPC) Access Log]
// Configuration for the built-in *envoy.access_loggers.open_telemetry* // 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>`_. // 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>`_ // 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 // 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] // [#protodoc-title: OpenTelemetry (gRPC) Access Log]
// Configuration for the built-in *envoy.access_loggers.open_telemetry* // 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>`_. // 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>`_ // 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 // 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] // [#protodoc-title: Standard Streams Access loggers]
// [#extension: envoy.access_loggers.stream] // [#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. // that writes log entries directly to the operating system's standard output.
message StdoutAccessLog { message StdoutAccessLog {
oneof access_log_format { 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. // that writes log entries directly to the operating system's standard error.
message StderrAccessLog { message StderrAccessLog {
oneof access_log_format { 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] // [#protodoc-title: Standard Streams Access loggers]
// [#extension: envoy.access_loggers.stream] // [#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. // that writes log entries directly to the operating system's standard output.
message StdoutAccessLog { message StdoutAccessLog {
option (udpa.annotations.versioning).previous_message_type = 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. // that writes log entries directly to the operating system's standard error.
message StderrAccessLog { message StderrAccessLog {
option (udpa.annotations.versioning).previous_message_type = 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] // [#protodoc-title: Wasm access log]
// [#extension: envoy.access_loggers.wasm] // [#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* // that calls into a WASM VM. Configures the built-in *envoy.access_loggers.wasm*
// AccessLog. // AccessLog.
message WasmAccessLog { message WasmAccessLog {

@ -24,12 +24,12 @@ message ClusterConfig {
// The DNS cache configuration that the cluster will attach to. Note this configuration must // 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 // 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 common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1
[(validate.rules).message = {required: true}]; [(validate.rules).message = {required: true}];
// If true allow the cluster configuration to disable the auto_sni and auto_san_validation options // 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 // 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; bool allow_insecure_cluster_options = 2;
} }

@ -27,7 +27,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// updated at user-configured intervals. // updated at user-configured intervals.
// //
// Additionally, if // 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 // is true, then moved and ask redirection errors from upstream servers will trigger a topology
// refresh when they exceed a user-configured error threshold. // 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 // Note: this rewrite affects both signing and host header forwarding. However, this
// option shouldn't be used with // 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 // 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. // for host header forwarding which is not the desired outcome.
string host_rewrite = 3; string host_rewrite = 3;

@ -21,9 +21,9 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// incoming request. // incoming request.
// //
// This is intended to be used with // 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 // 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. // which filter configuration to create and delegate to.
// //
message Composite { message Composite {

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

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

@ -25,13 +25,13 @@ message CsrfPolicy {
// Specifies the % of requests for which the CSRF filter is enabled. // 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. // Envoy will lookup the runtime key to get the percentage of requests to filter.
// //
// .. note:: // .. note::
// //
// This field defaults to 100/:ref:`HUNDRED // 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 config.core.v3.RuntimeFractionalPercent filter_enabled = 1
[(validate.rules).message = {required: true}]; [(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. // 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 // 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 // and track the request's *Origin* and *Destination* to determine if it's valid, but will not
// enforce any policies. // enforce any policies.

@ -25,13 +25,13 @@ message CsrfPolicy {
// Specifies the % of requests for which the CSRF filter is enabled. // 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. // Envoy will lookup the runtime key to get the percentage of requests to filter.
// //
// .. note:: // .. note::
// //
// This field defaults to 100/:ref:`HUNDRED // 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 config.core.v4alpha.RuntimeFractionalPercent filter_enabled = 1
[(validate.rules).message = {required: true}]; [(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. // 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 // 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 // and track the request's *Origin* and *Destination* to determine if it's valid, but will not
// enforce any policies. // enforce any policies.

@ -41,7 +41,7 @@ message Decompressor {
} }
// A decompressor library to use for both request and response decompression. Currently only // 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. // is included in Envoy.
// [#extension-category: envoy.compression.decompressor] // [#extension-category: envoy.compression.decompressor]
config.core.v3.TypedExtensionConfig decompressor_library = 1 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 // The DNS cache configuration that the filter will attach to. Note this configuration must
// match that of associated :ref:`dynamic forward proxy cluster configuration // 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 common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1
[(validate.rules).message = {required: true}]; [(validate.rules).message = {required: true}];
} }
@ -41,7 +41,7 @@ message PerRouteConfig {
// //
// Note: this rewrite affects both DNS lookup and host header forwarding. However, this // Note: this rewrite affects both DNS lookup and host header forwarding. However, this
// option shouldn't be used with // 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 // 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. // for host header forwarding which is not the desired outcome.
string host_rewrite_literal = 1; string host_rewrite_literal = 1;
@ -52,7 +52,7 @@ message PerRouteConfig {
// //
// Note: this rewrite affects both DNS lookup and host header forwarding. However, this // Note: this rewrite affects both DNS lookup and host header forwarding. However, this
// option shouldn't be used with // 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 // 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. // 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*. // ext_authz service as an opaque *protobuf::Struct*.
// //
// For example, if the *jwt_authn* filter is used and :ref:`payload_in_metadata // 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. // then the following will pass the jwt payload to the authorization server.
// //
// .. code-block:: yaml // .. code-block:: yaml
@ -97,7 +97,7 @@ message ExtAuthz {
// Specifies if the filter is enabled. // 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. // 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. // 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; type.matcher.v3.MetadataMatcher filter_enabled_metadata = 14;
// Specifies whether to deny the requests, when the filter is disabled. // 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 // Envoy will lookup the runtime key to determine whether to deny request for
// filter protected path at filter disabling. If filter is disabled in // filter protected path at filter disabling. If filter is disabled in
// typed_per_filter_config for the path, requests will not be denied. // 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. // 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 // 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; bool include_peer_certificate = 10;
// Optional additional prefix to use when emitting statistics. This allows to distinguish // 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 // 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 // *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 // 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}]; 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. // 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 // *On authorization request*, a list of allowed request headers may be supplied. See
// :ref:`allowed_headers // :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 // for details. Additional headers metadata may be added to the authorization request. See
// :ref:`headers_to_add // :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. // details.
// //
// On authorization response status HTTP 200 OK, the filter will allow traffic to the upstream and // 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 // additional headers metadata may be added to the original client request. See
// :ref:`allowed_upstream_headers // :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 // for details. Additionally, the filter may add additional headers to the client's response. See
// :ref:`allowed_client_headers_on_success // :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. // for details.
// //
// On other authorization response statuses, the filter will not allow traffic. Additional headers // 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 // 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. // for details.
// [#next-free-field: 9] // [#next-free-field: 9]
message HttpService { message HttpService {
@ -216,7 +216,7 @@ message AuthorizationRequest {
"envoy.config.filter.http.ext_authz.v2.AuthorizationRequest"; "envoy.config.filter.http.ext_authz.v2.AuthorizationRequest";
// Authorization request will include the client request headers that have a correspondent match // 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: // user's supplied matchers:
// //
// 1. *Host*, *Method*, *Path* and *Content-Length* are automatically included to the list. // 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 // 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 // a message body. However, the authorization request can include the buffered client request body
// (controlled by :ref:`with_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 // consequently the value of *Content-Length* of the authorization request reflects the size of
// its payload size. // its payload size.
// //
@ -239,24 +239,24 @@ message AuthorizationResponse {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
"envoy.config.filter.http.ext_authz.v2.AuthorizationResponse"; "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. // response headers that have a correspondent match will be added to the original client request.
// Note that coexistent headers will be overridden. // Note that coexistent headers will be overridden.
type.matcher.v3.ListStringMatcher allowed_upstream_headers = 1; 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 // response headers that have a correspondent match will be added to the client's response. Note
// that coexistent headers will be appended. // that coexistent headers will be appended.
type.matcher.v3.ListStringMatcher allowed_upstream_headers_to_append = 3; 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 // 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 // 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*, // (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. // *Status*, *Content-Length*, *WWWAuthenticate* and *Location* are automatically added.
type.matcher.v3.ListStringMatcher allowed_client_headers = 2; 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 // 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 // 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. // *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"; "envoy.config.filter.http.ext_authz.v2.CheckSettings";
// Context extensions to set on the CheckRequest's // 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 // 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 // virtual hosts/routes. For example, adding a context extension on the virtual host level can
@ -299,10 +299,10 @@ message CheckSettings {
// .. note:: // .. note::
// //
// These settings are only applied to a filter configured with a // 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; map<string, string> context_extensions = 1;
// When set to true, disable the configured :ref:`with_request_body // 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; bool disable_request_body_buffering = 2;
} }

@ -85,7 +85,7 @@ message ExtAuthz {
// ext_authz service as an opaque *protobuf::Struct*. // ext_authz service as an opaque *protobuf::Struct*.
// //
// For example, if the *jwt_authn* filter is used and :ref:`payload_in_metadata // 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. // then the following will pass the jwt payload to the authorization server.
// //
// .. code-block:: yaml // .. code-block:: yaml
@ -97,7 +97,7 @@ message ExtAuthz {
// Specifies if the filter is enabled. // 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. // 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. // 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; type.matcher.v4alpha.MetadataMatcher filter_enabled_metadata = 14;
// Specifies whether to deny the requests, when the filter is disabled. // 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 // Envoy will lookup the runtime key to determine whether to deny request for
// filter protected path at filter disabling. If filter is disabled in // filter protected path at filter disabling. If filter is disabled in
// typed_per_filter_config for the path, requests will not be denied. // 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. // 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 // 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; bool include_peer_certificate = 10;
// Optional additional prefix to use when emitting statistics. This allows to distinguish // 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 // 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 // *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 // 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}]; 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. // 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 // *On authorization request*, a list of allowed request headers may be supplied. See
// :ref:`allowed_headers // :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 // for details. Additional headers metadata may be added to the authorization request. See
// :ref:`headers_to_add // :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. // details.
// //
// On authorization response status HTTP 200 OK, the filter will allow traffic to the upstream and // 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 // additional headers metadata may be added to the original client request. See
// :ref:`allowed_upstream_headers // :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 // for details. Additionally, the filter may add additional headers to the client's response. See
// :ref:`allowed_client_headers_on_success // :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. // for details.
// //
// On other authorization response statuses, the filter will not allow traffic. Additional headers // 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 // 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. // for details.
// [#next-free-field: 9] // [#next-free-field: 9]
message HttpService { message HttpService {
@ -216,7 +216,7 @@ message AuthorizationRequest {
"envoy.extensions.filters.http.ext_authz.v3.AuthorizationRequest"; "envoy.extensions.filters.http.ext_authz.v3.AuthorizationRequest";
// Authorization request will include the client request headers that have a correspondent match // 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: // user's supplied matchers:
// //
// 1. *Host*, *Method*, *Path* and *Content-Length* are automatically included to the list. // 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 // 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 // a message body. However, the authorization request can include the buffered client request body
// (controlled by :ref:`with_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 // consequently the value of *Content-Length* of the authorization request reflects the size of
// its payload size. // its payload size.
// //
@ -239,24 +239,24 @@ message AuthorizationResponse {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
"envoy.extensions.filters.http.ext_authz.v3.AuthorizationResponse"; "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. // response headers that have a correspondent match will be added to the original client request.
// Note that coexistent headers will be overridden. // Note that coexistent headers will be overridden.
type.matcher.v4alpha.ListStringMatcher allowed_upstream_headers = 1; 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 // response headers that have a correspondent match will be added to the client's response. Note
// that coexistent headers will be appended. // that coexistent headers will be appended.
type.matcher.v4alpha.ListStringMatcher allowed_upstream_headers_to_append = 3; 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 // 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 // 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*, // (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. // *Status*, *Content-Length*, *WWWAuthenticate* and *Location* are automatically added.
type.matcher.v4alpha.ListStringMatcher allowed_client_headers = 2; 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 // 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 // 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. // *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"; "envoy.extensions.filters.http.ext_authz.v3.CheckSettings";
// Context extensions to set on the CheckRequest's // 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 // 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 // virtual hosts/routes. For example, adding a context extension on the virtual host level can
@ -299,10 +299,10 @@ message CheckSettings {
// .. note:: // .. note::
// //
// These settings are only applied to a filter configured with a // 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; map<string, string> context_extensions = 1;
// When set to true, disable the configured :ref:`with_request_body // 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; 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 // 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 // headers specified in the fault filter config. The chances of actual fault
// injection further depend on the value of the :ref:`percentage // 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 // 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 // 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 // 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 // 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 // headers specified in the fault filter config. The chances of actual fault
// injection further depend on the value of the :ref:`percentage // 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 // 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 // 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 // config are present in the request with the same values (or based on

@ -71,7 +71,7 @@ message GrpcJsonTranscoder {
message RequestValidationOptions { message RequestValidationOptions {
// By default, a request that cannot be mapped to any specified gRPC // 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. // will pass-through this filter.
// When set to true, the request will be rejected with a ``HTTP 404 Not Found``. // When set to true, the request will be rejected with a ``HTTP 404 Not Found``.
bool reject_unknown_method = 1; 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``. // When set to true, the request will be rejected with a ``HTTP 400 Bad Request``.
// //
// The fields // 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 // 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. // have priority over this strict validation behavior.
bool reject_unknown_query_parameters = 2; 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. // 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. // If the list of services is empty, filter is considered disabled.
// However, this behavior changes if // 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. // is enabled.
repeated string services = 2; repeated string services = 2;
@ -214,7 +214,7 @@ message GrpcJsonTranscoder {
// This spec is only applied when extracting variable with multiple segments. // 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 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`. // 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}]; UrlUnescapeSpec url_unescape_spec = 10 [(validate.rules).enum = {defined_only: true}];
// Configure the behavior when handling requests that cannot be transcoded. // 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. // If true, the filter will gather a histogram for the request time of the upstream.
// It works with :ref:`stats_for_all_methods // 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 // 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. // request_message_count and response_message_count works.
bool enable_upstream_stats = 4; bool enable_upstream_stats = 4;
} }

@ -47,7 +47,7 @@ message LocalRateLimit {
// //
// .. note:: // .. note::
// In the current implementation the token bucket's :ref:`fill_interval // 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. // refills.
type.v3.TokenBucket token_bucket = 3; type.v3.TokenBucket token_bucket = 3;
@ -83,8 +83,8 @@ message LocalRateLimit {
// .. note:: // .. note::
// //
// In the current implementation the descriptor's token bucket :ref:`fill_interval // In the current implementation the descriptor's token bucket :ref:`fill_interval
// <envoy_api_field_type.v3.TokenBucket.fill_interval>` must be a multiple // <envoy_v3_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. // 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 // 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. // 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 // External Authorization filter calls out to an external service over the
// gRPC Authorization API defined by // 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. // A failed check will cause this filter to close the TCP connection.
// [#next-free-field: 7] // [#next-free-field: 7]
message ExtAuthz { message ExtAuthz {
@ -45,7 +45,7 @@ message ExtAuthz {
// Specifies if the peer certificate is sent to the external service. // 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 // 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; bool include_peer_certificate = 4;
// API version for ext_authz transport protocol. This describes the ext_authz gRPC endpoint and // 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 // External Authorization filter calls out to an external service over the
// gRPC Authorization API defined by // 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. // A failed check will cause this filter to close the TCP connection.
// [#next-free-field: 7] // [#next-free-field: 7]
message ExtAuthz { message ExtAuthz {
@ -45,7 +45,7 @@ message ExtAuthz {
// Specifies if the peer certificate is sent to the external service. // 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 // 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; bool include_peer_certificate = 4;
// API version for ext_authz transport protocol. This describes the ext_authz gRPC endpoint and // 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. // Determines if upgrades are enabled or disabled by default. Defaults to true.
// This can be overridden on a per-route basis with :ref:`cluster // 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>`. // :ref:`upgrade documentation <arch_overview_upgrades>`.
google.protobuf.BoolValue enabled = 3; 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 // 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 // path will be visible internally if a transformation is enabled. Any path rewrites that the
// router performs (e.g. :ref:`regex_rewrite // router performs (e.g. :ref:`regex_rewrite
// <envoy_api_field_config.route.v3.RouteAction.regex_rewrite>` or :ref:`prefix_rewrite // <envoy_v3_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.prefix_rewrite>`) will apply to the *:path* header
// destined for the upstream. // destined for the upstream.
// //
// Note: access logging and tracing will show the original *:path* header. // 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 // [#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 // HTTP filters, routing, and matching *and* will affect the forwarded *:path* header. Defaults
// to :ref:`NormalizePathRFC3986 // 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 // specified, this value may be overridden by the runtime variable
// :ref:`http_connection_manager.normalize_path<config_http_conn_man_runtime_normalize_path>`. // :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 // 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 // Presence of the object defines whether the connection manager
// emits :ref:`tracing <arch_overview_tracing>` data to the :ref:`configured tracing provider // 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; Tracing tracing = 7;
// Additional settings for HTTP requests handled by the connection manager. These will be // 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 // This idle timeout applies to new streams and is overridable by the
// :ref:`route-level idle_timeout // :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 // which the override applies, prior to receipt of the initial request
// headers, the :ref:`stream_idle_timeout // 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 // 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 // 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 // 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 // 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 // case, the :ref:`tx_flush_timeout <config_http_conn_man_stats_per_codec>` counter will be
// incremented. Note that :ref:`max_stream_duration // 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. // this corner case.
// //
// If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts" // 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 // 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 // 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 // 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 // :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 // conjunction with HTTP filters that explicitly manipulate XFF after the HTTP connection manager
// has mutated the request headers. While :ref:`use_remote_address // 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 // 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 // Envoy uses of the remote address, so *skip_xff_append* should be used
// when only an elision of XFF addition is intended. // when only an elision of XFF addition is intended.
@ -510,7 +510,7 @@ message HttpConnectionManager {
[(validate.rules).enum = {defined_only: true}]; [(validate.rules).enum = {defined_only: true}];
// This field is valid only when :ref:`forward_client_cert_details // 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 // 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 // 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 // :ref:`config_http_conn_man_headers_x-forwarded-client-cert` header, *Hash* is always set, and
@ -526,7 +526,7 @@ message HttpConnectionManager {
// If // If
// :ref:`use_remote_address // :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 // 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*. // 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 // 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; LocalReplyConfig local_reply_config = 38;
// Determines if the port part should be removed from host/authority header before any processing // 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 // 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 // CONNECT in which case if no filter adds a port the original port will be restored before headers are
// sent upstream. // sent upstream.
// Without setting this option, incoming requests with host `example:443` will not match against // 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. // 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. // Only one of `strip_matching_host_port` or `strip_any_host_port` can be set.
bool strip_matching_host_port = 39 bool strip_matching_host_port = 39
@ -602,7 +602,7 @@ message HttpConnectionManager {
// This affects the upstream host header unless the method is CONNECT in // 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. // 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 // 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. // 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. // Only one of `strip_matching_host_port` or `strip_any_host_port` can be set.
bool strip_any_host_port = 42; bool strip_any_host_port = 42;
@ -632,7 +632,7 @@ message HttpConnectionManager {
// whether transformations affect the forwarded *:path* header. RFC 3986 path // whether transformations affect the forwarded *:path* header. RFC 3986 path
// normalization is enabled by default and the default policy is that the // normalization is enabled by default and the default policy is that the
// normalized header will be forwarded. See :ref:`PathNormalizationOptions // 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. // for details.
PathNormalizationOptions path_normalization_options = 43; PathNormalizationOptions path_normalization_options = 43;
} }
@ -736,14 +736,14 @@ message ScopedRoutes {
"envoy.config.filter.network.http_connection_manager.v2.ScopedRoutes"; "envoy.config.filter.network.http_connection_manager.v2.ScopedRoutes";
// Specifies the mechanism for constructing "scope keys" based on HTTP request attributes. These // 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>` // keys are matched against a set of :ref:`Key<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration.Key>`
// objects assembled from :ref:`ScopedRouteConfiguration<envoy_api_msg_config.route.v3.ScopedRouteConfiguration>` // 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 // 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 // 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 // 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 { message ScopeKeyBuilder {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
"envoy.config.filter.network.http_connection_manager.v2.ScopedRoutes.ScopeKeyBuilder"; "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 // 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. // 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}]; 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 // 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 // matching a key constructed from the request's attributes according to the algorithm specified
// by the // 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. // in this message.
ScopedRouteConfigurationsList scoped_route_configurations_list = 4; ScopedRouteConfigurationsList scoped_route_configurations_list = 4;
// The set of routing scopes associated with the HCM will be dynamically loaded via the SRDS // 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 // 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 // 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. // in this message.
ScopedRds scoped_rds = 5; ScopedRds scoped_rds = 5;
} }
@ -893,7 +893,7 @@ message HttpFilter {
// filters for further documentation. // filters for further documentation.
// //
// To support configuring a :ref:`match tree <arch_overview_matching_api>`, use an // 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. // with the desired HTTP filter.
// [#extension-category: envoy.filters.http] // [#extension-category: envoy.filters.http]
google.protobuf.Any typed_config = 4; 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). // 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 // 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 // with the desired HTTP filter. This works for both the default filter configuration as well
// as for filters provided via the API. // as for filters provided via the API.
config.core.v3.ExtensionConfigSource config_discovery = 5; 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. // Determines if upgrades are enabled or disabled by default. Defaults to true.
// This can be overridden on a per-route basis with :ref:`cluster // 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>`. // :ref:`upgrade documentation <arch_overview_upgrades>`.
google.protobuf.BoolValue enabled = 3; 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 // 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 // path will be visible internally if a transformation is enabled. Any path rewrites that the
// router performs (e.g. :ref:`regex_rewrite // router performs (e.g. :ref:`regex_rewrite
// <envoy_api_field_config.route.v4alpha.RouteAction.regex_rewrite>` or :ref:`prefix_rewrite // <envoy_v3_api_field_config.route.v3.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.prefix_rewrite>`) will apply to the *:path* header
// destined for the upstream. // destined for the upstream.
// //
// Note: access logging and tracing will show the original *:path* header. // 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 // [#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 // HTTP filters, routing, and matching *and* will affect the forwarded *:path* header. Defaults
// to :ref:`NormalizePathRFC3986 // 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 // specified, this value may be overridden by the runtime variable
// :ref:`http_connection_manager.normalize_path<config_http_conn_man_runtime_normalize_path>`. // :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 // 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 // Presence of the object defines whether the connection manager
// emits :ref:`tracing <arch_overview_tracing>` data to the :ref:`configured tracing provider // 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; Tracing tracing = 7;
// Additional settings for HTTP requests handled by the connection manager. These will be // 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 // This idle timeout applies to new streams and is overridable by the
// :ref:`route-level idle_timeout // :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 // which the override applies, prior to receipt of the initial request
// headers, the :ref:`stream_idle_timeout // 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 // 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 // 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 // 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 // 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 // case, the :ref:`tx_flush_timeout <config_http_conn_man_stats_per_codec>` counter will be
// incremented. Note that :ref:`max_stream_duration // 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. // this corner case.
// //
// If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts" // 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 // 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 // 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 // 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 // :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 // conjunction with HTTP filters that explicitly manipulate XFF after the HTTP connection manager
// has mutated the request headers. While :ref:`use_remote_address // 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 // 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 // Envoy uses of the remote address, so *skip_xff_append* should be used
// when only an elision of XFF addition is intended. // when only an elision of XFF addition is intended.
@ -513,7 +513,7 @@ message HttpConnectionManager {
[(validate.rules).enum = {defined_only: true}]; [(validate.rules).enum = {defined_only: true}];
// This field is valid only when :ref:`forward_client_cert_details // 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 // 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 // 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 // :ref:`config_http_conn_man_headers_x-forwarded-client-cert` header, *Hash* is always set, and
@ -529,7 +529,7 @@ message HttpConnectionManager {
// If // If
// :ref:`use_remote_address // :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 // 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*. // 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 // 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 { oneof strip_port_mode {
// Determines if the port part should be removed from host/authority header before any processing // 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 // 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 // CONNECT in which case if no filter adds a port the original port will be restored before headers are
// sent upstream. // sent upstream.
// Without setting this option, incoming requests with host `example:443` will not match against // 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. // 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. // Only one of `strip_matching_host_port` or `strip_any_host_port` can be set.
bool strip_matching_host_port = 39; bool strip_matching_host_port = 39;
@ -604,7 +604,7 @@ message HttpConnectionManager {
// This affects the upstream host header unless the method is CONNECT in // 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. // 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 // 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. // 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. // Only one of `strip_matching_host_port` or `strip_any_host_port` can be set.
bool strip_any_host_port = 42; bool strip_any_host_port = 42;
@ -634,7 +634,7 @@ message HttpConnectionManager {
// whether transformations affect the forwarded *:path* header. RFC 3986 path // whether transformations affect the forwarded *:path* header. RFC 3986 path
// normalization is enabled by default and the default policy is that the // normalization is enabled by default and the default policy is that the
// normalized header will be forwarded. See :ref:`PathNormalizationOptions // 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. // for details.
PathNormalizationOptions path_normalization_options = 43; PathNormalizationOptions path_normalization_options = 43;
} }
@ -744,14 +744,14 @@ message ScopedRoutes {
"envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes"; "envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes";
// Specifies the mechanism for constructing "scope keys" based on HTTP request attributes. These // 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>` // keys are matched against a set of :ref:`Key<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration.Key>`
// objects assembled from :ref:`ScopedRouteConfiguration<envoy_api_msg_config.route.v4alpha.ScopedRouteConfiguration>` // 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 // 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 // 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 // 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 { message ScopeKeyBuilder {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
"envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder"; "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 // 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. // 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}]; 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 // 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 // matching a key constructed from the request's attributes according to the algorithm specified
// by the // 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. // in this message.
ScopedRouteConfigurationsList scoped_route_configurations_list = 4; ScopedRouteConfigurationsList scoped_route_configurations_list = 4;
// The set of routing scopes associated with the HCM will be dynamically loaded via the SRDS // 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 // 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 // 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. // in this message.
ScopedRds scoped_rds = 5; ScopedRds scoped_rds = 5;
} }
@ -902,7 +902,7 @@ message HttpFilter {
// filters for further documentation. // filters for further documentation.
// //
// To support configuring a :ref:`match tree <arch_overview_matching_api>`, use an // 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. // with the desired HTTP filter.
// [#extension-category: envoy.filters.http] // [#extension-category: envoy.filters.http]
google.protobuf.Any typed_config = 4; 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). // 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 // 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 // with the desired HTTP filter. This works for both the default filter configuration as well
// as for filters provided via the API. // as for filters provided via the API.
config.core.v4alpha.ExtensionConfigSource config_discovery = 5; config.core.v4alpha.ExtensionConfigSource config_discovery = 5;

@ -36,7 +36,7 @@ message LocalRateLimit {
// //
// .. note:: // .. note::
// In the current implementation the token bucket's :ref:`fill_interval // 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. // refills.
type.v3.TokenBucket token_bucket = 2 [(validate.rules).message = {required: true}]; 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. // 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 // 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 // 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. // 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 // 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>`_. // `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 abc:users`` would retrieve the key 'abc:users' from cluster_b.
// * ``get ab:users`` would retrieve the key 'ab:users' from cluster_a. // * ``get ab:users`` would retrieve the key 'ab:users' from cluster_a.
// * ``get z:users`` would return a NoUpstreamHost error. A :ref:`catch-all // * ``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. // would have retrieved the key from that cluster instead.
// //
// See the :ref:`configuration section // See the :ref:`configuration section
@ -303,7 +303,7 @@ message RedisProxy {
} }
// RedisProtocolOptions specifies Redis upstream protocol options. This object is used in // 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`. // keyed by the name `envoy.filters.network.redis_proxy`.
message RedisProtocolOptions { message RedisProtocolOptions {
option (udpa.annotations.versioning).previous_message_type = 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 // The DNS cache configuration that the filter will attach to. Note this
// configuration must match that of associated :ref:`dynamic forward proxy // configuration must match that of associated :ref:`dynamic forward proxy
// cluster configuration // 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 common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1
[(validate.rules).message = {required: true}]; [(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 // 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 // for load balancing. Note that this will be merged with what's provided in
// :ref:`TcpProxy.metadata_match // :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*. // here taking precedence. The filter name should be specified as *envoy.lb*.
config.core.v3.Metadata metadata_match = 3; 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 // 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 // for load balancing. Note that this will be merged with what's provided in
// :ref:`TcpProxy.metadata_match // :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*. // here taking precedence. The filter name should be specified as *envoy.lb*.
config.core.v4alpha.Metadata metadata_match = 3; 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 // Specifies the rate limit configuration stage. Each configured rate limit filter performs a
// rate limit check using descriptors configured in the // 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 // Only those entries with a matching stage number are used for a given filter. If not set, the
// default stage number is 0. // default stage number is 0.
// //

@ -29,7 +29,7 @@ message RateLimit {
// Specifies the rate limit configuration stage. Each configured rate limit filter performs a // Specifies the rate limit configuration stage. Each configured rate limit filter performs a
// rate limit check using descriptors configured in the // 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 // Only those entries with a matching stage number are used for a given filter. If not set, the
// default stage number is 0. // default stage number is 0.
// //

@ -60,17 +60,17 @@ message RouteMatch {
} }
// Inverts whatever matching is done in the :ref:`method_name // 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 // :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. // Cannot be combined with wildcard matching as that would result in routes never being matched.
// //
// .. note:: // .. note::
// //
// This does not invert matching done as part of the :ref:`headers field // 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 // 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; bool invert = 3;
// Specifies a set of headers that the route should match on. The router will check the requests // 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 // 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. // 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 // 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" // with values there taking precedence. Keys and values should be provided under the "envoy.lb"
// metadata key. // metadata key.
config.core.v3.Metadata metadata_match = 3; 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 // 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 // the upstream cluster with metadata matching what is set in this field, combined with what's
// provided in :ref:`RouteAction's metadata_match // 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 // will be considered. Values here will take precedence. Keys and values should be provided
// under the "envoy.lb" metadata key. // under the "envoy.lb" metadata key.
config.core.v3.Metadata metadata_match = 3; config.core.v3.Metadata metadata_match = 3;

@ -64,11 +64,11 @@ message ThriftProxy {
"envoy.config.filter.network.thrift_proxy.v2alpha1.ThriftProxy"; "envoy.config.filter.network.thrift_proxy.v2alpha1.ThriftProxy";
// Supplies the type of transport that the Thrift proxy should use. Defaults to // 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}]; TransportType transport = 2 [(validate.rules).enum = {defined_only: true}];
// Supplies the type of protocol that the Thrift proxy should use. Defaults to // 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}]; ProtocolType protocol = 3 [(validate.rules).enum = {defined_only: true}];
// The human readable prefix to use when emitting statistics. // 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 // ThriftProtocolOptions specifies Thrift upstream protocol options. This object is used in
// 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`. // keyed by the name `envoy.filters.network.thrift_proxy`.
message ThriftProtocolOptions { message ThriftProtocolOptions {
option (udpa.annotations.versioning).previous_message_type = 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. // Supplies the type of transport that the Thrift proxy should use for upstream connections.
// Selecting // 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. // 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}]; TransportType transport = 1 [(validate.rules).enum = {defined_only: true}];
// Supplies the type of protocol that the Thrift proxy should use for upstream connections. // Supplies the type of protocol that the Thrift proxy should use for upstream connections.
// Selecting // 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. // 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}]; 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 // 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 // :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. // Cannot be combined with wildcard matching as that would result in routes never being matched.
// //
// .. note:: // .. note::
// //
// This does not invert matching done as part of the :ref:`headers field // 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 // 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; bool invert = 3;
// Specifies a set of headers that the route should match on. The router will check the requests // 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 // 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. // 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 // 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" // with values there taking precedence. Keys and values should be provided under the "envoy.lb"
// metadata key. // metadata key.
config.core.v4alpha.Metadata metadata_match = 3; 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 // 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 // the upstream cluster with metadata matching what is set in this field, combined with what's
// provided in :ref:`RouteAction's metadata_match // 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 // will be considered. Values here will take precedence. Keys and values should be provided
// under the "envoy.lb" metadata key. // under the "envoy.lb" metadata key.
config.core.v4alpha.Metadata metadata_match = 3; config.core.v4alpha.Metadata metadata_match = 3;

@ -64,11 +64,11 @@ message ThriftProxy {
"envoy.extensions.filters.network.thrift_proxy.v3.ThriftProxy"; "envoy.extensions.filters.network.thrift_proxy.v3.ThriftProxy";
// Supplies the type of transport that the Thrift proxy should use. Defaults to // 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}]; TransportType transport = 2 [(validate.rules).enum = {defined_only: true}];
// Supplies the type of protocol that the Thrift proxy should use. Defaults to // 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}]; ProtocolType protocol = 3 [(validate.rules).enum = {defined_only: true}];
// The human readable prefix to use when emitting statistics. // 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 // ThriftProtocolOptions specifies Thrift upstream protocol options. This object is used in
// 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`. // keyed by the name `envoy.filters.network.thrift_proxy`.
message ThriftProtocolOptions { message ThriftProtocolOptions {
option (udpa.annotations.versioning).previous_message_type = 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. // Supplies the type of transport that the Thrift proxy should use for upstream connections.
// Selecting // 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. // 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}]; TransportType transport = 1 [(validate.rules).enum = {defined_only: true}];
// Supplies the type of protocol that the Thrift proxy should use for upstream connections. // Supplies the type of protocol that the Thrift proxy should use for upstream connections.
// Selecting // 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. // 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}]; 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] // [#extension: envoy.internal_redirect_predicates.allow_listed_routes]
message AllowListedRoutesConfig { message AllowListedRoutesConfig {
// The list of routes that's allowed as redirect target by this predicate, // 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. // Empty route names are not allowed.
repeated string allowed_route_names = 1 repeated string allowed_route_names = 1
[(validate.rules).repeated = {items {string {min_len: 1}}}]; [(validate.rules).repeated = {items {string {min_len: 1}}}];

@ -160,11 +160,11 @@ message TlsCertificate {
config.core.v3.WatchedDirectory watched_directory = 7; config.core.v3.WatchedDirectory watched_directory = 7;
// BoringSSL private key method provider. This is an alternative to :ref:`private_key // 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 // 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 // :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. // error.
PrivateKeyProvider private_key_provider = 6; 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 // 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. // 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 // 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 // use an internally-generated and managed key, so sessions cannot be resumed across hot restarts
// or on different hosts. // or on different hosts.
@ -224,7 +224,7 @@ message CertificateValidationContext {
// Connections where the certificate fails verification will be permitted. // Connections where the certificate fails verification will be permitted.
// For HTTP connections, the result of certificate verification can be used in route matching. ( // 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; ACCEPT_UNTRUSTED = 1;
} }
@ -237,13 +237,13 @@ message CertificateValidationContext {
// for listeners). If not specified and a peer certificate is presented it will not be // 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 // verified. By default, a client certificate is optional, unless one of the additional
// options (:ref:`require_client_certificate // 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 // :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 // :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 // :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. // specified.
// //
// It can optionally contain certificate revocation lists, in which case Envoy will verify // It can optionally contain certificate revocation lists, in which case Envoy will verify
@ -289,15 +289,15 @@ message CertificateValidationContext {
// //
// When both: // When both:
// :ref:`verify_certificate_hash // :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 // :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. // a hash matching value from either of the lists will result in the certificate being accepted.
// //
// .. attention:: // .. attention::
// //
// This option is preferred over :ref:`verify_certificate_hash // 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 // because SPKI is tied to a private key, so it doesn't change when the certificate
// is renewed using the same private key. // is renewed using the same private key.
repeated string verify_certificate_spki = 3 repeated string verify_certificate_spki = 3
@ -325,9 +325,9 @@ message CertificateValidationContext {
// //
// When both: // When both:
// :ref:`verify_certificate_hash // :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 // :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. // a hash matching value from either of the lists will result in the certificate being accepted.
repeated string verify_certificate_hash = 2 repeated string verify_certificate_hash = 2
[(validate.rules).repeated = {items {string {min_len: 64 max_bytes: 95}}}]; [(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. // 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 // 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", // 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. // 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, // Subject Alternative Names are easily spoofable and verifying only them is insecure,
// therefore this option must be used together with :ref:`trusted_ca // 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; repeated type.matcher.v3.StringMatcher match_subject_alt_names = 9;
// [#not-implemented-hide:] Must present signed certificate time-stamp. // [#not-implemented-hide:] Must present signed certificate time-stamp.

@ -32,7 +32,7 @@ message UpstreamTlsContext {
// .. attention:: // .. attention::
// //
// Server certificate verification is not enabled by default. Configure // 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. // verification.
CommonTlsContext common_tls_context = 1; 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 // 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. // 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 // 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>` // 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_api_field_extensions.transport_sockets.tls.v3.DownstreamTlsContext.session_ticket_keys_sds_secret_config>`. // 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 // 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 // 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. // 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 // 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 // practice this is likely to be set to one of two values (see the
// :ref:`codec_type // :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): // 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. // * "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