Class Metadata.Builder

  • All Implemented Interfaces:
    com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, MetadataOrBuilder, java.lang.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 Detail

      • bitField0_

        private int bitField0_
      • filterMetadata_

        private com.google.protobuf.MapFieldBuilder<java.lang.String,​com.google.protobuf.StructOrBuilder,​com.google.protobuf.Struct,​com.google.protobuf.Struct.Builder> filterMetadata_
      • typedFilterMetadata_

        private com.google.protobuf.MapFieldBuilder<java.lang.String,​com.google.protobuf.AnyOrBuilder,​com.google.protobuf.Any,​com.google.protobuf.Any.Builder> typedFilterMetadata_
    • Constructor Detail

      • Builder

        private Builder()
      • Builder

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

      • 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>
      • 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 java.io.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:
        java.io.IOException
      • internalGetFilterMetadata

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

        private com.google.protobuf.MapFieldBuilder<java.lang.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​(java.lang.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
      • getFilterMetadataMap

        public java.util.Map<java.lang.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​(java.lang.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​(java.lang.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
      • removeFilterMetadata

        public Metadata.Builder removeFilterMetadata​(java.lang.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 java.util.Map<java.lang.String,​com.google.protobuf.Struct> getMutableFilterMetadata()
        Deprecated.
        Use alternate mutation accessors instead.
      • putFilterMetadata

        public Metadata.Builder putFilterMetadata​(java.lang.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​(java.util.Map<java.lang.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​(java.lang.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<java.lang.String,​com.google.protobuf.AnyOrBuilder,​com.google.protobuf.Any,​com.google.protobuf.Any.Builder> internalGetTypedFilterMetadata()
      • internalGetMutableTypedFilterMetadata

        private com.google.protobuf.MapFieldBuilder<java.lang.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​(java.lang.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
      • getTypedFilterMetadataMap

        public java.util.Map<java.lang.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​(java.lang.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​(java.lang.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
      • removeTypedFilterMetadata

        public Metadata.Builder removeTypedFilterMetadata​(java.lang.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 java.util.Map<java.lang.String,​com.google.protobuf.Any> getMutableTypedFilterMetadata()
        Deprecated.
        Use alternate mutation accessors instead.
      • putTypedFilterMetadata

        public Metadata.Builder putTypedFilterMetadata​(java.lang.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​(java.util.Map<java.lang.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​(java.lang.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) = { ... }