// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: policy_action.proto
package policy;

public final class PolicyAction {

    private PolicyAction() {
    }

    public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {
    }

    public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {
        registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
    }

    /**
     * Protobuf enum {@code policy.PolicyRuleActionEnum}
     */
    public enum PolicyRuleActionEnum implements com.google.protobuf.ProtocolMessageEnum {

        /**
         * <code>POLICYRULE_ACTION_NO_ACTION = 0;</code>
         */
        POLICYRULE_ACTION_NO_ACTION(0),
        /**
         * <code>POLICYRULE_ACTION_SET_DEVICE_STATUS = 1;</code>
         */
        POLICYRULE_ACTION_SET_DEVICE_STATUS(1),
        /**
         * <code>POLICYRULE_ACTION_ADD_SERVICE_CONFIGRULE = 2;</code>
         */
        POLICYRULE_ACTION_ADD_SERVICE_CONFIGRULE(2),
        /**
         * <code>POLICYRULE_ACTION_ADD_SERVICE_CONSTRAINT = 3;</code>
         */
        POLICYRULE_ACTION_ADD_SERVICE_CONSTRAINT(3),
        /**
         * <code>POLICY_RULE_ACTION_CALL_SERVICE_RPC = 4;</code>
         */
        POLICY_RULE_ACTION_CALL_SERVICE_RPC(4),
        /**
         * <code>POLICY_RULE_ACTION_RECALCULATE_PATH = 5;</code>
         */
        POLICY_RULE_ACTION_RECALCULATE_PATH(5),
        UNRECOGNIZED(-1);

        /**
         * <code>POLICYRULE_ACTION_NO_ACTION = 0;</code>
         */
        public static final int POLICYRULE_ACTION_NO_ACTION_VALUE = 0;

        /**
         * <code>POLICYRULE_ACTION_SET_DEVICE_STATUS = 1;</code>
         */
        public static final int POLICYRULE_ACTION_SET_DEVICE_STATUS_VALUE = 1;

        /**
         * <code>POLICYRULE_ACTION_ADD_SERVICE_CONFIGRULE = 2;</code>
         */
        public static final int POLICYRULE_ACTION_ADD_SERVICE_CONFIGRULE_VALUE = 2;

        /**
         * <code>POLICYRULE_ACTION_ADD_SERVICE_CONSTRAINT = 3;</code>
         */
        public static final int POLICYRULE_ACTION_ADD_SERVICE_CONSTRAINT_VALUE = 3;

        /**
         * <code>POLICY_RULE_ACTION_CALL_SERVICE_RPC = 4;</code>
         */
        public static final int POLICY_RULE_ACTION_CALL_SERVICE_RPC_VALUE = 4;

        /**
         * <code>POLICY_RULE_ACTION_RECALCULATE_PATH = 5;</code>
         */
        public static final int POLICY_RULE_ACTION_RECALCULATE_PATH_VALUE = 5;

