syntax = "proto3"; package envoy.type.matcher.v3; import "envoy/type/matcher/v3/number.proto"; import "envoy/type/matcher/v3/string.proto"; import "udpa/annotations/status.proto"; import "udpa/annotations/versioning.proto"; import "validate/validate.proto"; option java_package = "io.envoyproxy.envoy.type.matcher.v3"; option java_outer_classname = "ValueProto"; option java_multiple_files = true; option go_package = "github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3;matcherv3"; option (udpa.annotations.file_status).package_version_status = ACTIVE; // [#protodoc-title: Value matcher] // Specifies the way to match a ProtobufWkt::Value. Primitive values and ListValue are supported. // StructValue is not supported and is always not matched. // [#next-free-field: 7] message ValueMatcher { option (udpa.annotations.versioning).previous_message_type = "envoy.type.matcher.ValueMatcher"; // NullMatch is an empty message to specify a null value. message NullMatch { option (udpa.annotations.versioning).previous_message_type = "envoy.type.matcher.ValueMatcher.NullMatch"; } // Specifies how to match a value. oneof match_pattern { option (validate.required) = true; // If specified, a match occurs if and only if the target value is a NullValue. NullMatch null_match = 1; // If specified, a match occurs if and only if the target value is a double value and is // matched to this field. DoubleMatcher double_match = 2; // If specified, a match occurs if and only if the target value is a string value and is // matched to this field. StringMatcher string_match = 3; // If specified, a match occurs if and only if the target value is a bool value and is equal // to this field. bool bool_match = 4; // If specified, value match will be performed based on whether the path is referring to a // valid primitive value in the metadata. If the path is referring to a non-primitive value, // the result is always not matched. bool present_match = 5; // If specified, a match occurs if and only if the target value is a list value and // is matched to this field. ListMatcher list_match = 6; } } // Specifies the way to match a list value. message ListMatcher { option (udpa.annotations.versioning).previous_message_type = "envoy.type.matcher.ListMatcher"; oneof match_pattern { option (validate.required) = true; // If specified, at least one of the values in the list must match the value specified. ValueMatcher one_of = 1; } }