|
|
|
syntax = "proto3";
|
|
|
|
|
|
|
|
package envoy.config.core.v4alpha;
|
|
|
|
|
|
|
|
import "envoy/config/core/v4alpha/config_source.proto";
|
|
|
|
|
|
|
|
import "google/protobuf/any.proto";
|
|
|
|
|
|
|
|
import "udpa/annotations/status.proto";
|
|
|
|
import "udpa/annotations/versioning.proto";
|
|
|
|
import "validate/validate.proto";
|
|
|
|
|
|
|
|
option java_package = "io.envoyproxy.envoy.config.core.v4alpha";
|
|
|
|
option java_outer_classname = "ExtensionProto";
|
|
|
|
option java_multiple_files = true;
|
|
|
|
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE;
|
|
|
|
|
|
|
|
// [#protodoc-title: Extension configuration]
|
|
|
|
|
|
|
|
// Message type for extension configuration.
|
|
|
|
// [#next-major-version: revisit all existing typed_config that doesn't use this wrapper.].
|
|
|
|
message TypedExtensionConfig {
|
|
|
|
option (udpa.annotations.versioning).previous_message_type =
|
|
|
|
"envoy.config.core.v3.TypedExtensionConfig";
|
|
|
|
|
|
|
|
// The name of an extension. This is not used to select the extension, instead
|
|
|
|
// it serves the role of an opaque identifier.
|
|
|
|
string name = 1 [(validate.rules).string = {min_len: 1}];
|
|
|
|
|
|
|
|
// The typed config for the extension. The type URL will be used to identify
|
|
|
|
// the extension. In the case that the type URL is *udpa.type.v1.TypedStruct*,
|
|
|
|
// the inner type URL of *TypedStruct* will be utilized. See the
|
|
|
|
// :ref:`extension configuration overview
|
|
|
|
// <config_overview_extension_configuration>` for further details.
|
|
|
|
google.protobuf.Any typed_config = 2 [(validate.rules).any = {required: true}];
|
|
|
|
}
|
|
|
|
|
|
|
|
// Configuration source specifier for a late-bound extension configuration. The
|
|
|
|
// parent resource is warmed until all the initial extension configurations are
|
|
|
|
// received, unless the flag to apply the default configuration is set.
|
|
|
|
// Subsequent extension updates are atomic on a per-worker basis. Once an
|
|
|
|
// extension configuration is applied to a request or a connection, it remains
|
|
|
|
// constant for the duration of processing. If the initial delivery of the
|
|
|
|
// extension configuration fails, due to a timeout for example, the optional
|
|
|
|
// default configuration is applied. Without a default configuration, the
|
|
|
|
// extension is disabled, until an extension configuration is received. The
|
|
|
|
// behavior of a disabled extension depends on the context. For example, a
|
|
|
|
// filter chain with a disabled extension filter rejects all incoming streams.
|
|
|
|
message ExtensionConfigSource {
|
|
|
|
option (udpa.annotations.versioning).previous_message_type =
|
|
|
|
"envoy.config.core.v3.ExtensionConfigSource";
|
|
|
|
|
|
|
|
ConfigSource config_source = 1 [(validate.rules).any = {required: true}];
|
|
|
|
|
|
|
|
// Optional default configuration to use as the initial configuration if
|
|
|
|
// there is a failure to receive the initial extension configuration or if
|
|
|
|
// `apply_default_config_without_warming` flag is set.
|
|
|
|
google.protobuf.Any default_config = 2;
|
|
|
|
|
|
|
|
// Use the default config as the initial configuration without warming and
|
|
|
|
// waiting for the first discovery response. Requires the default configuration
|
|
|
|
// to be supplied.
|
|
|
|
bool apply_default_config_without_warming = 3;
|
|
|
|
|
|
|
|
// A set of permitted extension type URLs. Extension configuration updates are rejected
|
|
|
|
// if they do not match any type URL in the set.
|
|
|
|
repeated string type_urls = 4 [(validate.rules).repeated = {min_items: 1}];
|
|
|
|
}
|