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
Copy to clipboard

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

key: envoy.xxx
path:
- key: prop
- key: foo
Copy to clipboard
{
  "key": "...",
  "path": []
}
Copy to clipboard
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

(repeated 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": "..."
}
Copy to clipboard
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": "{...}"
}
Copy to clipboard
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.

{}
Copy to clipboard

type.metadata.v3.MetadataKind.Route

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

Represents metadata from the route.

{}
Copy to clipboard

type.metadata.v3.MetadataKind.Cluster

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

Represents metadata from the upstream cluster.

{}
Copy to clipboard

type.metadata.v3.MetadataKind.Host

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

Represents metadata from the upstream host.

{}
Copy to clipboard