.. _envoy_v3_api_file_envoy/type/matcher/v3/struct.proto: Struct matcher ============== .. _envoy_v3_api_msg_type.matcher.v3.StructMatcher: type.matcher.v3.StructMatcher ----------------------------- `[type.matcher.v3.StructMatcher proto] `_ StructMatcher provides a general interface to check if a given value is matched in google.protobuf.Struct. It uses `path` to retrieve the value from the struct and then check if it's matched to the specified value. For example, for the following Struct: .. code-block:: yaml fields: a: struct_value: fields: b: struct_value: fields: c: string_value: pro t: list_value: values: - string_value: m - string_value: n The following MetadataMatcher is matched as the path [a, b, c] will retrieve a string value "pro" from the Metadata which is matched to the specified prefix match. .. code-block:: yaml path: - key: a - key: b - key: c value: string_match: prefix: pr The following StructMatcher is matched as the code will match one of the string values in the list at the path [a, t]. .. code-block:: yaml path: - key: a - key: t value: list_match: one_of: string_match: exact: m An example use of StructMatcher is to match metadata in envoy.v*.core.Node. .. code-block:: json { "path": [], "value": "{...}" } .. _envoy_v3_api_field_type.matcher.v3.StructMatcher.path: path (**repeated** :ref:`type.matcher.v3.StructMatcher.PathSegment `, *REQUIRED*) The path to retrieve the Value from the Struct. .. _envoy_v3_api_field_type.matcher.v3.StructMatcher.value: value (:ref:`type.matcher.v3.ValueMatcher `, *REQUIRED*) The StructMatcher is matched if the value retrieved by path is matched to this value. .. _envoy_v3_api_msg_type.matcher.v3.StructMatcher.PathSegment: type.matcher.v3.StructMatcher.PathSegment ----------------------------------------- `[type.matcher.v3.StructMatcher.PathSegment proto] `_ Specifies the segment in a path to retrieve value from Struct. .. code-block:: json { "key": "..." } .. _envoy_v3_api_field_type.matcher.v3.StructMatcher.PathSegment.key: key (`string `_, *REQUIRED*) If specified, use the key to retrieve the value in a Struct.