Class Metadata.Builder

java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder
com.google.protobuf.AbstractMessage.Builder<Metadata.Builder>
com.google.protobuf.GeneratedMessage.Builder<Metadata.Builder>
io.envoyproxy.envoy.config.core.v3.Metadata.Builder
All Implemented Interfaces:
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, MetadataOrBuilder, Cloneable
Enclosing class:
Metadata

public static final class Metadata.Builder extends com.google.protobuf.GeneratedMessage.Builder<Metadata.Builder> 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
  • Field Details

    • bitField0_

      private int bitField0_
    • filterMetadataConverter

      private static final Metadata.Builder.FilterMetadataConverter filterMetadataConverter
    • filterMetadata_

      private com.google.protobuf.MapFieldBuilder<String,com.google.protobuf.StructOrBuilder,com.google.protobuf.Struct,com.google.protobuf.Struct.Builder> filterMetadata_
    • typedFilterMetadataConverter

      private static final Metadata.Builder.TypedFilterMetadataConverter typedFilterMetadataConverter
    • typedFilterMetadata_

      private com.google.protobuf.MapFieldBuilder<String,com.google.protobuf.AnyOrBuilder,com.google.protobuf.Any,com.google.protobuf.Any.Builder> typedFilterMetadata_
  • Constructor Details

    • Builder

      private Builder()
    • Builder

      private Builder(com.google.protobuf.AbstractMessage.BuilderParent parent)
  • Method Details

    • getDescriptor

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

      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(int number)
      Overrides:
      internalGetMapFieldReflection in class com.google.protobuf.GeneratedMessage.Builder<Metadata.Builder>
    • internalGetMutableMapFieldReflection

      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(int number)
      Overrides:
      internalGetMutableMapFieldReflection in class com.google.protobuf.GeneratedMessage.Builder<Metadata.Builder>
    • internalGetFieldAccessorTable

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessage.Builder<Metadata.Builder>
    • clear

      public Metadata.Builder clear()
      Specified by:
      clear in interface com.google.protobuf.Message.Builder
      Specified by:
      clear in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      clear in class com.google.protobuf.GeneratedMessage.Builder<Metadata.Builder>
    • getDescriptorForType

      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      Specified by:
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      Specified by:
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      Overrides:
      getDescriptorForType in class com.google.protobuf.GeneratedMessage.Builder<Metadata.Builder>
    • getDefaultInstanceForType

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

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

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

      private void buildPartial0(Metadata result)
    • mergeFrom

      public Metadata.Builder mergeFrom(com.google.protobuf.Message other)
      Specified by:
      mergeFrom in interface com.google.protobuf.Message.Builder
      Overrides:
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<Metadata.Builder>
    • mergeFrom

      public Metadata.Builder mergeFrom(Metadata other)
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessage.Builder<Metadata.Builder>
    • mergeFrom

      public Metadata.Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Specified by:
      mergeFrom in interface com.google.protobuf.Message.Builder
      Specified by:
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<Metadata.Builder>
      Throws:
      IOException
    • internalGetFilterMetadata

      private com.google.protobuf.MapFieldBuilder<String,com.google.protobuf.StructOrBuilder,com.google.protobuf.Struct,com.google.protobuf.Struct.Builder> internalGetFilterMetadata()
    • internalGetMutableFilterMetadata

      private com.google.protobuf.MapFieldBuilder<String,com.google.protobuf.StructOrBuilder,com.google.protobuf.Struct,com.google.protobuf.Struct.Builder> internalGetMutableFilterMetadata()
    • 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
    • clearFilterMetadata

      public Metadata.Builder clearFilterMetadata()
    • removeFilterMetadata

      public Metadata.Builder removeFilterMetadata(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) = { ... }
    • getMutableFilterMetadata

      @Deprecated public Map<String,com.google.protobuf.Struct> getMutableFilterMetadata()
      Deprecated.
      Use alternate mutation accessors instead.
    • putFilterMetadata

      public Metadata.Builder putFilterMetadata(String key, com.google.protobuf.Struct value)
       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) = { ... }
    • putAllFilterMetadata

      public Metadata.Builder putAllFilterMetadata(Map<String,com.google.protobuf.Struct> values)
       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) = { ... }
    • putFilterMetadataBuilderIfAbsent

      public com.google.protobuf.Struct.Builder putFilterMetadataBuilderIfAbsent(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) = { ... }
    • internalGetTypedFilterMetadata

      private com.google.protobuf.MapFieldBuilder<String,com.google.protobuf.AnyOrBuilder,com.google.protobuf.Any,com.google.protobuf.Any.Builder> internalGetTypedFilterMetadata()
    • internalGetMutableTypedFilterMetadata

      private com.google.protobuf.MapFieldBuilder<String,com.google.protobuf.AnyOrBuilder,com.google.protobuf.Any,com.google.protobuf.Any.Builder> internalGetMutableTypedFilterMetadata()
    • 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
    • clearTypedFilterMetadata

      public Metadata.Builder clearTypedFilterMetadata()
    • removeTypedFilterMetadata

      public Metadata.Builder removeTypedFilterMetadata(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) = { ... }
    • getMutableTypedFilterMetadata

      @Deprecated public Map<String,com.google.protobuf.Any> getMutableTypedFilterMetadata()
      Deprecated.
      Use alternate mutation accessors instead.
    • putTypedFilterMetadata

      public Metadata.Builder putTypedFilterMetadata(String key, com.google.protobuf.Any value)
       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) = { ... }
    • putAllTypedFilterMetadata

      public Metadata.Builder putAllTypedFilterMetadata(Map<String,com.google.protobuf.Any> values)
       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) = { ... }
    • putTypedFilterMetadataBuilderIfAbsent

      public com.google.protobuf.Any.Builder putTypedFilterMetadataBuilderIfAbsent(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) = { ... }