        public final int getNumber() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value.");
            }
            return value;
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static PolicyRuleActionEnum valueOf(int value) {
            return forNumber(value);
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         */
        public static PolicyRuleActionEnum forNumber(int value) {
            switch(value) {
                case 0:
                    return POLICYRULE_ACTION_NO_ACTION;
                case 1:
                    return POLICYRULE_ACTION_SET_DEVICE_STATUS;
                case 2:
                    return POLICYRULE_ACTION_ADD_SERVICE_CONFIGRULE;
                case 3:
                    return POLICYRULE_ACTION_ADD_SERVICE_CONSTRAINT;
                case 4:
                    return POLICY_RULE_ACTION_CALL_SERVICE_RPC;
                case 5:
                    return POLICY_RULE_ACTION_RECALCULATE_PATH;
                default:
                    return null;
            }
        }

        public static com.google.protobuf.Internal.EnumLiteMap<PolicyRuleActionEnum> internalGetValueMap() {
            return internalValueMap;
        }

        private static final com.google.protobuf.Internal.EnumLiteMap<PolicyRuleActionEnum> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<PolicyRuleActionEnum>() {

            public PolicyRuleActionEnum findValueByNumber(int number) {
                return PolicyRuleActionEnum.forNumber(number);
            }
        };

        public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value.");
            }
            return getDescriptor().getValues().get(ordinal());
        }

        public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
            return getDescriptor();
        }

        public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
            return policy.PolicyAction.getDescriptor().getEnumTypes().get(0);
        }

        private static final PolicyRuleActionEnum[] VALUES = values();

        public static PolicyRuleActionEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
            if (desc.getType() != getDescriptor()) {
                throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
            }
            if (desc.getIndex() == -1) {
                return UNRECOGNIZED;
            }
            return VALUES[desc.getIndex()];
        }

        private final int value;

        private PolicyRuleActionEnum(int value) {
            this.value = value;
        }
    }

    public interface PolicyRuleActionOrBuilder extends // @@protoc_insertion_point(interface_extends:policy.PolicyRuleAction)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.policy.PolicyRuleActionEnum action = 1;</code>
         * @return The enum numeric value on the wire for action.
         */
        int getActionValue();

        /**
         * <code>.policy.PolicyRuleActionEnum action = 1;</code>
         * @return The action.
         */
        policy.PolicyAction.PolicyRuleActionEnum getAction();

        /**
         * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
         */
        java.util.List<policy.PolicyAction.PolicyRuleActionConfig> getActionConfigList();

        /**
         * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
         */
        policy.PolicyAction.PolicyRuleActionConfig getActionConfig(int index);

        /**
         * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
         */
        int getActionConfigCount();

        /**
         * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
         */
        java.util.List<? extends policy.PolicyAction.PolicyRuleActionConfigOrBuilder> getActionConfigOrBuilderList();

        /**
         * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
         */
        policy.PolicyAction.PolicyRuleActionConfigOrBuilder getActionConfigOrBuilder(int index);
    }

    /**
     * <pre>
     * Action
     * </pre>
     *
     * Protobuf type {@code policy.PolicyRuleAction}
     */
    public static final class PolicyRuleAction extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:policy.PolicyRuleAction)
    PolicyRuleActionOrBuilder {

        private static final long serialVersionUID = 0L;

        // Use PolicyRuleAction.newBuilder() to construct.
        private PolicyRuleAction(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private PolicyRuleAction() {
            action_ = 0;
            actionConfig_ = java.util.Collections.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new PolicyRuleAction();
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return policy.PolicyAction.internal_static_policy_PolicyRuleAction_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return policy.PolicyAction.internal_static_policy_PolicyRuleAction_fieldAccessorTable.ensureFieldAccessorsInitialized(policy.PolicyAction.PolicyRuleAction.class, policy.PolicyAction.PolicyRuleAction.Builder.class);
        }

        public static final int ACTION_FIELD_NUMBER = 1;

        private int action_ = 0;

        /**
         * <code>.policy.PolicyRuleActionEnum action = 1;</code>
         * @return The enum numeric value on the wire for action.
         */
        @java.lang.Override
        public int getActionValue() {
            return action_;
        }

        /**
         * <code>.policy.PolicyRuleActionEnum action = 1;</code>
         * @return The action.
         */
        @java.lang.Override
        public policy.PolicyAction.PolicyRuleActionEnum getAction() {
            policy.PolicyAction.PolicyRuleActionEnum result = policy.PolicyAction.PolicyRuleActionEnum.forNumber(action_);
            return result == null ? policy.PolicyAction.PolicyRuleActionEnum.UNRECOGNIZED : result;
        }

        public static final int ACTION_CONFIG_FIELD_NUMBER = 2;

        @SuppressWarnings("serial")
        private java.util.List<policy.PolicyAction.PolicyRuleActionConfig> actionConfig_;

        /**
         * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
         */
        @java.lang.Override
        public java.util.List<policy.PolicyAction.PolicyRuleActionConfig> getActionConfigList() {
            return actionConfig_;
        }

        /**
         * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
         */
        @java.lang.Override
        public java.util.List<? extends policy.PolicyAction.PolicyRuleActionConfigOrBuilder> getActionConfigOrBuilderList() {
            return actionConfig_;
        }

        /**
         * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
         */
        @java.lang.Override
        public int getActionConfigCount() {
            return actionConfig_.size();
        }

        /**
         * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
         */
        @java.lang.Override
        public policy.PolicyAction.PolicyRuleActionConfig getActionConfig(int index) {
            return actionConfig_.get(index);
        }

        /**
         * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
         */
        @java.lang.Override
        public policy.PolicyAction.PolicyRuleActionConfigOrBuilder getActionConfigOrBuilder(int index) {
            return actionConfig_.get(index);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            if (action_ != policy.PolicyAction.PolicyRuleActionEnum.POLICYRULE_ACTION_NO_ACTION.getNumber()) {
                output.writeEnum(1, action_);
            }
            for (int i = 0; i < actionConfig_.size(); i++) {
                output.writeMessage(2, actionConfig_.get(i));
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (action_ != policy.PolicyAction.PolicyRuleActionEnum.POLICYRULE_ACTION_NO_ACTION.getNumber()) {
                size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, action_);
            }
            for (int i = 0; i < actionConfig_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, actionConfig_.get(i));
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof policy.PolicyAction.PolicyRuleAction)) {
                return super.equals(obj);
            }
            policy.PolicyAction.PolicyRuleAction other = (policy.PolicyAction.PolicyRuleAction) obj;
            if (action_ != other.action_)
                return false;
            if (!getActionConfigList().equals(other.getActionConfigList()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (37 * hash) + ACTION_FIELD_NUMBER;
            hash = (53 * hash) + action_;
            if (getActionConfigCount() > 0) {
                hash = (37 * hash) + ACTION_CONFIG_FIELD_NUMBER;
                hash = (53 * hash) + getActionConfigList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static policy.PolicyAction.PolicyRuleAction parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static policy.PolicyAction.PolicyRuleAction parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static policy.PolicyAction.PolicyRuleAction parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static policy.PolicyAction.PolicyRuleAction parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static policy.PolicyAction.PolicyRuleAction parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static policy.PolicyAction.PolicyRuleAction parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static policy.PolicyAction.PolicyRuleAction parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static policy.PolicyAction.PolicyRuleAction parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static policy.PolicyAction.PolicyRuleAction parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static policy.PolicyAction.PolicyRuleAction parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static policy.PolicyAction.PolicyRuleAction parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static policy.PolicyAction.PolicyRuleAction parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(policy.PolicyAction.PolicyRuleAction prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * <pre>
         * Action
         * </pre>
         *
         * Protobuf type {@code policy.PolicyRuleAction}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:policy.PolicyRuleAction)
        policy.PolicyAction.PolicyRuleActionOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return policy.PolicyAction.internal_static_policy_PolicyRuleAction_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return policy.PolicyAction.internal_static_policy_PolicyRuleAction_fieldAccessorTable.ensureFieldAccessorsInitialized(policy.PolicyAction.PolicyRuleAction.class, policy.PolicyAction.PolicyRuleAction.Builder.class);
            }

            // Construct using policy.PolicyAction.PolicyRuleAction.newBuilder()
            private Builder() {
            }

            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                action_ = 0;
                if (actionConfigBuilder_ == null) {
                    actionConfig_ = java.util.Collections.emptyList();
                } else {
                    actionConfig_ = null;
                    actionConfigBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000002);
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return policy.PolicyAction.internal_static_policy_PolicyRuleAction_descriptor;
            }

            @java.lang.Override
            public policy.PolicyAction.PolicyRuleAction getDefaultInstanceForType() {
                return policy.PolicyAction.PolicyRuleAction.getDefaultInstance();
            }

            @java.lang.Override
            public policy.PolicyAction.PolicyRuleAction build() {
                policy.PolicyAction.PolicyRuleAction result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public policy.PolicyAction.PolicyRuleAction buildPartial() {
                policy.PolicyAction.PolicyRuleAction result = new policy.PolicyAction.PolicyRuleAction(this);
                buildPartialRepeatedFields(result);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartialRepeatedFields(policy.PolicyAction.PolicyRuleAction result) {
                if (actionConfigBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0)) {
                        actionConfig_ = java.util.Collections.unmodifiableList(actionConfig_);
                        bitField0_ = (bitField0_ & ~0x00000002);
                    }
                    result.actionConfig_ = actionConfig_;
                } else {
                    result.actionConfig_ = actionConfigBuilder_.build();
                }
            }

            private void buildPartial0(policy.PolicyAction.PolicyRuleAction result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.action_ = action_;
                }
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof policy.PolicyAction.PolicyRuleAction) {
                    return mergeFrom((policy.PolicyAction.PolicyRuleAction) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(policy.PolicyAction.PolicyRuleAction other) {
                if (other == policy.PolicyAction.PolicyRuleAction.getDefaultInstance())
                    return this;
                if (other.action_ != 0) {
                    setActionValue(other.getActionValue());
                }
                if (actionConfigBuilder_ == null) {
                    if (!other.actionConfig_.isEmpty()) {
                        if (actionConfig_.isEmpty()) {
                            actionConfig_ = other.actionConfig_;
                            bitField0_ = (bitField0_ & ~0x00000002);
                        } else {
                            ensureActionConfigIsMutable();
                            actionConfig_.addAll(other.actionConfig_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.actionConfig_.isEmpty()) {
                        if (actionConfigBuilder_.isEmpty()) {
                            actionConfigBuilder_.dispose();
                            actionConfigBuilder_ = null;
                            actionConfig_ = other.actionConfig_;
                            bitField0_ = (bitField0_ & ~0x00000002);
                            actionConfigBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getActionConfigFieldBuilder() : null;
                        } else {
                            actionConfigBuilder_.addAllMessages(other.actionConfig_);
                        }
                    }
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 8:
                                {
                                    action_ = input.readEnum();
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 8
                            case 18:
                                {
                                    policy.PolicyAction.PolicyRuleActionConfig m = input.readMessage(policy.PolicyAction.PolicyRuleActionConfig.parser(), extensionRegistry);
                                    if (actionConfigBuilder_ == null) {
                                        ensureActionConfigIsMutable();
                                        actionConfig_.add(m);
                                    } else {
                                        actionConfigBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 18
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                }
                // finally
                return this;
            }

            private int bitField0_;

            private int action_ = 0;

            /**
             * <code>.policy.PolicyRuleActionEnum action = 1;</code>
             * @return The enum numeric value on the wire for action.
             */
            @java.lang.Override
            public int getActionValue() {
                return action_;
            }

            /**
             * <code>.policy.PolicyRuleActionEnum action = 1;</code>
             * @param value The enum numeric value on the wire for action to set.
             * @return This builder for chaining.
             */
            public Builder setActionValue(int value) {
                action_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.policy.PolicyRuleActionEnum action = 1;</code>
             * @return The action.
             */
            @java.lang.Override
            public policy.PolicyAction.PolicyRuleActionEnum getAction() {
                policy.PolicyAction.PolicyRuleActionEnum result = policy.PolicyAction.PolicyRuleActionEnum.forNumber(action_);
                return result == null ? policy.PolicyAction.PolicyRuleActionEnum.UNRECOGNIZED : result;
            }

            /**
             * <code>.policy.PolicyRuleActionEnum action = 1;</code>
             * @param value The action to set.
             * @return This builder for chaining.
             */
            public Builder setAction(policy.PolicyAction.PolicyRuleActionEnum value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000001;
                action_ = value.getNumber();
                onChanged();
                return this;
            }

            /**
             * <code>.policy.PolicyRuleActionEnum action = 1;</code>
             * @return This builder for chaining.
             */
            public Builder clearAction() {
                bitField0_ = (bitField0_ & ~0x00000001);
                action_ = 0;
                onChanged();
                return this;
            }

            private java.util.List<policy.PolicyAction.PolicyRuleActionConfig> actionConfig_ = java.util.Collections.emptyList();

            private void ensureActionConfigIsMutable() {
                if (!((bitField0_ & 0x00000002) != 0)) {
                    actionConfig_ = new java.util.ArrayList<policy.PolicyAction.PolicyRuleActionConfig>(actionConfig_);
                    bitField0_ |= 0x00000002;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<policy.PolicyAction.PolicyRuleActionConfig, policy.PolicyAction.PolicyRuleActionConfig.Builder, policy.PolicyAction.PolicyRuleActionConfigOrBuilder> actionConfigBuilder_;

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public java.util.List<policy.PolicyAction.PolicyRuleActionConfig> getActionConfigList() {
                if (actionConfigBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(actionConfig_);
                } else {
                    return actionConfigBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public int getActionConfigCount() {
                if (actionConfigBuilder_ == null) {
                    return actionConfig_.size();
                } else {
                    return actionConfigBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public policy.PolicyAction.PolicyRuleActionConfig getActionConfig(int index) {
                if (actionConfigBuilder_ == null) {
                    return actionConfig_.get(index);
                } else {
                    return actionConfigBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public Builder setActionConfig(int index, policy.PolicyAction.PolicyRuleActionConfig value) {
                if (actionConfigBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureActionConfigIsMutable();
                    actionConfig_.set(index, value);
                    onChanged();
                } else {
                    actionConfigBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public Builder setActionConfig(int index, policy.PolicyAction.PolicyRuleActionConfig.Builder builderForValue) {
                if (actionConfigBuilder_ == null) {
                    ensureActionConfigIsMutable();
                    actionConfig_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    actionConfigBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public Builder addActionConfig(policy.PolicyAction.PolicyRuleActionConfig value) {
                if (actionConfigBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureActionConfigIsMutable();
                    actionConfig_.add(value);
                    onChanged();
                } else {
                    actionConfigBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public Builder addActionConfig(int index, policy.PolicyAction.PolicyRuleActionConfig value) {
                if (actionConfigBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureActionConfigIsMutable();
                    actionConfig_.add(index, value);
                    onChanged();
                } else {
                    actionConfigBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public Builder addActionConfig(policy.PolicyAction.PolicyRuleActionConfig.Builder builderForValue) {
                if (actionConfigBuilder_ == null) {
                    ensureActionConfigIsMutable();
                    actionConfig_.add(builderForValue.build());
                    onChanged();
                } else {
                    actionConfigBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public Builder addActionConfig(int index, policy.PolicyAction.PolicyRuleActionConfig.Builder builderForValue) {
                if (actionConfigBuilder_ == null) {
                    ensureActionConfigIsMutable();
                    actionConfig_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    actionConfigBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public Builder addAllActionConfig(java.lang.Iterable<? extends policy.PolicyAction.PolicyRuleActionConfig> values) {
                if (actionConfigBuilder_ == null) {
                    ensureActionConfigIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, actionConfig_);
                    onChanged();
                } else {
                    actionConfigBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public Builder clearActionConfig() {
                if (actionConfigBuilder_ == null) {
                    actionConfig_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000002);
                    onChanged();
                } else {
                    actionConfigBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public Builder removeActionConfig(int index) {
                if (actionConfigBuilder_ == null) {
                    ensureActionConfigIsMutable();
                    actionConfig_.remove(index);
                    onChanged();
                } else {
                    actionConfigBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public policy.PolicyAction.PolicyRuleActionConfig.Builder getActionConfigBuilder(int index) {
                return getActionConfigFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public policy.PolicyAction.PolicyRuleActionConfigOrBuilder getActionConfigOrBuilder(int index) {
                if (actionConfigBuilder_ == null) {
                    return actionConfig_.get(index);
                } else {
                    return actionConfigBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public java.util.List<? extends policy.PolicyAction.PolicyRuleActionConfigOrBuilder> getActionConfigOrBuilderList() {
                if (actionConfigBuilder_ != null) {
                    return actionConfigBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(actionConfig_);
                }
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public policy.PolicyAction.PolicyRuleActionConfig.Builder addActionConfigBuilder() {
                return getActionConfigFieldBuilder().addBuilder(policy.PolicyAction.PolicyRuleActionConfig.getDefaultInstance());
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public policy.PolicyAction.PolicyRuleActionConfig.Builder addActionConfigBuilder(int index) {
                return getActionConfigFieldBuilder().addBuilder(index, policy.PolicyAction.PolicyRuleActionConfig.getDefaultInstance());
            }

            /**
             * <code>repeated .policy.PolicyRuleActionConfig action_config = 2;</code>
             */
            public java.util.List<policy.PolicyAction.PolicyRuleActionConfig.Builder> getActionConfigBuilderList() {
                return getActionConfigFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<policy.PolicyAction.PolicyRuleActionConfig, policy.PolicyAction.PolicyRuleActionConfig.Builder, policy.PolicyAction.PolicyRuleActionConfigOrBuilder> getActionConfigFieldBuilder() {
                if (actionConfigBuilder_ == null) {
                    actionConfigBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<policy.PolicyAction.PolicyRuleActionConfig, policy.PolicyAction.PolicyRuleActionConfig.Builder, policy.PolicyAction.PolicyRuleActionConfigOrBuilder>(actionConfig_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean());
                    actionConfig_ = null;
                }
                return actionConfigBuilder_;
            }

            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:policy.PolicyRuleAction)
        }

        // @@protoc_insertion_point(class_scope:policy.PolicyRuleAction)
        private static final policy.PolicyAction.PolicyRuleAction DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new policy.PolicyAction.PolicyRuleAction();
        }

        public static policy.PolicyAction.PolicyRuleAction getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<PolicyRuleAction> PARSER = new com.google.protobuf.AbstractParser<PolicyRuleAction>() {

            @java.lang.Override
            public PolicyRuleAction parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<PolicyRuleAction> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<PolicyRuleAction> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public policy.PolicyAction.PolicyRuleAction getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface PolicyRuleActionConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:policy.PolicyRuleActionConfig)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>string action_key = 1;</code>
         * @return The actionKey.
         */
        java.lang.String getActionKey();

        /**
         * <code>string action_key = 1;</code>
         * @return The bytes for actionKey.
         */
        com.google.protobuf.ByteString getActionKeyBytes();

        /**
         * <code>string action_value = 2;</code>
         * @return The actionValue.
         */
        java.lang.String getActionValue();

        /**
         * <code>string action_value = 2;</code>
         * @return The bytes for actionValue.
         */
        com.google.protobuf.ByteString getActionValueBytes();
    }

    /**
     * <pre>
     * Action configuration
     * </pre>
     *
     * Protobuf type {@code policy.PolicyRuleActionConfig}
     */
    public static final class PolicyRuleActionConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:policy.PolicyRuleActionConfig)
    PolicyRuleActionConfigOrBuilder {

        private static final long serialVersionUID = 0L;

        // Use PolicyRuleActionConfig.newBuilder() to construct.
        private PolicyRuleActionConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private PolicyRuleActionConfig() {
            actionKey_ = "";
            actionValue_ = "";
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new PolicyRuleActionConfig();
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return policy.PolicyAction.internal_static_policy_PolicyRuleActionConfig_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return policy.PolicyAction.internal_static_policy_PolicyRuleActionConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(policy.PolicyAction.PolicyRuleActionConfig.class, policy.PolicyAction.PolicyRuleActionConfig.Builder.class);
        }

        public static final int ACTION_KEY_FIELD_NUMBER = 1;

        @SuppressWarnings("serial")
        private volatile java.lang.Object actionKey_ = "";

        /**
         * <code>string action_key = 1;</code>
         * @return The actionKey.
         */
        @java.lang.Override
        public java.lang.String getActionKey() {
            java.lang.Object ref = actionKey_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                actionKey_ = s;
                return s;
            }
        }

        /**
         * <code>string action_key = 1;</code>
         * @return The bytes for actionKey.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString getActionKeyBytes() {
            java.lang.Object ref = actionKey_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                actionKey_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int ACTION_VALUE_FIELD_NUMBER = 2;

        @SuppressWarnings("serial")
        private volatile java.lang.Object actionValue_ = "";

        /**
         * <code>string action_value = 2;</code>
         * @return The actionValue.
         */
        @java.lang.Override
        public java.lang.String getActionValue() {
            java.lang.Object ref = actionValue_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                actionValue_ = s;
                return s;
            }
        }

        /**
         * <code>string action_value = 2;</code>
         * @return The bytes for actionValue.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString getActionValueBytes() {
            java.lang.Object ref = actionValue_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                actionValue_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(actionKey_)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, actionKey_);
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(actionValue_)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 2, actionValue_);
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(actionKey_)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, actionKey_);
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(actionValue_)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, actionValue_);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof policy.PolicyAction.PolicyRuleActionConfig)) {
                return super.equals(obj);
            }
            policy.PolicyAction.PolicyRuleActionConfig other = (policy.PolicyAction.PolicyRuleActionConfig) obj;
            if (!getActionKey().equals(other.getActionKey()))
                return false;
            if (!getActionValue().equals(other.getActionValue()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (37 * hash) + ACTION_KEY_FIELD_NUMBER;
            hash = (53 * hash) + getActionKey().hashCode();
            hash = (37 * hash) + ACTION_VALUE_FIELD_NUMBER;
            hash = (53 * hash) + getActionValue().hashCode();
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static policy.PolicyAction.PolicyRuleActionConfig parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static policy.PolicyAction.PolicyRuleActionConfig parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static policy.PolicyAction.PolicyRuleActionConfig parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static policy.PolicyAction.PolicyRuleActionConfig parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static policy.PolicyAction.PolicyRuleActionConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static policy.PolicyAction.PolicyRuleActionConfig parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static policy.PolicyAction.PolicyRuleActionConfig parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static policy.PolicyAction.PolicyRuleActionConfig parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static policy.PolicyAction.PolicyRuleActionConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static policy.PolicyAction.PolicyRuleActionConfig parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static policy.PolicyAction.PolicyRuleActionConfig parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static policy.PolicyAction.PolicyRuleActionConfig parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(policy.PolicyAction.PolicyRuleActionConfig prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * <pre>
         * Action configuration
         * </pre>
         *
         * Protobuf type {@code policy.PolicyRuleActionConfig}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:policy.PolicyRuleActionConfig)
        policy.PolicyAction.PolicyRuleActionConfigOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return policy.PolicyAction.internal_static_policy_PolicyRuleActionConfig_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return policy.PolicyAction.internal_static_policy_PolicyRuleActionConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(policy.PolicyAction.PolicyRuleActionConfig.class, policy.PolicyAction.PolicyRuleActionConfig.Builder.class);
            }

            // Construct using policy.PolicyAction.PolicyRuleActionConfig.newBuilder()
            private Builder() {
            }

            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                actionKey_ = "";
                actionValue_ = "";
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return policy.PolicyAction.internal_static_policy_PolicyRuleActionConfig_descriptor;
            }

            @java.lang.Override
            public policy.PolicyAction.PolicyRuleActionConfig getDefaultInstanceForType() {
                return policy.PolicyAction.PolicyRuleActionConfig.getDefaultInstance();
            }

            @java.lang.Override
            public policy.PolicyAction.PolicyRuleActionConfig build() {
                policy.PolicyAction.PolicyRuleActionConfig result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public policy.PolicyAction.PolicyRuleActionConfig buildPartial() {
                policy.PolicyAction.PolicyRuleActionConfig result = new policy.PolicyAction.PolicyRuleActionConfig(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(policy.PolicyAction.PolicyRuleActionConfig result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.actionKey_ = actionKey_;
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.actionValue_ = actionValue_;
                }
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof policy.PolicyAction.PolicyRuleActionConfig) {
                    return mergeFrom((policy.PolicyAction.PolicyRuleActionConfig) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(policy.PolicyAction.PolicyRuleActionConfig other) {
                if (other == policy.PolicyAction.PolicyRuleActionConfig.getDefaultInstance())
                    return this;
                if (!other.getActionKey().isEmpty()) {
                    actionKey_ = other.actionKey_;
                    bitField0_ |= 0x00000001;
                    onChanged();
                }
                if (!other.getActionValue().isEmpty()) {
                    actionValue_ = other.actionValue_;
                    bitField0_ |= 0x00000002;
                    onChanged();
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    actionKey_ = input.readStringRequireUtf8();
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    actionValue_ = input.readStringRequireUtf8();
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 18
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                }
                // finally
                return this;
            }

            private int bitField0_;

            private java.lang.Object actionKey_ = "";

            /**
             * <code>string action_key = 1;</code>
             * @return The actionKey.
             */
            public java.lang.String getActionKey() {
                java.lang.Object ref = actionKey_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    actionKey_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>string action_key = 1;</code>
             * @return The bytes for actionKey.
             */
            public com.google.protobuf.ByteString getActionKeyBytes() {
                java.lang.Object ref = actionKey_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                    actionKey_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>string action_key = 1;</code>
             * @param value The actionKey to set.
             * @return This builder for chaining.
             */
            public Builder setActionKey(java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                actionKey_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>string action_key = 1;</code>
             * @return This builder for chaining.
             */
            public Builder clearActionKey() {
                actionKey_ = getDefaultInstance().getActionKey();
                bitField0_ = (bitField0_ & ~0x00000001);
                onChanged();
                return this;
            }

            /**
             * <code>string action_key = 1;</code>
             * @param value The bytes for actionKey to set.
             * @return This builder for chaining.
             */
            public Builder setActionKeyBytes(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                actionKey_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            private java.lang.Object actionValue_ = "";

            /**
             * <code>string action_value = 2;</code>
             * @return The actionValue.
             */
            public java.lang.String getActionValue() {
                java.lang.Object ref = actionValue_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    actionValue_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>string action_value = 2;</code>
             * @return The bytes for actionValue.
             */
            public com.google.protobuf.ByteString getActionValueBytes() {
                java.lang.Object ref = actionValue_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                    actionValue_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>string action_value = 2;</code>
             * @param value The actionValue to set.
             * @return This builder for chaining.
             */
            public Builder setActionValue(java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                actionValue_ = value;
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>string action_value = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearActionValue() {
                actionValue_ = getDefaultInstance().getActionValue();
                bitField0_ = (bitField0_ & ~0x00000002);
                onChanged();
                return this;
            }

            /**
             * <code>string action_value = 2;</code>
             * @param value The bytes for actionValue to set.
             * @return This builder for chaining.
             */
            public Builder setActionValueBytes(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                actionValue_ = value;
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:policy.PolicyRuleActionConfig)
        }

        // @@protoc_insertion_point(class_scope:policy.PolicyRuleActionConfig)
        private static final policy.PolicyAction.PolicyRuleActionConfig DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new policy.PolicyAction.PolicyRuleActionConfig();
        }

        public static policy.PolicyAction.PolicyRuleActionConfig getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<PolicyRuleActionConfig> PARSER = new com.google.protobuf.AbstractParser<PolicyRuleActionConfig>() {

            @java.lang.Override
            public PolicyRuleActionConfig parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<PolicyRuleActionConfig> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<PolicyRuleActionConfig> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public policy.PolicyAction.PolicyRuleActionConfig getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    private static final com.google.protobuf.Descriptors.Descriptor internal_static_policy_PolicyRuleAction_descriptor;

    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_policy_PolicyRuleAction_fieldAccessorTable;

    private static final com.google.protobuf.Descriptors.Descriptor internal_static_policy_PolicyRuleActionConfig_descriptor;

    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_policy_PolicyRuleActionConfig_fieldAccessorTable;

    public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
        return descriptor;
    }

    private static com.google.protobuf.Descriptors.FileDescriptor descriptor;

    static {
        java.lang.String[] descriptorData = { "\n\023policy_action.proto\022\006policy\"w\n\020PolicyR" + "uleAction\022,\n\006action\030\001 \001(\0162\034.policy.Polic" + "yRuleActionEnum\0225\n\raction_config\030\002 \003(\0132\036" + ".policy.PolicyRuleActionConfig\"B\n\026Policy" + "RuleActionConfig\022\022\n\naction_key\030\001 \001(\t\022\024\n\014" + "action_value\030\002 \001(\t*\216\002\n\024PolicyRuleActionE" + "num\022\037\n\033POLICYRULE_ACTION_NO_ACTION\020\000\022\'\n#" + "POLICYRULE_ACTION_SET_DEVICE_STATUS\020\001\022,\n" + "(POLICYRULE_ACTION_ADD_SERVICE_CONFIGRUL" + "E\020\002\022,\n(POLICYRULE_ACTION_ADD_SERVICE_CON" + "STRAINT\020\003\022\'\n#POLICY_RULE_ACTION_CALL_SER" + "VICE_RPC\020\004\022\'\n#POLICY_RULE_ACTION_RECALCU" + "LATE_PATH\020\005b\006proto3" };
        descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {});
        internal_static_policy_PolicyRuleAction_descriptor = getDescriptor().getMessageTypes().get(0);
        internal_static_policy_PolicyRuleAction_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_policy_PolicyRuleAction_descriptor, new java.lang.String[] { "Action", "ActionConfig" });
        internal_static_policy_PolicyRuleActionConfig_descriptor = getDescriptor().getMessageTypes().get(1);
        internal_static_policy_PolicyRuleActionConfig_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_policy_PolicyRuleActionConfig_descriptor, new java.lang.String[] { "ActionKey", "ActionValue" });
    }
    // @@protoc_insertion_point(outer_class_scope)
}
