You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
3.2 KiB
68 lines
3.2 KiB
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}]; |
|
}
|
|
|