syntax = "proto3"; package envoy.service.extension.v3; import "envoy/service/discovery/v3/discovery.proto"; import "google/api/annotations.proto"; import "envoy/annotations/resource.proto"; import "udpa/annotations/status.proto"; option java_package = "io.envoyproxy.envoy.service.extension.v3"; option java_outer_classname = "ConfigDiscoveryProto"; option java_multiple_files = true; option go_package = "github.com/envoyproxy/go-control-plane/envoy/service/extension/v3;extensionv3"; option java_generic_services = true; option (udpa.annotations.file_status).package_version_status = ACTIVE; // [#protodoc-title: Extension config discovery service (ECDS)] // A service that supports dynamic configuration updates for a specific filter. // Currently, ECDS is supported for HTTP filters and Listener filters. Please check // :ref:`Extension Config Discovery Service (ECDS) API `. // The overall extension config discovery service works as follows: // // 1. A filter (:ref:`Listener ` // or :ref:`HTTP `) // contains a :ref:`config_discovery ` configuration. This configuration // includes a :ref:`config_source `, // from which the filter configuration will be fetched. // 2. The client then registers for a resource using the filter name as the resource_name. // 3. The xDS server sends back the filter's configuration. // 4. The client stores the configuration that will be used in the next instantiation of the filter chain, // i.e., for the next requests. Whenever an updated filter configuration arrives, it will be taken into // account in the following instantiation of the filter chain. // // Note: Filters that are configured using ECDS are warmed. For more details see // :ref:`ExtensionConfigSource `. // Return extension configurations. service ExtensionConfigDiscoveryService { option (envoy.annotations.resource).type = "envoy.config.core.v3.TypedExtensionConfig"; rpc StreamExtensionConfigs(stream discovery.v3.DiscoveryRequest) returns (stream discovery.v3.DiscoveryResponse) { } rpc DeltaExtensionConfigs(stream discovery.v3.DeltaDiscoveryRequest) returns (stream discovery.v3.DeltaDiscoveryResponse) { } rpc FetchExtensionConfigs(discovery.v3.DiscoveryRequest) returns (discovery.v3.DiscoveryResponse) { option (google.api.http).post = "/v3/discovery:extension_configs"; option (google.api.http).body = "*"; } } // [#not-implemented-hide:] Not configuration. Workaround c++ protobuf issue // with importing services: https://github.com/google/protobuf/issues/4221 and // protoxform to upgrade the file. message EcdsDummy { }