Repository: envoyproxy/envoy
File: api/envoy/extensions/upstreams/http/v3/http_protocol_options.proto (Protocol Buffers)

Code before:
  // .. note::
  //   Upstream HTTP filters are currently in alpha.
  //
  //
  // These filters will be applied for all HTTP streams which flow through this
  // cluster. Unlike downstream HTTP filters, they will *not* be applied to terminated CONNECT requests.
  //
  // If using upstream HTTP filters, please be aware that local errors sent by
  // upstream HTTP filters will not trigger retries, and local errors sent by
  // upstream HTTP filters will count as a final response if hedging is configured.
  // [#extension-category: envoy.filters.http.upstream]
  repeated filters.network.http_connection_manager.v3.HttpFilter http_filters = 6;

  // Configuration options for Unified Header Validation (UHV).
  // UHV is an extensible mechanism for checking validity of HTTP responses.
  //
  // [#comment:TODO(yanavlasov): Make it a link to the default header validator doc when it becomes visible.]
  // Leaving this field unspecified, selects the default header validator ``envoy.http.header_validators.envoy_default``.
  //
  // [#not-implemented-hide:]
  // [#extension-category: envoy.http.header_validators]
  config.core.v3.TypedExtensionConfig header_validation_config = 7;

  // If specified, only responses matching the matcher will be treated by outlier detection as errors.
  // If not specified, only 5xx codes are treated by outlier detection as errors.
  config.common.matcher.v3.MatchPredicate outlier_detection_error_matcher = 8;
}


Review comment (bug):
I actually prefer you previous design about add a new `OutlierDetection` message. We may could add new field at there in the future if we aware more feature requirements. (If I didn't present this clearly before, sorry! 😞 )

```
message OutlierDetection {
  config.common.matcher.v3.MatchPredicate failure_matcher = 1;
}
```

Code after:

    // This allows switching on protocol based on ALPN
    AutoHttpConfig auto_config = 5;
  }

  // Optional HTTP filters for the upstream HTTP filter chain.
  //
  // .. note::
  //   Upstream HTTP filters are currently in alpha.
  //
  //
  // These filters will be applied for all HTTP streams which flow through this
  // cluster. Unlike downstream HTTP filters, they will *not* be applied to terminated CONNECT requests.
  //
  // If using upstream HTTP filters, please be aware that local errors sent by
  // upstream HTTP filters will not trigger retries, and local errors sent by
  // upstream HTTP filters will count as a final response if hedging is configured.
  // [#extension-category: envoy.filters.http.upstream]
  repeated filters.network.http_connection_manager.v3.HttpFilter http_filters = 6;

  // Configuration options for Unified Header Validation (UHV).
  // UHV is an extensible mechanism for checking validity of HTTP responses.
  //
  // [#comment:TODO(yanavlasov): Make it a link to the default header validator doc when it becomes visible.]
  // Leaving this field unspecified, selects the default header validator ``envoy.http.header_validators.envoy_default``.
  //
  // [#not-implemented-hide:]
  // [#extension-category: envoy.http.header_validators]
  config.core.v3.TypedExtensionConfig header_validation_config = 7;

  // Defines http specific outlier detection parameters.
  OutlierDetection outlier_detection = 8;
}