Class Metadata

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessage
io.envoyproxy.envoy.config.core.v3.Metadata
All Implemented Interfaces:
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, MetadataOrBuilder, Serializable

@Generated public final class Metadata extends com.google.protobuf.GeneratedMessage implements MetadataOrBuilder
Metadata provides additional inputs to filters based on matched listeners,
filter chains, routes and endpoints. It is structured as a map, usually from
filter name (in reverse DNS format) to metadata specific to the filter. Metadata
key-values for a filter are merged as connection and request handling occurs,
with later values for the same key overriding earlier values.

An example use of metadata is providing additional values to
http_connection_manager in the envoy.http_connection_manager.access_log
namespace.

Another example use of metadata is to per service config info in cluster metadata, which may get
consumed by multiple filters.

For load balancing, Metadata provides a means to subset cluster endpoints.
Endpoints have a Metadata object associated and routes contain a Metadata
object to match against. There are some well defined metadata used today for
this purpose:

* ``{"envoy.lb": {"canary": <bool> }}`` This indicates the canary status of an
endpoint and is also used during header processing
(x-envoy-upstream-canary) and for stats purposes.
[#next-major-version: move to type/metadata/v2]
Protobuf type envoy.config.core.v3.Metadata
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • FILTER_METADATA_FIELD_NUMBER

      public static final int FILTER_METADATA_FIELD_NUMBER
      See Also:
    • filterMetadata_

      private com.google.protobuf.MapField<String, com.google.protobuf.Struct> filterMetadata_
    • TYPED_FILTER_METADATA_FIELD_NUMBER

      public static final int TYPED_FILTER_METADATA_FIELD_NUMBER
      See Also:
    • typedFilterMetadata_

      private com.google.protobuf.MapField<String, com.google.protobuf.Any> typedFilterMetadata_
    • memoizedIsInitialized

      private byte memoizedIsInitialized
    • DEFAULT_INSTANCE

      private static final Metadata DEFAULT_INSTANCE
    • PARSER

      private static final com.google.protobuf.Parser<Metadata> PARSER
  • Constructor Details

    • Metadata

      private Metadata(com.google.protobuf.GeneratedMessage.Builder<?> builder)
    • Metadata

      private Metadata()
  • Method Details

    • getDescriptor

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
    • getDescriptorForType

      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      Specified by:
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      Overrides:
      getDescriptorForType in class com.google.protobuf.GeneratedMessage
    • internalGetMapFieldReflection

      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(int number)
      Overrides:
      internalGetMapFieldReflection in class com.google.protobuf.GeneratedMessage
    • internalGetFieldAccessorTable

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessage
    • internalGetFilterMetadata

      private com.google.protobuf.MapField<String, com.google.protobuf.Struct> internalGetFilterMetadata()
    • getFilterMetadataCount

      public int getFilterMetadataCount()
      Description copied from interface: MetadataOrBuilder
      Key is the reverse DNS filter name, e.g. com.acme.widget. The ``envoy.*``
      namespace is reserved for Envoy's built-in filters.
      If both ``filter_metadata`` and
      :ref:`typed_filter_metadata <envoy_v3_api_field_config.core.v3.Metadata.typed_filter_metadata>`
      fields are present in the metadata with same keys,
      only ``typed_filter_metadata`` field will be parsed.
      
      map<string, .google.protobuf.Struct> filter_metadata = 1 [(.validate.rules) = { ... }
      Specified by:
      getFilterMetadataCount in interface MetadataOrBuilder
    • containsFilterMetadata

      public boolean containsFilterMetadata(String key)
      Key is the reverse DNS filter name, e.g. com.acme.widget. The ``envoy.*``
      namespace is reserved for Envoy's built-in filters.
      If both ``filter_metadata`` and
      :ref:`typed_filter_metadata <envoy_v3_api_field_config.core.v3.Metadata.typed_filter_metadata>`
      fields are present in the metadata with same keys,
      only ``typed_filter_metadata`` field will be parsed.
      
      map<string, .google.protobuf.Struct> filter_metadata = 1 [(.validate.rules) = { ... }
      Specified by:
      containsFilterMetadata in interface MetadataOrBuilder
    • getFilterMetadata

      @Deprecated public Map<String, com.google.protobuf.Struct> getFilterMetadata()
      Deprecated.
      Specified by:
      getFilterMetadata in interface MetadataOrBuilder
    • getFilterMetadataMap

      public Map<String, com.google.protobuf.Struct> getFilterMetadataMap()
      Key is the reverse DNS filter name, e.g. com.acme.widget. The ``envoy.*``
      namespace is reserved for Envoy's built-in filters.
      If both ``filter_metadata`` and
      :ref:`typed_filter_metadata <envoy_v3_api_field_config.core.v3.Metadata.typed_filter_metadata>`
      fields are present in the metadata with same keys,
      only ``typed_filter_metadata`` field will be parsed.
      
      map<string, .google.protobuf.Struct> filter_metadata = 1 [(.validate.rules) = { ... }
      Specified by:
      getFilterMetadataMap in interface MetadataOrBuilder
    • getFilterMetadataOrDefault

      public com.google.protobuf.Struct getFilterMetadataOrDefault(String key, com.google.protobuf.Struct defaultValue)
      Key is the reverse DNS filter name, e.g. com.acme.widget. The ``envoy.*``
      namespace is reserved for Envoy's built-in filters.
      If both ``filter_metadata`` and
      :ref:`typed_filter_metadata <envoy_v3_api_field_config.core.v3.Metadata.typed_filter_metadata>`
      fields are present in the metadata with same keys,
      only ``typed_filter_metadata`` field will be parsed.
      
      map<string, .google.protobuf.Struct> filter_metadata = 1 [(.validate.rules) = { ... }
      Specified by:
      getFilterMetadataOrDefault in interface MetadataOrBuilder
    • getFilterMetadataOrThrow

      public com.google.protobuf.Struct getFilterMetadataOrThrow(String key)
      Key is the reverse DNS filter name, e.g. com.acme.widget. The ``envoy.*``
      namespace is reserved for Envoy's built-in filters.
      If both ``filter_metadata`` and
      :ref:`typed_filter_metadata <envoy_v3_api_field_config.core.v3.Metadata.typed_filter_metadata>`
      fields are present in the metadata with same keys,
      only ``typed_filter_metadata`` field will be parsed.
      
      map<string, .google.protobuf.Struct> filter_metadata = 1 [(.validate.rules) = { ... }
      Specified by:
      getFilterMetadataOrThrow in interface MetadataOrBuilder
    • internalGetTypedFilterMetadata

      private com.google.protobuf.MapField<String, com.google.protobuf.Any> internalGetTypedFilterMetadata()
    • getTypedFilterMetadataCount

      public int getTypedFilterMetadataCount()
      Description copied from interface: MetadataOrBuilder
      Key is the reverse DNS filter name, e.g. com.acme.widget. The ``envoy.*``
      namespace is reserved for Envoy's built-in filters.
      The value is encoded as google.protobuf.Any.
      If both :ref:`filter_metadata <envoy_v3_api_field_config.core.v3.Metadata.filter_metadata>`
      and ``typed_filter_metadata`` fields are present in the metadata with same keys,
      only ``typed_filter_metadata`` field will be parsed.
      
      map<string, .google.protobuf.Any> typed_filter_metadata = 2 [(.validate.rules) = { ... }
      Specified by:
      getTypedFilterMetadataCount in interface MetadataOrBuilder
    • containsTypedFilterMetadata

      public boolean containsTypedFilterMetadata(String key)
      Key is the reverse DNS filter name, e.g. com.acme.widget. The ``envoy.*``
      namespace is reserved for Envoy's built-in filters.
      The value is encoded as google.protobuf.Any.
      If both :ref:`filter_metadata <envoy_v3_api_field_config.core.v3.Metadata.filter_metadata>`
      and ``typed_filter_metadata`` fields are present in the metadata with same keys,
      only ``typed_filter_metadata`` field will be parsed.
      
      map<string, .google.protobuf.Any> typed_filter_metadata = 2 [(.validate.rules) = { ... }
      Specified by:
      containsTypedFilterMetadata in interface MetadataOrBuilder
    • getTypedFilterMetadata

      @Deprecated public Map<String, com.google.protobuf.Any> getTypedFilterMetadata()
      Deprecated.
      Specified by:
      getTypedFilterMetadata in interface MetadataOrBuilder
    • getTypedFilterMetadataMap

      public Map<String, com.google.protobuf.Any> getTypedFilterMetadataMap()
      Key is the reverse DNS filter name, e.g. com.acme.widget. The ``envoy.*``
      namespace is reserved for Envoy's built-in filters.
      The value is encoded as google.protobuf.Any.
      If both :ref:`filter_metadata <envoy_v3_api_field_config.core.v3.Metadata.filter_metadata>`
      and ``typed_filter_metadata`` fields are present in the metadata with same keys,
      only ``typed_filter_metadata`` field will be parsed.
      
      map<string, .google.protobuf.Any> typed_filter_metadata = 2 [(.validate.rules) = { ... }
      Specified by:
      getTypedFilterMetadataMap in interface MetadataOrBuilder
    • getTypedFilterMetadataOrDefault

      public com.google.protobuf.Any getTypedFilterMetadataOrDefault(String key, com.google.protobuf.Any defaultValue)
      Key is the reverse DNS filter name, e.g. com.acme.widget. The ``envoy.*``
      namespace is reserved for Envoy's built-in filters.
      The value is encoded as google.protobuf.Any.
      If both :ref:`filter_metadata <envoy_v3_api_field_config.core.v3.Metadata.filter_metadata>`
      and ``typed_filter_metadata`` fields are present in the metadata with same keys,
      only ``typed_filter_metadata`` field will be parsed.
      
      map<string, .google.protobuf.Any> typed_filter_metadata = 2 [(.validate.rules) = { ... }
      Specified by:
      getTypedFilterMetadataOrDefault in interface MetadataOrBuilder
    • getTypedFilterMetadataOrThrow

      public com.google.protobuf.Any getTypedFilterMetadataOrThrow(String key)
      Key is the reverse DNS filter name, e.g. com.acme.widget. The ``envoy.*``
      namespace is reserved for Envoy's built-in filters.
      The value is encoded as google.protobuf.Any.
      If both :ref:`filter_metadata <envoy_v3_api_field_config.core.v3.Metadata.filter_metadata>`
      and ``typed_filter_metadata`` fields are present in the metadata with same keys,
      only ``typed_filter_metadata`` field will be parsed.
      
      map<string, .google.protobuf.Any> typed_filter_metadata = 2 [(.validate.rules) = { ... }
      Specified by:
      getTypedFilterMetadataOrThrow in interface MetadataOrBuilder
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessage
    • writeTo

      public void writeTo(com.google.protobuf.CodedOutputStream output) throws IOException
      Specified by:
      writeTo in interface com.google.protobuf.MessageLite
      Overrides:
      writeTo in class com.google.protobuf.GeneratedMessage
      Throws:
      IOException
    • getSerializedSize

      public int getSerializedSize()
      Specified by:
      getSerializedSize in interface com.google.protobuf.MessageLite
      Overrides:
      getSerializedSize in class com.google.protobuf.GeneratedMessage
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in interface com.google.protobuf.Message
      Overrides:
      equals in class com.google.protobuf.AbstractMessage
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface com.google.protobuf.Message
      Overrides:
      hashCode in class com.google.protobuf.AbstractMessage
    • parseFrom

      public static Metadata parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static Metadata parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static Metadata parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static Metadata parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static Metadata parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static Metadata parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static Metadata parseFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static Metadata parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static Metadata parseDelimitedFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static Metadata parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseFrom

      public static Metadata parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static Metadata parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • newBuilderForType

      public Metadata.Builder newBuilderForType()
      Specified by:
      newBuilderForType in interface com.google.protobuf.Message
      Specified by:
      newBuilderForType in interface com.google.protobuf.MessageLite
    • newBuilder

      public static Metadata.Builder newBuilder()
    • newBuilder

      public static Metadata.Builder newBuilder(Metadata prototype)
    • toBuilder

      public Metadata.Builder toBuilder()
      Specified by:
      toBuilder in interface com.google.protobuf.Message
      Specified by:
      toBuilder in interface com.google.protobuf.MessageLite
    • newBuilderForType

      protected Metadata.Builder newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent)
      Overrides:
      newBuilderForType in class com.google.protobuf.AbstractMessage
    • getDefaultInstance

      public static Metadata getDefaultInstance()
    • parser

      public static com.google.protobuf.Parser<Metadata> parser()
    • getParserForType

      public com.google.protobuf.Parser<Metadata> getParserForType()
      Specified by:
      getParserForType in interface com.google.protobuf.Message
      Specified by:
      getParserForType in interface com.google.protobuf.MessageLite
      Overrides:
      getParserForType in class com.google.protobuf.GeneratedMessage
    • getDefaultInstanceForType

      public Metadata getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder