Class Metadata

  • All Implemented Interfaces:
    com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, MetadataOrBuilder, Serializable

    public final class Metadata
    extends com.google.protobuf.GeneratedMessageV3
    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.api.v2.core.Metadata
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Metadata.Builder
      Metadata provides additional inputs to filters based on matched listeners, filter chains, routes and endpoints.
      • Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

        com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage,​BuilderType extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageType,​BuilderType>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
      • Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

        com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int FILTER_METADATA_FIELD_NUMBER  
      • Fields inherited from class com.google.protobuf.GeneratedMessageV3

        alwaysUseFieldBuilders, unknownFields
      • Fields inherited from class com.google.protobuf.AbstractMessage

        memoizedSize
      • Fields inherited from class com.google.protobuf.AbstractMessageLite

        memoizedHashCode
    • Field Detail

      • FILTER_METADATA_FIELD_NUMBER

        public static final int FILTER_METADATA_FIELD_NUMBER
        See Also:
        Constant Field Values
    • Method Detail

      • newInstance

        protected Object newInstance​(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
        Overrides:
        newInstance in class com.google.protobuf.GeneratedMessageV3
      • getUnknownFields

        public final com.google.protobuf.UnknownFieldSet getUnknownFields()
        Specified by:
        getUnknownFields in interface com.google.protobuf.MessageOrBuilder
        Overrides:
        getUnknownFields in class com.google.protobuf.GeneratedMessageV3
      • getDescriptor

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

        protected com.google.protobuf.MapField internalGetMapField​(int number)
        Overrides:
        internalGetMapField in class com.google.protobuf.GeneratedMessageV3
      • internalGetFieldAccessorTable

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Specified by:
        internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      • 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.
         
        map<string, .google.protobuf.Struct> filter_metadata = 1;
        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.
         
        map<string, .google.protobuf.Struct> filter_metadata = 1;
        Specified by:
        containsFilterMetadata 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.
         
        map<string, .google.protobuf.Struct> filter_metadata = 1;
        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.
         
        map<string, .google.protobuf.Struct> filter_metadata = 1;
        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.
         
        map<string, .google.protobuf.Struct> filter_metadata = 1;
        Specified by:
        getFilterMetadataOrThrow in interface MetadataOrBuilder
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessageV3
      • 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.GeneratedMessageV3
        Throws:
        IOException
      • getSerializedSize

        public int getSerializedSize()
        Specified by:
        getSerializedSize in interface com.google.protobuf.MessageLite
        Overrides:
        getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      • 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​(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
      • 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.GeneratedMessageV3.BuilderParent parent)
        Specified by:
        newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      • 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.GeneratedMessageV3
      • getDefaultInstanceForType

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