1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
/// Dependency specification and string identifier.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Dependency {
/// The kind of dependency.
#[prost(enumeration = "dependency::DependencyType", tag = "1")]
pub r#type: i32,
/// The string identifier for the dependency.
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
}
/// Nested message and enum types in `Dependency`.
pub mod dependency {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum DependencyType {
Header = 0,
FilterStateKey = 1,
DynamicMetadata = 2,
}
impl DependencyType {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
DependencyType::Header => "HEADER",
DependencyType::FilterStateKey => "FILTER_STATE_KEY",
DependencyType::DynamicMetadata => "DYNAMIC_METADATA",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"HEADER" => Some(Self::Header),
"FILTER_STATE_KEY" => Some(Self::FilterStateKey),
"DYNAMIC_METADATA" => Some(Self::DynamicMetadata),
_ => None,
}
}
}
}
/// Dependency specification for a filter. For a filter chain to be valid, any
/// dependency that is required must be provided by an earlier filter.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FilterDependencies {
/// A list of dependencies required on the decode path.
#[prost(message, repeated, tag = "1")]
pub decode_required: ::prost::alloc::vec::Vec<Dependency>,
/// A list of dependencies provided on the encode path.
#[prost(message, repeated, tag = "2")]
pub decode_provided: ::prost::alloc::vec::Vec<Dependency>,
/// A list of dependencies required on the decode path.
#[prost(message, repeated, tag = "3")]
pub encode_required: ::prost::alloc::vec::Vec<Dependency>,
/// A list of dependencies provided on the encode path.
#[prost(message, repeated, tag = "4")]
pub encode_provided: ::prost::alloc::vec::Vec<Dependency>,
}
/// Matching requirements for a filter. For a match tree to be used with a filter, the match
/// requirements must be satisfied.
///
/// This protobuf is provided by the filter implementation as a way to communicate the matching
/// requirements to the filter factories, allowing for config rejection if the requirements are
/// not satisfied.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MatchingRequirements {
#[prost(message, optional, tag = "1")]
pub data_input_allow_list: ::core::option::Option<
matching_requirements::DataInputAllowList,
>,
}
/// Nested message and enum types in `MatchingRequirements`.
pub mod matching_requirements {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataInputAllowList {
/// An explicit list of data inputs that are allowed to be used with this filter.
#[prost(string, repeated, tag = "1")]
pub type_url: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
}