filters: Add dependencies.proto (#14750)

Introduces the FilterDependency proto. This isn't quite an extension, but it's a common proto to be used by all filter extensions.

Risk Level: Low (proto addition only)

#14470

Signed-off-by: Auni Ahsan <auni@google.com>

Mirrored from https://github.com/envoyproxy/envoy @ 2da224f88afe5ec84ba802bd932f73ed13308a92
pull/624/head
data-plane-api(Azure Pipelines) 4 years ago
parent 1678b2b8e9
commit 5f07341dc5
  1. 1
      BUILD
  2. 9
      envoy/extensions/filters/common/dependency/v3/BUILD
  3. 45
      envoy/extensions/filters/common/dependency/v3/dependency.proto
  4. 1
      versioning/BUILD

@ -166,6 +166,7 @@ proto_library(
"//envoy/extensions/common/tap/v3:pkg",
"//envoy/extensions/compression/gzip/compressor/v3:pkg",
"//envoy/extensions/compression/gzip/decompressor/v3:pkg",
"//envoy/extensions/filters/common/dependency/v3:pkg",
"//envoy/extensions/filters/common/fault/v3:pkg",
"//envoy/extensions/filters/common/matcher/action/v3:pkg",
"//envoy/extensions/filters/http/adaptive_concurrency/v3:pkg",

@ -0,0 +1,9 @@
# DO NOT EDIT. This file is generated by tools/proto_format/proto_sync.py.
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package")
licenses(["notice"]) # Apache 2
api_proto_package(
deps = ["@com_github_cncf_udpa//udpa/annotations:pkg"],
)

@ -0,0 +1,45 @@
syntax = "proto3";
package envoy.extensions.filters.common.dependency.v3;
import "udpa/annotations/migrate.proto";
import "udpa/annotations/status.proto";
import "validate/validate.proto";
option java_package = "io.envoyproxy.envoy.extensions.filters.common.dependency.v3";
option java_outer_classname = "DependencyProto";
option java_multiple_files = true;
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Filter dependency specification]
// Dependency specification and string identifier.
message Dependency {
enum DependencyType {
HEADER = 0;
FILTER_STATE_KEY = 1;
DYNAMIC_METADATA = 2;
}
// The kind of dependency.
DependencyType type = 1;
// The string identifier for the dependency.
string name = 2 [(validate.rules).string = {min_len: 1}];
}
// Dependency specification for a filter. For a filter chain to be valid, any
// dependency that is required must be provided by an earlier filter.
message FilterDependencies {
// A list of dependencies required on the decode path.
repeated Dependency decode_required = 1;
// A list of dependencies provided on the encode path.
repeated Dependency decode_provided = 2;
// A list of dependencies required on the decode path.
repeated Dependency encode_required = 3;
// A list of dependencies provided on the encode path.
repeated Dependency encode_provided = 4;
}

@ -49,6 +49,7 @@ proto_library(
"//envoy/extensions/common/tap/v3:pkg",
"//envoy/extensions/compression/gzip/compressor/v3:pkg",
"//envoy/extensions/compression/gzip/decompressor/v3:pkg",
"//envoy/extensions/filters/common/dependency/v3:pkg",
"//envoy/extensions/filters/common/fault/v3:pkg",
"//envoy/extensions/filters/common/matcher/action/v3:pkg",
"//envoy/extensions/filters/http/adaptive_concurrency/v3:pkg",

Loading…
Cancel
Save