Class RBAC.Builder

  • All Implemented Interfaces:
    com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, RBACOrBuilder, java.lang.Cloneable
    Enclosing class:
    RBAC

    public static final class RBAC.Builder
    extends com.google.protobuf.GeneratedMessage.Builder<RBAC.Builder>
    implements RBACOrBuilder
     RBAC filter config.
     [#next-free-field: 8]
     
    Protobuf type envoy.extensions.filters.http.rbac.v3.RBAC
    • Field Detail

      • bitField0_

        private int bitField0_
      • rules_

        private RBAC rules_
      • rulesStatPrefix_

        private java.lang.Object rulesStatPrefix_
      • matcher_

        private Matcher matcher_
      • shadowRules_

        private RBAC shadowRules_
      • shadowMatcher_

        private Matcher shadowMatcher_
      • shadowRulesStatPrefix_

        private java.lang.Object shadowRulesStatPrefix_
      • trackPerRuleStats_

        private boolean trackPerRuleStats_
    • 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()
      • internalGetFieldAccessorTable

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

        private void maybeForceBuilderInitialization()
      • clear

        public RBAC.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<RBAC.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<RBAC.Builder>
      • getDefaultInstanceForType

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

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

        public RBAC 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​(RBAC result)
      • mergeFrom

        public RBAC.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<RBAC.Builder>
      • isInitialized

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

        public RBAC.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<RBAC.Builder>
        Throws:
        java.io.IOException
      • hasRules

        public boolean hasRules()
         Specify the RBAC rules to be applied globally.
         If absent, no enforcing RBAC policy will be applied.
         If present and empty, DENY.
         If both rules and matcher are configured, rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC rules = 1 [(.udpa.annotations.field_migrate) = { ... }
        Specified by:
        hasRules in interface RBACOrBuilder
        Returns:
        Whether the rules field is set.
      • getRules

        public RBAC getRules()
         Specify the RBAC rules to be applied globally.
         If absent, no enforcing RBAC policy will be applied.
         If present and empty, DENY.
         If both rules and matcher are configured, rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC rules = 1 [(.udpa.annotations.field_migrate) = { ... }
        Specified by:
        getRules in interface RBACOrBuilder
        Returns:
        The rules.
      • setRules

        public RBAC.Builder setRules​(RBAC value)
         Specify the RBAC rules to be applied globally.
         If absent, no enforcing RBAC policy will be applied.
         If present and empty, DENY.
         If both rules and matcher are configured, rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC rules = 1 [(.udpa.annotations.field_migrate) = { ... }
      • setRules

        public RBAC.Builder setRules​(RBAC.Builder builderForValue)
         Specify the RBAC rules to be applied globally.
         If absent, no enforcing RBAC policy will be applied.
         If present and empty, DENY.
         If both rules and matcher are configured, rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC rules = 1 [(.udpa.annotations.field_migrate) = { ... }
      • mergeRules

        public RBAC.Builder mergeRules​(RBAC value)
         Specify the RBAC rules to be applied globally.
         If absent, no enforcing RBAC policy will be applied.
         If present and empty, DENY.
         If both rules and matcher are configured, rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC rules = 1 [(.udpa.annotations.field_migrate) = { ... }
      • clearRules

        public RBAC.Builder clearRules()
         Specify the RBAC rules to be applied globally.
         If absent, no enforcing RBAC policy will be applied.
         If present and empty, DENY.
         If both rules and matcher are configured, rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC rules = 1 [(.udpa.annotations.field_migrate) = { ... }
      • getRulesBuilder

        public RBAC.Builder getRulesBuilder()
         Specify the RBAC rules to be applied globally.
         If absent, no enforcing RBAC policy will be applied.
         If present and empty, DENY.
         If both rules and matcher are configured, rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC rules = 1 [(.udpa.annotations.field_migrate) = { ... }
      • getRulesOrBuilder

        public RBACOrBuilder getRulesOrBuilder()
         Specify the RBAC rules to be applied globally.
         If absent, no enforcing RBAC policy will be applied.
         If present and empty, DENY.
         If both rules and matcher are configured, rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC rules = 1 [(.udpa.annotations.field_migrate) = { ... }
        Specified by:
        getRulesOrBuilder in interface RBACOrBuilder
      • getRulesFieldBuilder

        private com.google.protobuf.SingleFieldBuilder<RBAC,​RBAC.Builder,​RBACOrBuilder> getRulesFieldBuilder()
         Specify the RBAC rules to be applied globally.
         If absent, no enforcing RBAC policy will be applied.
         If present and empty, DENY.
         If both rules and matcher are configured, rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC rules = 1 [(.udpa.annotations.field_migrate) = { ... }
      • getRulesStatPrefix

        public java.lang.String getRulesStatPrefix()
         If specified, rules will emit stats with the given prefix.
         This is useful to distinguish the stat when there are more than 1 RBAC filter configured with
         rules.
         
        string rules_stat_prefix = 6;
        Specified by:
        getRulesStatPrefix in interface RBACOrBuilder
        Returns:
        The rulesStatPrefix.
      • getRulesStatPrefixBytes

        public com.google.protobuf.ByteString getRulesStatPrefixBytes()
         If specified, rules will emit stats with the given prefix.
         This is useful to distinguish the stat when there are more than 1 RBAC filter configured with
         rules.
         
        string rules_stat_prefix = 6;
        Specified by:
        getRulesStatPrefixBytes in interface RBACOrBuilder
        Returns:
        The bytes for rulesStatPrefix.
      • setRulesStatPrefix

        public RBAC.Builder setRulesStatPrefix​(java.lang.String value)
         If specified, rules will emit stats with the given prefix.
         This is useful to distinguish the stat when there are more than 1 RBAC filter configured with
         rules.
         
        string rules_stat_prefix = 6;
        Parameters:
        value - The rulesStatPrefix to set.
        Returns:
        This builder for chaining.
      • clearRulesStatPrefix

        public RBAC.Builder clearRulesStatPrefix()
         If specified, rules will emit stats with the given prefix.
         This is useful to distinguish the stat when there are more than 1 RBAC filter configured with
         rules.
         
        string rules_stat_prefix = 6;
        Returns:
        This builder for chaining.
      • setRulesStatPrefixBytes

        public RBAC.Builder setRulesStatPrefixBytes​(com.google.protobuf.ByteString value)
         If specified, rules will emit stats with the given prefix.
         This is useful to distinguish the stat when there are more than 1 RBAC filter configured with
         rules.
         
        string rules_stat_prefix = 6;
        Parameters:
        value - The bytes for rulesStatPrefix to set.
        Returns:
        This builder for chaining.
      • hasMatcher

        public boolean hasMatcher()
         The match tree to use when resolving RBAC action for incoming requests. Requests do not
         match any matcher will be denied.
         If absent, no enforcing RBAC matcher will be applied.
         If present and empty, deny all requests.
         
        .xds.type.matcher.v3.Matcher matcher = 4 [(.udpa.annotations.field_migrate) = { ... }
        Specified by:
        hasMatcher in interface RBACOrBuilder
        Returns:
        Whether the matcher field is set.
      • getMatcher

        public Matcher getMatcher()
         The match tree to use when resolving RBAC action for incoming requests. Requests do not
         match any matcher will be denied.
         If absent, no enforcing RBAC matcher will be applied.
         If present and empty, deny all requests.
         
        .xds.type.matcher.v3.Matcher matcher = 4 [(.udpa.annotations.field_migrate) = { ... }
        Specified by:
        getMatcher in interface RBACOrBuilder
        Returns:
        The matcher.
      • setMatcher

        public RBAC.Builder setMatcher​(Matcher value)
         The match tree to use when resolving RBAC action for incoming requests. Requests do not
         match any matcher will be denied.
         If absent, no enforcing RBAC matcher will be applied.
         If present and empty, deny all requests.
         
        .xds.type.matcher.v3.Matcher matcher = 4 [(.udpa.annotations.field_migrate) = { ... }
      • setMatcher

        public RBAC.Builder setMatcher​(Matcher.Builder builderForValue)
         The match tree to use when resolving RBAC action for incoming requests. Requests do not
         match any matcher will be denied.
         If absent, no enforcing RBAC matcher will be applied.
         If present and empty, deny all requests.
         
        .xds.type.matcher.v3.Matcher matcher = 4 [(.udpa.annotations.field_migrate) = { ... }
      • mergeMatcher

        public RBAC.Builder mergeMatcher​(Matcher value)
         The match tree to use when resolving RBAC action for incoming requests. Requests do not
         match any matcher will be denied.
         If absent, no enforcing RBAC matcher will be applied.
         If present and empty, deny all requests.
         
        .xds.type.matcher.v3.Matcher matcher = 4 [(.udpa.annotations.field_migrate) = { ... }
      • clearMatcher

        public RBAC.Builder clearMatcher()
         The match tree to use when resolving RBAC action for incoming requests. Requests do not
         match any matcher will be denied.
         If absent, no enforcing RBAC matcher will be applied.
         If present and empty, deny all requests.
         
        .xds.type.matcher.v3.Matcher matcher = 4 [(.udpa.annotations.field_migrate) = { ... }
      • getMatcherBuilder

        public Matcher.Builder getMatcherBuilder()
         The match tree to use when resolving RBAC action for incoming requests. Requests do not
         match any matcher will be denied.
         If absent, no enforcing RBAC matcher will be applied.
         If present and empty, deny all requests.
         
        .xds.type.matcher.v3.Matcher matcher = 4 [(.udpa.annotations.field_migrate) = { ... }
      • getMatcherOrBuilder

        public MatcherOrBuilder getMatcherOrBuilder()
         The match tree to use when resolving RBAC action for incoming requests. Requests do not
         match any matcher will be denied.
         If absent, no enforcing RBAC matcher will be applied.
         If present and empty, deny all requests.
         
        .xds.type.matcher.v3.Matcher matcher = 4 [(.udpa.annotations.field_migrate) = { ... }
        Specified by:
        getMatcherOrBuilder in interface RBACOrBuilder
      • getMatcherFieldBuilder

        private com.google.protobuf.SingleFieldBuilder<Matcher,​Matcher.Builder,​MatcherOrBuilder> getMatcherFieldBuilder()
         The match tree to use when resolving RBAC action for incoming requests. Requests do not
         match any matcher will be denied.
         If absent, no enforcing RBAC matcher will be applied.
         If present and empty, deny all requests.
         
        .xds.type.matcher.v3.Matcher matcher = 4 [(.udpa.annotations.field_migrate) = { ... }
      • hasShadowRules

        public boolean hasShadowRules()
         Shadow rules are not enforced by the filter (i.e., returning a 403)
         but will emit stats and logs and can be used for rule testing.
         If absent, no shadow RBAC policy will be applied.
         If both shadow rules and shadow matcher are configured, shadow rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC shadow_rules = 2 [(.udpa.annotations.field_migrate) = { ... }
        Specified by:
        hasShadowRules in interface RBACOrBuilder
        Returns:
        Whether the shadowRules field is set.
      • getShadowRules

        public RBAC getShadowRules()
         Shadow rules are not enforced by the filter (i.e., returning a 403)
         but will emit stats and logs and can be used for rule testing.
         If absent, no shadow RBAC policy will be applied.
         If both shadow rules and shadow matcher are configured, shadow rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC shadow_rules = 2 [(.udpa.annotations.field_migrate) = { ... }
        Specified by:
        getShadowRules in interface RBACOrBuilder
        Returns:
        The shadowRules.
      • setShadowRules

        public RBAC.Builder setShadowRules​(RBAC value)
         Shadow rules are not enforced by the filter (i.e., returning a 403)
         but will emit stats and logs and can be used for rule testing.
         If absent, no shadow RBAC policy will be applied.
         If both shadow rules and shadow matcher are configured, shadow rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC shadow_rules = 2 [(.udpa.annotations.field_migrate) = { ... }
      • setShadowRules

        public RBAC.Builder setShadowRules​(RBAC.Builder builderForValue)
         Shadow rules are not enforced by the filter (i.e., returning a 403)
         but will emit stats and logs and can be used for rule testing.
         If absent, no shadow RBAC policy will be applied.
         If both shadow rules and shadow matcher are configured, shadow rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC shadow_rules = 2 [(.udpa.annotations.field_migrate) = { ... }
      • mergeShadowRules

        public RBAC.Builder mergeShadowRules​(RBAC value)
         Shadow rules are not enforced by the filter (i.e., returning a 403)
         but will emit stats and logs and can be used for rule testing.
         If absent, no shadow RBAC policy will be applied.
         If both shadow rules and shadow matcher are configured, shadow rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC shadow_rules = 2 [(.udpa.annotations.field_migrate) = { ... }
      • clearShadowRules

        public RBAC.Builder clearShadowRules()
         Shadow rules are not enforced by the filter (i.e., returning a 403)
         but will emit stats and logs and can be used for rule testing.
         If absent, no shadow RBAC policy will be applied.
         If both shadow rules and shadow matcher are configured, shadow rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC shadow_rules = 2 [(.udpa.annotations.field_migrate) = { ... }
      • getShadowRulesBuilder

        public RBAC.Builder getShadowRulesBuilder()
         Shadow rules are not enforced by the filter (i.e., returning a 403)
         but will emit stats and logs and can be used for rule testing.
         If absent, no shadow RBAC policy will be applied.
         If both shadow rules and shadow matcher are configured, shadow rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC shadow_rules = 2 [(.udpa.annotations.field_migrate) = { ... }
      • getShadowRulesOrBuilder

        public RBACOrBuilder getShadowRulesOrBuilder()
         Shadow rules are not enforced by the filter (i.e., returning a 403)
         but will emit stats and logs and can be used for rule testing.
         If absent, no shadow RBAC policy will be applied.
         If both shadow rules and shadow matcher are configured, shadow rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC shadow_rules = 2 [(.udpa.annotations.field_migrate) = { ... }
        Specified by:
        getShadowRulesOrBuilder in interface RBACOrBuilder
      • getShadowRulesFieldBuilder

        private com.google.protobuf.SingleFieldBuilder<RBAC,​RBAC.Builder,​RBACOrBuilder> getShadowRulesFieldBuilder()
         Shadow rules are not enforced by the filter (i.e., returning a 403)
         but will emit stats and logs and can be used for rule testing.
         If absent, no shadow RBAC policy will be applied.
         If both shadow rules and shadow matcher are configured, shadow rules will be ignored.
         
        .envoy.config.rbac.v3.RBAC shadow_rules = 2 [(.udpa.annotations.field_migrate) = { ... }
      • hasShadowMatcher

        public boolean hasShadowMatcher()
         The match tree to use for emitting stats and logs which can be used for rule testing for
         incoming requests.
         If absent, no shadow matcher will be applied.
         
        .xds.type.matcher.v3.Matcher shadow_matcher = 5 [(.udpa.annotations.field_migrate) = { ... }
        Specified by:
        hasShadowMatcher in interface RBACOrBuilder
        Returns:
        Whether the shadowMatcher field is set.
      • getShadowMatcher

        public Matcher getShadowMatcher()
         The match tree to use for emitting stats and logs which can be used for rule testing for
         incoming requests.
         If absent, no shadow matcher will be applied.
         
        .xds.type.matcher.v3.Matcher shadow_matcher = 5 [(.udpa.annotations.field_migrate) = { ... }
        Specified by:
        getShadowMatcher in interface RBACOrBuilder
        Returns:
        The shadowMatcher.
      • setShadowMatcher

        public RBAC.Builder setShadowMatcher​(Matcher value)
         The match tree to use for emitting stats and logs which can be used for rule testing for
         incoming requests.
         If absent, no shadow matcher will be applied.
         
        .xds.type.matcher.v3.Matcher shadow_matcher = 5 [(.udpa.annotations.field_migrate) = { ... }
      • setShadowMatcher

        public RBAC.Builder setShadowMatcher​(Matcher.Builder builderForValue)
         The match tree to use for emitting stats and logs which can be used for rule testing for
         incoming requests.
         If absent, no shadow matcher will be applied.
         
        .xds.type.matcher.v3.Matcher shadow_matcher = 5 [(.udpa.annotations.field_migrate) = { ... }
      • mergeShadowMatcher

        public RBAC.Builder mergeShadowMatcher​(Matcher value)
         The match tree to use for emitting stats and logs which can be used for rule testing for
         incoming requests.
         If absent, no shadow matcher will be applied.
         
        .xds.type.matcher.v3.Matcher shadow_matcher = 5 [(.udpa.annotations.field_migrate) = { ... }
      • clearShadowMatcher

        public RBAC.Builder clearShadowMatcher()
         The match tree to use for emitting stats and logs which can be used for rule testing for
         incoming requests.
         If absent, no shadow matcher will be applied.
         
        .xds.type.matcher.v3.Matcher shadow_matcher = 5 [(.udpa.annotations.field_migrate) = { ... }
      • getShadowMatcherBuilder

        public Matcher.Builder getShadowMatcherBuilder()
         The match tree to use for emitting stats and logs which can be used for rule testing for
         incoming requests.
         If absent, no shadow matcher will be applied.
         
        .xds.type.matcher.v3.Matcher shadow_matcher = 5 [(.udpa.annotations.field_migrate) = { ... }
      • getShadowMatcherOrBuilder

        public MatcherOrBuilder getShadowMatcherOrBuilder()
         The match tree to use for emitting stats and logs which can be used for rule testing for
         incoming requests.
         If absent, no shadow matcher will be applied.
         
        .xds.type.matcher.v3.Matcher shadow_matcher = 5 [(.udpa.annotations.field_migrate) = { ... }
        Specified by:
        getShadowMatcherOrBuilder in interface RBACOrBuilder
      • getShadowMatcherFieldBuilder

        private com.google.protobuf.SingleFieldBuilder<Matcher,​Matcher.Builder,​MatcherOrBuilder> getShadowMatcherFieldBuilder()
         The match tree to use for emitting stats and logs which can be used for rule testing for
         incoming requests.
         If absent, no shadow matcher will be applied.
         
        .xds.type.matcher.v3.Matcher shadow_matcher = 5 [(.udpa.annotations.field_migrate) = { ... }
      • getShadowRulesStatPrefix

        public java.lang.String getShadowRulesStatPrefix()
         If specified, shadow rules will emit stats with the given prefix.
         This is useful to distinguish the stat when there are more than 1 RBAC filter configured with
         shadow rules.
         
        string shadow_rules_stat_prefix = 3;
        Specified by:
        getShadowRulesStatPrefix in interface RBACOrBuilder
        Returns:
        The shadowRulesStatPrefix.
      • getShadowRulesStatPrefixBytes

        public com.google.protobuf.ByteString getShadowRulesStatPrefixBytes()
         If specified, shadow rules will emit stats with the given prefix.
         This is useful to distinguish the stat when there are more than 1 RBAC filter configured with
         shadow rules.
         
        string shadow_rules_stat_prefix = 3;
        Specified by:
        getShadowRulesStatPrefixBytes in interface RBACOrBuilder
        Returns:
        The bytes for shadowRulesStatPrefix.
      • setShadowRulesStatPrefix

        public RBAC.Builder setShadowRulesStatPrefix​(java.lang.String value)
         If specified, shadow rules will emit stats with the given prefix.
         This is useful to distinguish the stat when there are more than 1 RBAC filter configured with
         shadow rules.
         
        string shadow_rules_stat_prefix = 3;
        Parameters:
        value - The shadowRulesStatPrefix to set.
        Returns:
        This builder for chaining.
      • clearShadowRulesStatPrefix

        public RBAC.Builder clearShadowRulesStatPrefix()
         If specified, shadow rules will emit stats with the given prefix.
         This is useful to distinguish the stat when there are more than 1 RBAC filter configured with
         shadow rules.
         
        string shadow_rules_stat_prefix = 3;
        Returns:
        This builder for chaining.
      • setShadowRulesStatPrefixBytes

        public RBAC.Builder setShadowRulesStatPrefixBytes​(com.google.protobuf.ByteString value)
         If specified, shadow rules will emit stats with the given prefix.
         This is useful to distinguish the stat when there are more than 1 RBAC filter configured with
         shadow rules.
         
        string shadow_rules_stat_prefix = 3;
        Parameters:
        value - The bytes for shadowRulesStatPrefix to set.
        Returns:
        This builder for chaining.
      • getTrackPerRuleStats

        public boolean getTrackPerRuleStats()
         If track_per_rule_stats is true, counters will be published for each rule and shadow rule.
         
        bool track_per_rule_stats = 7;
        Specified by:
        getTrackPerRuleStats in interface RBACOrBuilder
        Returns:
        The trackPerRuleStats.
      • setTrackPerRuleStats

        public RBAC.Builder setTrackPerRuleStats​(boolean value)
         If track_per_rule_stats is true, counters will be published for each rule and shadow rule.
         
        bool track_per_rule_stats = 7;
        Parameters:
        value - The trackPerRuleStats to set.
        Returns:
        This builder for chaining.
      • clearTrackPerRuleStats

        public RBAC.Builder clearTrackPerRuleStats()
         If track_per_rule_stats is true, counters will be published for each rule and shadow rule.
         
        bool track_per_rule_stats = 7;
        Returns:
        This builder for chaining.