metadata.proto

Package: solo.io.envoy.type.metadata.v3 Types:

Source File: github.com/solo-io/gloo/projects/gloo/api/external/envoy/type/metadata/v3/metadata.proto


MetadataKey

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": string
"path": []solo.io.envoy.type.metadata.v3.MetadataKey.PathSegment
Field Type Description
key string The key name of Metadata to retrieve the Struct from the metadata. Typically, it represents a builtin subsystem or custom extension.
path []solo.io.envoy.type.metadata.v3.MetadataKey.PathSegment 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.

PathSegment

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": string
Field Type Description
key string If specified, use the key to retrieve the value in a Struct.

MetadataKind

Describes what kind of metadata.

"request": .solo.io.envoy.type.metadata.v3.MetadataKind.Request
"route": .solo.io.envoy.type.metadata.v3.MetadataKind.Route
"cluster": .solo.io.envoy.type.metadata.v3.MetadataKind.Cluster
"host": .solo.io.envoy.type.metadata.v3.MetadataKind.Host
Field Type Description
request .solo.io.envoy.type.metadata.v3.MetadataKind.Request Request kind of metadata. Only one of request, route, cluster, or host can be set.
route .solo.io.envoy.type.metadata.v3.MetadataKind.Route Route kind of metadata. Only one of route, request, cluster, or host can be set.
cluster .solo.io.envoy.type.metadata.v3.MetadataKind.Cluster Cluster kind of metadata. Only one of cluster, request, route, or host can be set.
host .solo.io.envoy.type.metadata.v3.MetadataKind.Host Host kind of metadata. Only one of host, request, route, or cluster can be set.

Request

Represents dynamic metadata associated with the request.

Field Type Description

Route

Represents metadata from the route.

Field Type Description

Cluster

Represents metadata from the upstream cluster.

Field Type Description

Host

Represents metadata from the upstream host.

Field Type Description