Metadata

type.metadata.v3.MetadataKey

[type.metadata.v3.MetadataKey proto]

MetadataKey provides a general interface using key and path to retrieve value from Metadata.

For example, for the following Metadata:

filter_metadata:
  envoy.xxx:
    prop:
      foo: bar
      xyz:
        hello: envoy

The following MetadataKey will retrieve a string value “bar” from the Metadata.

key: envoy.xxx
path:
- key: prop
- key: foo
{
  "key": "...",
  "path": []
}
key

(string, REQUIRED) The key name of Metadata to retrieve the Struct from the metadata. Typically, it represents a builtin subsystem or custom extension.

path

(type.metadata.v3.MetadataKey.PathSegment, REQUIRED) The path to retrieve the Value from the Struct. It can be a prefix or a full path, e.g. [prop, xyz] for a struct or [prop, foo] for a string in the example, which depends on the particular scenario.

Note: Due to that only the key type segment is supported, the path can not specify a list unless the list is the last segment.

type.metadata.v3.MetadataKey.PathSegment

[type.metadata.v3.MetadataKey.PathSegment proto]

Specifies the segment in a path to retrieve value from Metadata. Currently it is only supported to specify the key, i.e. field name, as one segment of a path.

{
  "key": "..."
}
key

(string, REQUIRED) If specified, use the key to retrieve the value in a Struct.

type.metadata.v3.MetadataKind

[type.metadata.v3.MetadataKind proto]

Describes what kind of metadata.

{
  "request": "{...}",
  "route": "{...}",
  "cluster": "{...}",
  "host": "{...}"
}
request

(type.metadata.v3.MetadataKind.Request) Request kind of metadata.

Precisely one of request, route, cluster, host must be set.

route

(type.metadata.v3.MetadataKind.Route) Route kind of metadata.

Precisely one of request, route, cluster, host must be set.

cluster

(type.metadata.v3.MetadataKind.Cluster) Cluster kind of metadata.

Precisely one of request, route, cluster, host must be set.

host

(type.metadata.v3.MetadataKind.Host) Host kind of metadata.

Precisely one of request, route, cluster, host must be set.

type.metadata.v3.MetadataKind.Request

[type.metadata.v3.MetadataKind.Request proto]

Represents dynamic metadata associated with the request.

{}

type.metadata.v3.MetadataKind.Route

[type.metadata.v3.MetadataKind.Route proto]

Represents metadata from the route.

{}

type.metadata.v3.MetadataKind.Cluster

[type.metadata.v3.MetadataKind.Cluster proto]

Represents metadata from the upstream cluster.

{}

type.metadata.v3.MetadataKind.Host

[type.metadata.v3.MetadataKind.Host proto]

Represents metadata from the upstream host.

{}