Class Subset

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

    public final class Subset
    extends com.google.protobuf.GeneratedMessageV3
    implements SubsetOrBuilder
     Optionally divide the endpoints in this cluster into subsets defined by
     endpoint metadata and selected by route and weighted cluster metadata.
     [#next-free-field: 11]
     
    Protobuf type envoy.extensions.load_balancing_policies.subset.v3.Subset
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Subset.Builder
      Optionally divide the endpoints in this cluster into subsets defined by endpoint metadata and selected by route and weighted cluster metadata.
      static class  Subset.LbSubsetFallbackPolicy
      If NO_FALLBACK is selected, a result equivalent to no healthy hosts is reported.
      static class  Subset.LbSubsetMetadataFallbackPolicy
      Protobuf enum envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetMetadataFallbackPolicy
      static class  Subset.LbSubsetSelector
      Specifications for subsets.
      static interface  Subset.LbSubsetSelectorOrBuilder  
      • 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
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(Object obj)  
      boolean getAllowRedundantKeys()
      By default, only when the request metadata has exactly the **same** keys as one of subset selectors and the values of the related keys are matched, the load balancer will have a valid subset for the request.
      static Subset getDefaultInstance()  
      Subset getDefaultInstanceForType()  
      com.google.protobuf.Struct getDefaultSubset()
      Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
      com.google.protobuf.StructOrBuilder getDefaultSubsetOrBuilder()
      Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
      static com.google.protobuf.Descriptors.Descriptor getDescriptor()  
      Subset.LbSubsetFallbackPolicy getFallbackPolicy()
      The behavior used when no endpoint subset matches the selected route's metadata.
      int getFallbackPolicyValue()
      The behavior used when no endpoint subset matches the selected route's metadata.
      boolean getListAsAny()
      If true, metadata specified for a metadata key will be matched against the corresponding endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value and any of the elements in the list matches the criteria.
      boolean getLocalityWeightAware()
      If true, routing to subsets will take into account the localities and locality weights of the endpoints when making the routing decision.
      Subset.LbSubsetMetadataFallbackPolicy getMetadataFallbackPolicy()
      Fallback mechanism that allows to try different route metadata until a host is found.
      int getMetadataFallbackPolicyValue()
      Fallback mechanism that allows to try different route metadata until a host is found.
      boolean getPanicModeAny()
      If true, when a fallback policy is configured and its corresponding subset fails to find a host this will cause any host to be selected instead.
      com.google.protobuf.Parser<Subset> getParserForType()  
      boolean getScaleLocalityWeight()
      When used with locality_weight_aware, scales the weight of each locality by the ratio of hosts in the subset vs hosts in the original subset.
      int getSerializedSize()  
      LoadBalancingPolicy getSubsetLbPolicy()
      The child LB policy to create for endpoint-picking within the chosen subset.
      LoadBalancingPolicyOrBuilder getSubsetLbPolicyOrBuilder()
      The child LB policy to create for endpoint-picking within the chosen subset.
      Subset.LbSubsetSelector getSubsetSelectors​(int index)
      For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.
      int getSubsetSelectorsCount()
      For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.
      List<Subset.LbSubsetSelector> getSubsetSelectorsList()
      For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.
      Subset.LbSubsetSelectorOrBuilder getSubsetSelectorsOrBuilder​(int index)
      For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.
      List<? extends Subset.LbSubsetSelectorOrBuilder> getSubsetSelectorsOrBuilderList()
      For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.
      com.google.protobuf.UnknownFieldSet getUnknownFields()  
      boolean hasDefaultSubset()
      Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
      int hashCode()  
      boolean hasSubsetLbPolicy()
      The child LB policy to create for endpoint-picking within the chosen subset.
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()  
      boolean isInitialized()  
      static Subset.Builder newBuilder()  
      static Subset.Builder newBuilder​(Subset prototype)  
      Subset.Builder newBuilderForType()  
      protected Subset.Builder newBuilderForType​(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)  
      protected Object newInstance​(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)  
      static Subset parseDelimitedFrom​(InputStream input)  
      static Subset parseDelimitedFrom​(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)  
      static Subset parseFrom​(byte[] data)  
      static Subset parseFrom​(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)  
      static Subset parseFrom​(com.google.protobuf.ByteString data)  
      static Subset parseFrom​(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)  
      static Subset parseFrom​(com.google.protobuf.CodedInputStream input)  
      static Subset parseFrom​(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)  
      static Subset parseFrom​(InputStream input)  
      static Subset parseFrom​(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)  
      static Subset parseFrom​(ByteBuffer data)  
      static Subset parseFrom​(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)  
      static com.google.protobuf.Parser<Subset> parser()  
      Subset.Builder toBuilder()  
      void writeTo​(com.google.protobuf.CodedOutputStream output)  
      • Methods inherited from class com.google.protobuf.GeneratedMessageV3

        canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, hasField, hasOneof, internalGetMapField, isStringEmpty, makeExtensionsImmutable, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
      • Methods inherited from class com.google.protobuf.AbstractMessage

        findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
      • Methods inherited from class com.google.protobuf.AbstractMessageLite

        addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
      • Methods inherited from interface com.google.protobuf.MessageLite

        toByteArray, toByteString, writeDelimitedTo, writeTo
      • Methods inherited from interface com.google.protobuf.MessageOrBuilder

        findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, hasField, hasOneof
    • Field Detail

      • FALLBACK_POLICY_FIELD_NUMBER

        public static final int FALLBACK_POLICY_FIELD_NUMBER
        See Also:
        Constant Field Values
      • DEFAULT_SUBSET_FIELD_NUMBER

        public static final int DEFAULT_SUBSET_FIELD_NUMBER
        See Also:
        Constant Field Values
      • SUBSET_SELECTORS_FIELD_NUMBER

        public static final int SUBSET_SELECTORS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • ALLOW_REDUNDANT_KEYS_FIELD_NUMBER

        public static final int ALLOW_REDUNDANT_KEYS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • LOCALITY_WEIGHT_AWARE_FIELD_NUMBER

        public static final int LOCALITY_WEIGHT_AWARE_FIELD_NUMBER
        See Also:
        Constant Field Values
      • SCALE_LOCALITY_WEIGHT_FIELD_NUMBER

        public static final int SCALE_LOCALITY_WEIGHT_FIELD_NUMBER
        See Also:
        Constant Field Values
      • PANIC_MODE_ANY_FIELD_NUMBER

        public static final int PANIC_MODE_ANY_FIELD_NUMBER
        See Also:
        Constant Field Values
      • LIST_AS_ANY_FIELD_NUMBER

        public static final int LIST_AS_ANY_FIELD_NUMBER
        See Also:
        Constant Field Values
      • METADATA_FALLBACK_POLICY_FIELD_NUMBER

        public static final int METADATA_FALLBACK_POLICY_FIELD_NUMBER
        See Also:
        Constant Field Values
      • SUBSET_LB_POLICY_FIELD_NUMBER

        public static final int SUBSET_LB_POLICY_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()
      • internalGetFieldAccessorTable

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Specified by:
        internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      • getFallbackPolicyValue

        public int getFallbackPolicyValue()
         The behavior used when no endpoint subset matches the selected route's
         metadata. The value defaults to
         :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
         
        .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... }
        Specified by:
        getFallbackPolicyValue in interface SubsetOrBuilder
        Returns:
        The enum numeric value on the wire for fallbackPolicy.
      • getFallbackPolicy

        public Subset.LbSubsetFallbackPolicy getFallbackPolicy()
         The behavior used when no endpoint subset matches the selected route's
         metadata. The value defaults to
         :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
         
        .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... }
        Specified by:
        getFallbackPolicy in interface SubsetOrBuilder
        Returns:
        The fallbackPolicy.
      • hasDefaultSubset

        public boolean hasDefaultSubset()
         Specifies the default subset of endpoints used during fallback if
         fallback_policy is
         :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
         Each field in default_subset is
         compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
         namespace. It is valid for no hosts to match, in which case the behavior
         is the same as a fallback_policy of
         :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
         
        .google.protobuf.Struct default_subset = 2;
        Specified by:
        hasDefaultSubset in interface SubsetOrBuilder
        Returns:
        Whether the defaultSubset field is set.
      • getDefaultSubset

        public com.google.protobuf.Struct getDefaultSubset()
         Specifies the default subset of endpoints used during fallback if
         fallback_policy is
         :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
         Each field in default_subset is
         compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
         namespace. It is valid for no hosts to match, in which case the behavior
         is the same as a fallback_policy of
         :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
         
        .google.protobuf.Struct default_subset = 2;
        Specified by:
        getDefaultSubset in interface SubsetOrBuilder
        Returns:
        The defaultSubset.
      • getDefaultSubsetOrBuilder

        public com.google.protobuf.StructOrBuilder getDefaultSubsetOrBuilder()
         Specifies the default subset of endpoints used during fallback if
         fallback_policy is
         :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.
         Each field in default_subset is
         compared to the matching LbEndpoint.Metadata under the ``envoy.lb``
         namespace. It is valid for no hosts to match, in which case the behavior
         is the same as a fallback_policy of
         :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
         
        .google.protobuf.Struct default_subset = 2;
        Specified by:
        getDefaultSubsetOrBuilder in interface SubsetOrBuilder
      • getSubsetSelectorsList

        public List<Subset.LbSubsetSelector> getSubsetSelectorsList()
         For each entry, LbEndpoint.Metadata's
         ``envoy.lb`` namespace is traversed and a subset is created for each unique
         combination of key and value. For example:
         .. code-block:: json
           { "subset_selectors": [
               { "keys": [ "version" ] },
               { "keys": [ "stage", "hardware_type" ] }
           ]}
         A subset is matched when the metadata from the selected route and
         weighted cluster contains the same keys and values as the subset's
         metadata. The same host may appear in multiple subsets.
         
        repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
        Specified by:
        getSubsetSelectorsList in interface SubsetOrBuilder
      • getSubsetSelectorsOrBuilderList

        public List<? extends Subset.LbSubsetSelectorOrBuilder> getSubsetSelectorsOrBuilderList()
         For each entry, LbEndpoint.Metadata's
         ``envoy.lb`` namespace is traversed and a subset is created for each unique
         combination of key and value. For example:
         .. code-block:: json
           { "subset_selectors": [
               { "keys": [ "version" ] },
               { "keys": [ "stage", "hardware_type" ] }
           ]}
         A subset is matched when the metadata from the selected route and
         weighted cluster contains the same keys and values as the subset's
         metadata. The same host may appear in multiple subsets.
         
        repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
        Specified by:
        getSubsetSelectorsOrBuilderList in interface SubsetOrBuilder
      • getSubsetSelectorsCount

        public int getSubsetSelectorsCount()
         For each entry, LbEndpoint.Metadata's
         ``envoy.lb`` namespace is traversed and a subset is created for each unique
         combination of key and value. For example:
         .. code-block:: json
           { "subset_selectors": [
               { "keys": [ "version" ] },
               { "keys": [ "stage", "hardware_type" ] }
           ]}
         A subset is matched when the metadata from the selected route and
         weighted cluster contains the same keys and values as the subset's
         metadata. The same host may appear in multiple subsets.
         
        repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
        Specified by:
        getSubsetSelectorsCount in interface SubsetOrBuilder
      • getSubsetSelectors

        public Subset.LbSubsetSelector getSubsetSelectors​(int index)
         For each entry, LbEndpoint.Metadata's
         ``envoy.lb`` namespace is traversed and a subset is created for each unique
         combination of key and value. For example:
         .. code-block:: json
           { "subset_selectors": [
               { "keys": [ "version" ] },
               { "keys": [ "stage", "hardware_type" ] }
           ]}
         A subset is matched when the metadata from the selected route and
         weighted cluster contains the same keys and values as the subset's
         metadata. The same host may appear in multiple subsets.
         
        repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
        Specified by:
        getSubsetSelectors in interface SubsetOrBuilder
      • getSubsetSelectorsOrBuilder

        public Subset.LbSubsetSelectorOrBuilder getSubsetSelectorsOrBuilder​(int index)
         For each entry, LbEndpoint.Metadata's
         ``envoy.lb`` namespace is traversed and a subset is created for each unique
         combination of key and value. For example:
         .. code-block:: json
           { "subset_selectors": [
               { "keys": [ "version" ] },
               { "keys": [ "stage", "hardware_type" ] }
           ]}
         A subset is matched when the metadata from the selected route and
         weighted cluster contains the same keys and values as the subset's
         metadata. The same host may appear in multiple subsets.
         
        repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
        Specified by:
        getSubsetSelectorsOrBuilder in interface SubsetOrBuilder
      • getAllowRedundantKeys

        public boolean getAllowRedundantKeys()
         By default, only when the request metadata has exactly the **same** keys as one of subset selectors and
         the values of the related keys are matched, the load balancer will have a valid subset for the request.
         For example, given the following subset selectors:
         .. code-block:: json
           { "subset_selectors": [
               { "keys": [ "version" ] },
               { "keys": [ "stage", "version" ] }
           ]}
         A request with metadata ``{"redundant-key": "redundant-value", "stage": "prod", "version": "v1"}`` or
         ``{"redundant-key": "redundant-value", "version": "v1"}`` will not have a valid subset even if the values
         of keys ``stage`` and ``version`` are matched because of the redundant key/value pair in the request
         metadata.
         By setting this field to true, the most appropriate keys will be filtered out from the request metadata
         according to the subset selectors. And then the filtered keys and related values will be matched to find
         the valid host subset. By this way, redundant key/value pairs are allowed in the request metadata. The keys
         of a request metadata could be superset of the keys of the subset selectors and need not to be exactly the
         same as the keys of the subset selectors.
         More specifically, if the keys of a request metadata is a superset of one of the subset selectors, then only
         the values of the keys that in the selector keys will be matched. Take the above example, if the request
         metadata is ``{"redundant-key": "redundant-value", "stage": "prod", "version": "v1"}``, the load balancer
         will only match the values of ``stage`` and ``version`` to find an appropriate subset because ``stage``
         ``version`` are contained by the second subset selector and the redundant ``redundant-key`` will be
         ignored.
         .. note::
           If the keys of request metadata is superset of multiple different subset selectors keys, the subset
           selector with most keys to win. For example, given subset selectors
           ``{"subset_selectors": ["keys": ["A", "B", "C"], ["A", "B"]]}`` and request metadata ``{"A": "-",
           "B": "-", "C": "-", "D": "-"}``, keys ``A``, ``B``, ``C`` will be evaluated.
           If the keys of request metadata is superset of multiple different subset selectors keys and the number
           of selector keys are same, then the one placed in front to win. For example, given subset selectors
           ``{"subset_selectors": ["keys": ["A", "B"], ["C", "D"]]}`` and request metadata ``{"A": "-", "B": "-",
           "C": "-", "D": "-"}``, keys ``A``, ``B`` will be evaluated.
         
        bool allow_redundant_keys = 10;
        Specified by:
        getAllowRedundantKeys in interface SubsetOrBuilder
        Returns:
        The allowRedundantKeys.
      • getLocalityWeightAware

        public boolean getLocalityWeightAware()
         If true, routing to subsets will take into account the localities and locality weights of the
         endpoints when making the routing decision.
         There are some potential pitfalls associated with enabling this feature, as the resulting
         traffic split after applying both a subset match and locality weights might be undesirable.
         Consider for example a situation in which you have 50/50 split across two localities X/Y
         which have 100 hosts each without subsetting. If the subset LB results in X having only 1
         host selected but Y having 100, then a lot more load is being dumped on the single host in X
         than originally anticipated in the load balancing assignment delivered via EDS.
         
        bool locality_weight_aware = 4;
        Specified by:
        getLocalityWeightAware in interface SubsetOrBuilder
        Returns:
        The localityWeightAware.
      • getScaleLocalityWeight

        public boolean getScaleLocalityWeight()
         When used with locality_weight_aware, scales the weight of each locality by the ratio
         of hosts in the subset vs hosts in the original subset. This aims to even out the load
         going to an individual locality if said locality is disproportionately affected by the
         subset predicate.
         
        bool scale_locality_weight = 5;
        Specified by:
        getScaleLocalityWeight in interface SubsetOrBuilder
        Returns:
        The scaleLocalityWeight.
      • getPanicModeAny

        public boolean getPanicModeAny()
         If true, when a fallback policy is configured and its corresponding subset fails to find
         a host this will cause any host to be selected instead.
         This is useful when using the default subset as the fallback policy, given the default
         subset might become empty. With this option enabled, if that happens the LB will attempt
         to select a host from the entire cluster.
         
        bool panic_mode_any = 6;
        Specified by:
        getPanicModeAny in interface SubsetOrBuilder
        Returns:
        The panicModeAny.
      • getListAsAny

        public boolean getListAsAny()
         If true, metadata specified for a metadata key will be matched against the corresponding
         endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value
         and any of the elements in the list matches the criteria.
         
        bool list_as_any = 7;
        Specified by:
        getListAsAny in interface SubsetOrBuilder
        Returns:
        The listAsAny.
      • getMetadataFallbackPolicyValue

        public int getMetadataFallbackPolicyValue()
         Fallback mechanism that allows to try different route metadata until a host is found.
         If load balancing process, including all its mechanisms (like
         :ref:`fallback_policy<envoy_v3_api_field_extensions.load_balancing_policies.subset.v3.subset.fallback_policy>`)
         fails to select a host, this policy decides if and how the process is repeated using another metadata.
         The value defaults to
         :ref:`METADATA_NO_FALLBACK
         <envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.subset.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
         
        .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... }
        Specified by:
        getMetadataFallbackPolicyValue in interface SubsetOrBuilder
        Returns:
        The enum numeric value on the wire for metadataFallbackPolicy.
      • getMetadataFallbackPolicy

        public Subset.LbSubsetMetadataFallbackPolicy getMetadataFallbackPolicy()
         Fallback mechanism that allows to try different route metadata until a host is found.
         If load balancing process, including all its mechanisms (like
         :ref:`fallback_policy<envoy_v3_api_field_extensions.load_balancing_policies.subset.v3.subset.fallback_policy>`)
         fails to select a host, this policy decides if and how the process is repeated using another metadata.
         The value defaults to
         :ref:`METADATA_NO_FALLBACK
         <envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.subset.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
         
        .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... }
        Specified by:
        getMetadataFallbackPolicy in interface SubsetOrBuilder
        Returns:
        The metadataFallbackPolicy.
      • hasSubsetLbPolicy

        public boolean hasSubsetLbPolicy()
         The child LB policy to create for endpoint-picking within the chosen subset.
         
        .envoy.config.cluster.v3.LoadBalancingPolicy subset_lb_policy = 9 [(.validate.rules) = { ... }
        Specified by:
        hasSubsetLbPolicy in interface SubsetOrBuilder
        Returns:
        Whether the subsetLbPolicy field is set.
      • getSubsetLbPolicy

        public LoadBalancingPolicy getSubsetLbPolicy()
         The child LB policy to create for endpoint-picking within the chosen subset.
         
        .envoy.config.cluster.v3.LoadBalancingPolicy subset_lb_policy = 9 [(.validate.rules) = { ... }
        Specified by:
        getSubsetLbPolicy in interface SubsetOrBuilder
        Returns:
        The subsetLbPolicy.
      • 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 Subset parseFrom​(ByteBuffer data)
                                throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

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

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

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

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

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

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

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

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

        protected Subset.Builder newBuilderForType​(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
        Specified by:
        newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      • getDefaultInstance

        public static Subset getDefaultInstance()
      • parser

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

        public com.google.protobuf.Parser<Subset> 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 Subset getDefaultInstanceForType()
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder