rds.proto 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. syntax = "proto3";
  2. package envoy.service.route.v3;
  3. import "envoy/service/discovery/v3/discovery.proto";
  4. import "google/api/annotations.proto";
  5. import "envoy/annotations/resource.proto";
  6. import "udpa/annotations/status.proto";
  7. import "udpa/annotations/versioning.proto";
  8. option java_package = "io.envoyproxy.envoy.service.route.v3";
  9. option java_outer_classname = "RdsProto";
  10. option java_multiple_files = true;
  11. option go_package = "github.com/envoyproxy/go-control-plane/envoy/service/route/v3;routev3";
  12. option java_generic_services = true;
  13. option (udpa.annotations.file_status).package_version_status = ACTIVE;
  14. // [#protodoc-title: RDS]
  15. // The resource_names field in DiscoveryRequest specifies a route configuration.
  16. // This allows an Envoy configuration with multiple HTTP listeners (and
  17. // associated HTTP connection manager filters) to use different route
  18. // configurations. Each listener will bind its HTTP connection manager filter to
  19. // a route table via this identifier.
  20. service RouteDiscoveryService {
  21. option (envoy.annotations.resource).type = "envoy.config.route.v3.RouteConfiguration";
  22. rpc StreamRoutes(stream discovery.v3.DiscoveryRequest)
  23. returns (stream discovery.v3.DiscoveryResponse) {
  24. }
  25. rpc DeltaRoutes(stream discovery.v3.DeltaDiscoveryRequest)
  26. returns (stream discovery.v3.DeltaDiscoveryResponse) {
  27. }
  28. rpc FetchRoutes(discovery.v3.DiscoveryRequest) returns (discovery.v3.DiscoveryResponse) {
  29. option (google.api.http).post = "/v3/discovery:routes";
  30. option (google.api.http).body = "*";
  31. }
  32. }
  33. // Virtual Host Discovery Service (VHDS) is used to dynamically update the list of virtual hosts for
  34. // a given RouteConfiguration. If VHDS is configured a virtual host list update will be triggered
  35. // during the processing of an HTTP request if a route for the request cannot be resolved. The
  36. // :ref:`resource_names_subscribe <envoy_v3_api_field_service.discovery.v3.DeltaDiscoveryRequest.resource_names_subscribe>`
  37. // field contains a list of virtual host names or aliases to track. The contents of an alias would
  38. // be the contents of a *host* or *authority* header used to make an http request. An xDS server
  39. // will match an alias to a virtual host based on the content of :ref:`domains'
  40. // <envoy_v3_api_field_config.route.v3.VirtualHost.domains>` field. The *resource_names_unsubscribe* field
  41. // contains a list of virtual host names that have been :ref:`unsubscribed
  42. // <xds_protocol_unsubscribe>` from the routing table associated with the RouteConfiguration.
  43. service VirtualHostDiscoveryService {
  44. option (envoy.annotations.resource).type = "envoy.config.route.v3.VirtualHost";
  45. rpc DeltaVirtualHosts(stream discovery.v3.DeltaDiscoveryRequest)
  46. returns (stream discovery.v3.DeltaDiscoveryResponse) {
  47. }
  48. }
  49. // [#not-implemented-hide:] Not configuration. Workaround c++ protobuf issue with importing
  50. // services: https://github.com/google/protobuf/issues/4221 and protoxform to upgrade the file.
  51. message RdsDummy {
  52. option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.RdsDummy";
  53. }